Jak mogę obwąchać ruch zdalnej maszyny za pomocą Wireshark?

38

Mogę wąchać ruch mojego lokalnego komputera, ale chciałbym wiedzieć, jak mam wąchać ruch komputera zdalnego przez Wireshark?

W opcji przechwytywania wybieram interfejs zdalny i wprowadzam mój zdalny adres ip pokaż mi kod błędu (10061). Co powinienem zrobić?

aboutstudy
źródło
5
Możesz wąchać tylko ruch widziany przez interfejs sieciowy. Jeśli sieć zostanie przełączona, pakiety do zdalnego komputera nie będą wysyłane do Ciebie. BTW: spróbuj poprawić wskaźnik akceptacji.
Matteo

Odpowiedzi:

54

W systemach Linux i OSX można to osiągnąć, uruchamiając tcpdump przez ssh i słuchając wireshark na potoku.

  1. Utwórz nazwaną potok:

    $ mkfifo /tmp/remote

  2. Uruchom wireshark z wiersza poleceń

    $ wireshark -k -i /tmp/remote

  3. Uruchom tcpdump przez ssh na zdalnym komputerze i przekieruj pakiety do nazwanego potoku:

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

Źródło: http://blog.nielshorn.net/2010/02/using-wireshark-with-remote-capturing/

konrad
źródło
Czy można złapać w ten sposób pakiety przechodzące przez router na samym routerze, czy jest to coś niemożliwego?
inf3rno
To jest świetne. Mój 2c: zezwalanie na [ssh root] zasadniczo nie jest zalecane, ale możesz tymczasowo włączyć go, dodając root do wiersza [Match User] w / etc / ssh / sshd_config.
moodboom
To mi nie działa, ssh root@{MY_VPS_IP} -p 27922 "tcpdump -s 0 -U -n -w - -i eth0 not port 27922" > /tmp/remoteczy możesz mi powiedzieć dlaczego?
Phoenix,
@ infmo, jeśli router może bezpośrednio uruchomić tcpdump, to tak, powinno być możliwe. Mój nie ma miejsca na instalację tcpdump. Nierzadko w przypadku routerów z niższej półki.
wheredidthatnamecomef od
21

Używam tego oneliner jako root. Jest bardzo przydatny!

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

Ostatni -przed de |jest przekierowaniem tego wyjścia i służy do standardowego wprowadzania danych przez wireshark. -kOpcja w środkach Wireshark „start inmidiately wąchania

Ctaglia
źródło
Najlepsza pierwsza odpowiedź, jaką kiedykolwiek widziałem.
sjas
10

Jednym z podejść jest użycie na przełączniku portu lustrzanego lub rozpiętego . Jeśli twój przełącznik nie jest wystarczająco inteligentny, możesz także umieścić mały hub pomiędzy przełącznikiem / hostem do przechwytywania. Połączysz fizyczne łącze z hosta nasłuchującego z tym portem / hubem, a następnie zobaczysz cały ruch przechodzący przez urządzenie. Możesz też zainstalować oprogramowanie do przechwytywania pakietów w bardziej strategicznym miejscu w sieci, takim jak firewall / router graniczny.

dmourati
źródło
Mam mniej lub bardziej interesujący problem, który można rozwiązać w ten sposób. Czy potrafisz na to odpowiedzieć? serverfault.com/questions/855245/catch-tcp-packets-with-router
inf3rno
4

Możesz użyć deskryptora pliku, aby połączyć się z pakietami i odebrać je sshoraz przesłać potokiem do lokalnego portu wireshark:

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

Wireshark otworzy się i wyświetli „interfejs” podobny /dev/fd/63do deskryptora pliku zawierającego dane ze zdalnego systemu.

SiLeX
źródło
1

Pod RHEL odpowiedź konrada nie działała dla mnie, ponieważ tcpdumpwymaga rootowania, a ja mam tylko dostęp do sudo. To, co zadziałało, to stworzenie dodatkowego zdalnego fifo, z którego mogę czytać:

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

i wyślij dane osobnym połączeniem:

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

i wreszcie uruchom Wireshark

local:~$ wireshark -k -i pcap
Dan
źródło
0

Możesz wąchać tylko ruch, który trafia do Ciebie. Więc Joe A idąc do Joe B nigdy nie zbliża się do twojego komputera, więc go nie widzisz.

Jedynym sposobem jest dotarcie do ruchu lub dotarcie do Ciebie. Aby dostać się do ruchu, wymagane jest połączenie z routerem lub dobrym przełącznikiem lub koncentratorem gdzieś pośrodku połączenia. Aby uzyskać ruch do ciebie, musisz zatruć niektóre przełączniki ARP, aby myśleli, że to oni.

Jasio
źródło
0

Oprócz poprzednich odpowiedzi ncprzydatna może być również wersja z netcat :

Zdalny host:

mkfifo /tmp/mypcap.fifo

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

nc -l 10000 < /tmp/mypcap.fifo

Lokalny Gospodarz:

wireshark -ki <(nc 192.168.1.1 10000)

Uwaga na temat tej metody: sprawia, że ​​niezabezpieczony port jest otwarty na wszystkie interfejsy, więc należy filtrować połączenia przychodzące za pomocą reguł zapory.

zbieg
źródło