Назад | Перейти на главную страницу

Как я могу прослушивать трафик удаленной машины с помощью wirehark?

Я могу обнюхивать трафик своего локального компьютера, но я хотел бы знать, как прослушивать трафик удаленного компьютера с помощью wirehark?

В режиме захвата я выбираю удаленный интерфейс и ввожу свой удаленный IP-адрес, показывающий мне error.code (10061). Что я должен делать?

В Linux и OSX вы можете добиться этого, запустив tcpdump через ssh и настроив wirehark для прослушивания канала.

  1. Создайте именованный канал:

    $ mkfifo /tmp/remote

  2. Запустите wirehark из командной строки

    $ wireshark -k -i /tmp/remote

  3. Запустите tcpdump через ssh на удаленном компьютере и перенаправьте пакеты в именованный канал:

    $ ssh root@firewall "tcpdump -s 0 -U -n -w - -i eth0 not port 22" > /tmp/remote

Источник: http://blog.nielshorn.net/2010/02/using-wireshark-with-remote-capturing/

Я использую этот лайнер как root. Очень полезно!

ssh root@sniff_server_ip -p port tcpdump -U -s0 'not port 22' -i eth0 -w - | wireshark -k -i -

Последний - до де | - это перенаправление этого вывода, которое использует wirehark для стандартного ввода. В -k опция в wirehark означает "немедленно начать поиск

Один из подходов - использовать так называемый зеркало или порт диапазона на вашем переключателе. Если ваш коммутатор недостаточно интеллектуален, вы также можете установить небольшой концентратор между коммутатором / хостом-соединением для захвата. Вы подключаете физическую ссылку от вашего прослушивающего хоста к этому порту / концентратору, а затем вы можете видеть весь трафик, проходящий через устройство. В качестве альтернативы вам необходимо установить программное обеспечение для захвата пакетов в более стратегическом месте в вашей сети, например, на пограничном брандмауэре / маршрутизаторе.

Вы можете использовать дескриптор файла для подключения и получения пакетов с помощью ssh и локально подключите его к wirehark:

wireshark -i <(ssh root@firewall tcpdump -s 0 -U -n -w - -i eth0 not port 22)

Откроется wirehark и покажет вам «Интерфейс», например /dev/fd/63, который представляет собой файловый дескриптор, содержащий данные из удаленной системы.

см. информацию о настройке удаленного компьютера, чтобы ваша локальная машина могла подключаться и захватывать

http://wiki.wireshark.org/CaptureSetup/WinPcapRemote

Под RHEL ответ Конрада не сработал для меня, потому что tcpdump требуется root, а у меня есть доступ только sudo. Что действительно получилось, так это создание дополнительного удаленного FIFO, с которого я могу читать:

remote:~$ mkfifo pcap
remote:~$ sudo tcpdump -s 0 -U -n -w - -i eth0 not port 22 > pcap

и отправить данные по отдельному подключению:

local:~$ mkfifo pcap
local:~$ ssh user@host "cat pcap" > pcap

и наконец запускаем Wireshark

local:~$ wireshark -k -i pcap

В дополнение к предыдущим ответам версия с netcat nc также могут быть полезны:

Удаленный узел:

mkfifo /tmp/mypcap.fifo

tcpdump -i em0 -s 0 -U -w - > /tmp/mypcap.fifo

nc -l 10000 < /tmp/mypcap.fifo

Локальный хост:

wireshark -ki <(nc 192.168.1.1 10000)

Примечание об этом методе: он делает незащищенный порт открытым для всех интерфейсов, поэтому обязательно отфильтруйте входящие соединения с помощью правил брандмауэра.

Вы можете прослушивать только тот трафик, который доходит до вас. Итак, Джо А, идущий к Джо Б, никогда не подходит к вашему компьютеру, поэтому вы его не видите.

Единственный способ - это попасть в трафик или привлечь его к себе. Для доступа к трафику требуется подключение к маршрутизатору, хорошему коммутатору или концентратору где-то в середине их соединения. Чтобы получить трафик к вам, вам нужно отравить ARP некоторые коммутаторы, чтобы они считали вас своими.