Я написал простое серверное приложение на C, которое работает на localhost. Как захватить трафик localhost с помощью Wireshark?
Я написал простое серверное приложение на C, которое работает на localhost. Как захватить трафик localhost с помощью Wireshark?
Ответы:
Если вы используете Windows, это невозможно - читайте ниже. Вместо этого вы можете использовать локальный адрес своей машины, и тогда вы сможете захватывать материалы. См. CaptureSetup / Loopback .
Резюме: вы можете выполнять захват на интерфейсе обратной связи в Linux, на различных BSD, включая Mac OS X, и на Digital / Tru64 UNIX, и вы можете сделать это на Irix и AIX, но вы определенно не можете сделать это на Solaris, HP ... - UX .
Хотя на странице упоминается, что это невозможно в Windows с использованием только Wireshark, на самом деле вы можете записать это, используя обходной путь, упомянутый в другом ответе .
РЕДАКТИРОВАТЬ: около 3 лет спустя этот ответ уже не совсем правильный. На связанной странице содержатся инструкции по захвату в интерфейсе обратной связи .
По какой-то причине ни один из предыдущих ответов в моем случае не помог, поэтому я опубликую кое-что, что помогло. Есть маленькая жемчужина под названием RawCap, которая может захватывать трафик localhost в Windows. Преимущества:
После захвата трафика вы можете открыть его и нормально изучить в Wireshark. Единственный недостаток, который я обнаружил, заключается в том, что вы не можете устанавливать фильтры, т.е. вам нужно захватывать весь трафик localhost, который может быть большим. Также есть одна ошибка, касающаяся Windows XP SP 3.
Еще несколько советов:
На платформе Windows также можно захватить трафик localhost с помощью Wireshark. Что вам нужно сделать, так это установить адаптер обратной связи Microsoft , а затем понюхать его.
На самом деле я этого не пробовал, но этот ответ из Интернета звучит многообещающе:
Wireshark не может захватывать локальные пакеты в Windows XP из-за природы стека TCP Windows. Когда пакеты отправляются и принимаются на одном компьютере, кажется, что они не пересекают границу сети, которую отслеживает wirehark.
Однако есть способ обойти это, вы можете направить локальный трафик через сетевой шлюз (маршрутизатор), установив (временный) статический маршрут на вашем компьютере с Windows XP.
Скажем, ваш IP-адрес XP - 192.168.0.2, а адрес вашего шлюза (маршрутизатора) - 192.168.0.1, вы можете запустить следующую команду из командной строки Windows XP, чтобы заставить весь локальный трафик выходить и возвращаться через границу сети, чтобы wirehark мог затем отслеживать data (обратите внимание, что в этом сценарии wirehark будет сообщать о пакетах дважды: один раз, когда они покидают ваш компьютер, и один раз, когда они возвращаются).
route add 192.168.0.2 mask 255.255.255.255 192.168.0.1 metric 1
http://forums.whirlpool.net.au/archive/1037087 , доступ открыт только что.
Попробуйте Npcap: https://github.com/nmap/npcap , он основан на WinPcap и поддерживает захват трафика с обратной связью в Windows. Npcap - это подпроект Nmap ( http://nmap.org/ ), поэтому, пожалуйста, сообщайте о любых проблемах в списке разработчиков Nmap ( http://seclists.org/nmap-dev/ ).
Starting from Windows Vista: Npcap is an update of WinPcap using NDIS 6 Light-Weight Filter (LWF), done by Yang Luo for Nmap project during Google Summer of Code 2013 and 2015. Npcap has added many features compared to the legacy WinPcap.
Вы можете просматривать петлевой трафик в режиме реального времени в Wireshark, если он мгновенно считывает вывод RawCap . cmaynard описывает этот гениальный подход на форумах Wireshark . Я процитирую это здесь:
[...] если вы хотите просматривать текущий трафик в Wireshark, вы все равно можете сделать это, запустив RawCap из одной командной строки и запустив Wireshark из другой. Предполагая, что у вас есть хвост cygwin, это можно сделать примерно так:
cmd1: RawCap.exe -f 127.0.0.1 dumpfile.pcap
cmd2: tail -c +0 -f dumpfile.pcap | Wireshark.exe -k -i -
Для этого требуется хвост cygwin, и я не смог найти способ сделать это с помощью готовых инструментов Windows. Его подход отлично работает для меня и позволяет мне использовать все возможности фильтрации Wiresharks для захваченного кольцевого трафика в реальном времени.
stdout
. Таким образом, на сегодняшний день решение, представленное выше, можно упростить следующим образом без tail
необходимости: RawCap.exe -q 127.0.0.1 - | Wireshark.exe -i - -k
Подробнее о новых функциях RawCap можно прочитать на странице объявления RawCap Redux здесь: netresec.com/?page=Blog&month=2020-01&post=RawCap -Redux
Для Windows ,
Вы не можете захватывать пакеты для Local Loopback в Wireshark, однако вы можете использовать очень маленькую, но полезную программу RawCap ;
Запустите RawCap в командной строке и выберите Loopback Pseudo-Interface (127.0.0.1), затем просто напишите имя файла захвата пакетов ( .pcap )
Простая демонстрация приведена ниже;
C:\Users\Levent\Desktop\rawcap>rawcap
Interfaces:
0. 169.254.125.51 Local Area Connection* 12 Wireless80211
1. 192.168.2.254 Wi-Fi Wireless80211
2. 169.254.214.165 Ethernet Ethernet
3. 192.168.56.1 VirtualBox Host-Only Network Ethernet
4. 127.0.0.1 Loopback Pseudo-Interface 1 Loopback
Select interface to sniff [default '0']: 4
Output path or filename [default 'dumpfile.pcap']: test.pcap
Sniffing IP : 127.0.0.1
File : test.pcap
Packets : 48^C
Вы не можете захватить loopback в Solaris, HP-UX или Windows, однако вы можете очень легко обойти это ограничение, используя такой инструмент, как RawCap .
RawCap может захватывать необработанные пакеты с любого IP-адреса, включая 127.0.0.1
(localhost / loopback). Rawcap также может сгенерировать pcap
файл. Вы можете открыть и проанализировать pcap
файл с помощью Wireshark .
См. Здесь для получения полной информации о том, как контролировать localhost с помощью RawCap и Wireshark.