Як можна нюхати трафік віддаленої машини за допомогою проводки?


38

Я можу нюхати трафік свого локального ПК, але я хотів би знати, як я нюхаю трафік віддаленої машини за допомогою проводки?

У режимі захоплення я вибираю віддалений інтерфейс і ввожу свій віддалений ip покажіть мені помилку коду (10061). Що я повинен зробити?


5
Ви можете нюхати лише трафік, який бачить ваш мережевий інтерфейс. Якщо мережа переключена, пакети на віддалену машину вам не надсилаються. До речі: спробуйте покращити рівень прийняття.
Маттео

Відповіді:


54

На Linux і OSX ви можете досягти цього, запустивши tcpdump над ssh і прослухавши проводку.

  1. Створіть названу трубу:

    $ mkfifo /tmp/remote

  2. Запустіть проводку з командного рядка

    $ 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/


Чи можливо зловити пакети, що проходять через роутер на самому маршрутизаторі таким чином, чи це щось неможливо?
inf3rno

Це чудово. Мій 2c: дозволити [ssh root], як правило, не рекомендується, але ви можете тимчасово ввімкнути його, додавши root до рядка [Match User] у / etc / ssh / sshd_config.
moodboom

Це не працює для мене, 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 як корінь. Дуже корисно!

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

Останнє -перед de |- це перенаправлення цього виводу і використовується для стандартного введення за допомогою проводки. -kВаріант в Wireshark означає «почати inmidiately нюхає


Найкраща перша відповідь, яку я коли-небудь бачив.
sjas

10

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


У мене є більш-менш цікава проблема, яку можна вирішити таким чином. Ви можете відповісти на це? serverfault.com/questions/855245/catch-tcp-packets-with-router
inf3rno

4

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

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

Ви відкриєте проводку і покаже вам "Інтерфейс", як /dev/fd/63дескриптор файлів, що містить дані з віддаленої системи.


1

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

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


Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Скотт Пак

1

Відповідно до RHEL, відповідь Конрада не працювала для мене, оскільки tcpdumpвимагає root, і я маю лише доступ до sudo. Що працювало, це створити додатковий віддалений файл, який я можу прочитати з:

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)

Зверніть увагу на цей метод: він робить незахищений порт відкритим для всіх інтерфейсів, тому обов'язково фільтруйте вхідні з'єднання за допомогою правил брандмауера.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.