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

38

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

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

aboutstudy
источник
5
Вы можете только прослушивать трафик, который видит ваш сетевой интерфейс. Если сеть переключена на удаленную машину, вам не будут отправлены пакеты. Кстати: попытаться улучшить ваш уровень принятия.
Маттео

Ответы:

54

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

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

    $ mkfifo /tmp/remote

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

    $ wireshark -k -i /tmp/remote

  3. Запустите tcpdump over 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/

Konrad
источник
Можно ли таким образом перехватывать пакеты, проходящие через маршрутизатор на самом маршрутизаторе, или это невозможно?
inf3rno
Это здорово. Мой 2c: разрешать [ssh root] обычно не рекомендуется, но вы можете временно включить его, добавив root в строку [Match User] в / etc / ssh / sshd_config.
настроение
Это не работает для меня, ssh root@{MY_VPS_IP} -p 27922 "tcpdump -s 0 -U -n -w - -i eth0 not port 27922" > /tmp/remoteне могли бы вы сказать мне, почему?
Феникс
@infmo, если маршрутизатор может запускать tcpdump напрямую, то да, это должно быть возможно. У меня нет места для установки tcpdump. Не редкость для низкоуровневых маршрутизаторов.
получено с
21

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

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

Последнее -перед de |- это перенаправление этого выхода, которое используется для стандартного ввода wireshark. -kВариант в Wireshark означает «начать inmidiately нюхает

ctaglia
источник
Лучший первый ответ, который я когда-либо видел.
sjas
10

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

dmourati
источник
У меня есть более или менее интересная проблема, которая может быть решена таким образом. Ты можешь ответить на это? serverfault.com/questions/855245/catch-tcp-packets-with-router
inf3rno
4

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

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

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

кремнезем
источник
1

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

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

Иаков
источник
Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
Скотт Пак
1

Под 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
Дэн
источник
0

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

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

Джонни
источник
0

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

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

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)

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

беглец
источник