Я могу обнюхивать трафик своего локального компьютера, но я хотел бы знать, как прослушивать трафик удаленного компьютера с помощью wirehark?
В режиме захвата я выбираю удаленный интерфейс и ввожу свой удаленный IP-адрес, показывающий мне error.code (10061). Что я должен делать?
В Linux и OSX вы можете добиться этого, запустив tcpdump через ssh и настроив wirehark для прослушивания канала.
Создайте именованный канал:
$ mkfifo /tmp/remote
Запустите wirehark из командной строки
$ wireshark -k -i /tmp/remote
Запустите 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
, который представляет собой файловый дескриптор, содержащий данные из удаленной системы.
см. информацию о настройке удаленного компьютера, чтобы ваша локальная машина могла подключаться и захватывать
Под 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 некоторые коммутаторы, чтобы они считали вас своими.