Przechwytywanie ruchu lokalnego hosta Wireshark [zamknięte]

118

Napisałem prostą aplikację serwerową w C, która działa na hoście lokalnym. Jak przechwycić ruch lokalnego hosta za pomocą Wireshark?

Udara SS Liyanage
źródło
3
Chociaż jestem stary, nadal głosuję za ponownym otwarciem ze względu na spójność. To jest poprawne pytanie, a IMHO jest wystarczająco wąskie (konkretny problem to „localhost”)
Marcel

Odpowiedzi:

69

Jeśli używasz systemu Windows, nie jest to możliwe - przeczytaj poniżej. Zamiast tego możesz użyć lokalnego adresu swojej maszyny, a wtedy będziesz mógł przechwytywać rzeczy. Zobacz CaptureSetup / Loopback .

Podsumowanie: możesz przechwytywać w interfejsie sprzężenia zwrotnego w systemie Linux, na różnych BSD, w tym w systemie Mac OS X oraz w systemie Digital / Tru64 UNIX, i możesz to zrobić na Irix i AIX, ale zdecydowanie nie możesz tego zrobić na Solarisie, HP UX ... .

Chociaż na stronie wspomniano, że nie jest to możliwe w systemie Windows przy użyciu samego programu Wireshark, w rzeczywistości można to nagrać, stosując obejście, jak wspomniano w innej odpowiedzi .


EDYCJA: Jakieś 3 lata później ta odpowiedź nie jest już całkowicie poprawna. Strona, do której prowadzi łącze, zawiera instrukcje dotyczące przechwytywania w interfejsie sprzężenia zwrotnego .

cnicutar
źródło
Odpowiedź feuGene faktycznie działa.
GWLlosa
@GWLlosa Yup. Możesz użyć lokalnego adresu swojego komputera .
cnicutar
7
Okazało się, że nie wystarczy po prostu umieścić własnego adresu IP w wireshark zamiast pętli zwrotnej; dodanie trasy było konieczne, aby zadziałało w mojej sytuacji.
GWLlosa
1
Dzięki. W systemie OS X interfejs pętli zwrotnej to lo0. Wydaje się, że wybranie en1 lub innego ustawienia domyślnego nie zadziała.
sudo
Przy konfigurowaniu adaptera sprzężenia zwrotnego uważam, że ten film z YouTube jest przydatny. youtube.com/watch?v=KsWICPPO_N8
developer747
51

Z jakiegoś powodu żadna z poprzednich odpowiedzi nie zadziałała w moim przypadku, więc opublikuję coś, co załatwiło sprawę. Jest mały klejnot o nazwie RawCap, który może przechwytywać ruch lokalnego hosta w systemie Windows. Zalety:

  • tylko 17 kB!
  • żadne zewnętrzne biblioteki nie są potrzebne
  • niezwykle prosty w użyciu (wystarczy go uruchomić, wybrać interfejs sprzężenia zwrotnego i plik docelowy i to wszystko)

Po przechwyceniu ruchu możesz go otworzyć i normalnie sprawdzić w Wireshark. Jedyną wadą, którą znalazłem, jest to, że nie możesz ustawić filtrów, tj. Musisz przechwytywać cały ruch localhost, który może być ciężki. Istnieje również jeden błąd dotyczący systemu Windows XP SP 3.

Jeszcze kilka porad:

Miljen Mikic
źródło
1
nie wymaga konfiguracji i był dość prosty.
vibhu
Możesz też pozwolić Wireshark natychmiast odczytać wyjście RawCap, dając ci przechwytywanie na żywo. Zobacz moją odpowiedź po szczegóły.
Richard Kiefer
48

Na platformie Windows możliwe jest również przechwytywanie ruchu lokalnego hosta za pomocą Wireshark. Musisz zainstalować adapter sprzężenia zwrotnego firmy Microsoft , a następnie go podsłuchać.

ciphor
źródło
ciphor, czy udało ci się to zrobić? jest to w bezpośredniej sprzeczności z odpowiedzią Cnicutara.
feuGene
tak, udało mi się to.
ciphor
I jak? Nie udało mi się.
schlamar
18
Mam to do pracy tak samo na Win 7. Menedżer urządzeń -> Dodaj starszy sprzęt -> Wybieram -> Sieć -> Microsoft -> Karta Loopback. Po zainstalowaniu skonfiguruj go z wybranym przez siebie adresem IP. Następnie: przeinstaluj program wireshark, aby przeinstalował sterownik przechwytywania na nowym interfejsie - należy to wykonać za każdym razem, gdy dodajesz nowe interfejsy do systemu Windows, pętli zwrotnej lub rzeczywistej.
antiduh
4
Postępowałem zgodnie z instrukcjami @antiduh na Win 7 i chociaż widziałem zapytania netbios, nie widziałem ruchu HTTP na hoście lokalnym.
Carlos Rendon
26

Właściwie tego nie próbowałem, ale ta odpowiedź z sieci brzmi obiecująco:

Wireshark nie może faktycznie przechwytywać lokalnych pakietów w systemie Windows XP ze względu na naturę stosu TCP systemu Windows. Gdy pakiety są wysyłane i odbierane na tej samej maszynie, nie wydają się przekraczać granic sieci, które monitoruje wireshark.

Istnieje jednak sposób na obejście tego problemu, możesz skierować ruch lokalny za pośrednictwem bramy sieciowej (routera), konfigurując (tymczasową) trasę statyczną na komputerze z systemem Windows XP.

Powiedzmy, że twój adres IP XP to 192.168.0.2, a adres bramy (routera) to 192.168.0.1, możesz uruchomić następujące polecenie z wiersza poleceń systemu Windows XP, aby wymusić cały ruch lokalny na zewnątrz i z powrotem przez granicę sieci, aby wireshark mógł następnie śledzić data (pamiętaj, że w tym scenariuszu wireshark zgłosi pakiety dwukrotnie, raz po opuszczeniu komputera i raz po powrocie).

route add 192.168.0.2 mask 255.255.255.255 192.168.0.1 metric 1

http://forums.whirlpool.net.au/archive/1037087 , dostęp właśnie teraz.

feuGene
źródło
6
Spróbowałem tego i stwierdziłem, że działa bardzo dobrze.
GWLlosa
nie działa na win 7 32bit
vantrung -cuncon
11

Wypróbuj Npcap: https://github.com/nmap/npcap , jest oparty na WinPcap i obsługuje przechwytywanie ruchu zwrotnego w systemie Windows. Npcap jest podprojektem Nmapa ( http://nmap.org/ ), więc prosimy o zgłaszanie wszelkich problemów na liście rozwoju Nmapa ( http://seclists.org/nmap-dev/ ).

Yang Luo
źródło
Opcja nr 1 z dokumentacji wiresharkaStarting from Windows Vista: Npcap is an update of WinPcap using NDIS 6 Light-Weight Filter (LWF), done by Yang Luo for Nmap project during Google Summer of Code 2013 and 2015. Npcap has added many features compared to the legacy WinPcap.
KCD
Możesz pobrać instalator stąd: nmap.org/npcap
Wayne Phipps
2
Warto wiedzieć, że NPcap ma pewne ograniczenia licencyjne do użytku w środowiskach biznesowych.
Jan Smrčina
10

Możesz przeglądać ruch sprzężenia zwrotnego na żywo w Wireshark, odczytując natychmiast wyjście RawCap . cmaynard opisuje to genialne podejście na forach Wireshark . Zacytuję to tutaj:

[...] jeśli chcesz zobaczyć ruch na żywo w Wireshark, nadal możesz to zrobić, uruchamiając RawCap z jednej linii poleceń i uruchamiając Wireshark z innego. Zakładając, że masz dostępny ogon cygwina, można to osiągnąć za pomocą czegoś takiego:

cmd1: RawCap.exe -f 127.0.0.1 dumpfile.pcap

cmd2: tail -c +0 -f dumpfile.pcap | Wireshark.exe -k -i -

Wymaga ogona cygwina i nie mogłem znaleźć sposobu, aby to zrobić za pomocą gotowych do użycia narzędzi systemu Windows. Jego podejście działa dla mnie bardzo dobrze i pozwala mi wykorzystać wszystkie możliwości filtrów Wiresharksa na przechwyconym ruchu zwrotnym na żywo.

Richard Kiefer
źródło
3
Dla mnie najważniejszą częścią było uruchomienie drugiego polecenia cmd z pewnym opóźnieniem, w przeciwnym razie Wireshark nie mógł odczytać pliku .pcap. Prawdopodobnie dlatego, że na początku musi być w nim zarejestrowany ruch.
Richard Kiefer
To powinna być zaakceptowana odpowiedź (wystarczy uruchomić cmd2 z git bash)
fider
4
Aktualizacja : Netresec właśnie ogłosił dzisiaj (30 stycznia 2020 r.) Nową wersję RawCap, która teraz obsługuje zapisywanie do potoku lub do stdout. Dlatego na dzień dzisiejszy powyższe rozwiązanie można uprościć w następujący sposób, bez tailkonieczności: RawCap.exe -q 127.0.0.1 - | Wireshark.exe -i - -k Możesz przeczytać więcej o nowych funkcjach RawCap na stronie z ogłoszeniami RawCap Redux tutaj: netresec.com/?page=Blog&month=2020-01&post=RawCap -Redux
Christopher Maynard
8

Dla systemu Windows ,

Nie można przechwytywać pakiety dla lokalnego sprzężenia zwrotnego w Wireshark można jednak stosować bardzo małe, ale przydatny program o nazwie RawCap ;

RawCap

Uruchom RawCap w wierszu poleceń i wybierz Loopback Pseudo-Interface (127.0.0.1), a następnie po prostu wpisz nazwę pliku przechwytywania pakietów ( .pcap )

Proste demo jest jak poniżej;

C:\Users\Levent\Desktop\rawcap>rawcap
Interfaces:
 0.     169.254.125.51  Local Area Connection* 12       Wireless80211
 1.     192.168.2.254   Wi-Fi   Wireless80211
 2.     169.254.214.165 Ethernet        Ethernet
 3.     192.168.56.1    VirtualBox Host-Only Network    Ethernet
 4.     127.0.0.1       Loopback Pseudo-Interface 1     Loopback
Select interface to sniff [default '0']: 4
Output path or filename [default 'dumpfile.pcap']: test.pcap
Sniffing IP : 127.0.0.1
File        : test.pcap
Packets     : 48^C
Levent Divilioglu
źródło
6

Nie można przechwytywać sprzężenia zwrotnego w systemie Solaris, HP-UX lub Windows, jednak można bardzo łatwo obejść to ograniczenie, używając narzędzia takiego jak RawCap .

RawCap może przechwytywać surowe pakiety na dowolnym adresie IP, w tym 127.0.0.1(localhost / loopback). Rawcap może również wygenerować pcapplik. Możesz otworzyć i przeanalizować pcapplik za pomocą Wireshark .

Zobacz tutaj, aby uzyskać szczegółowe informacje na temat monitorowania hosta lokalnego za pomocą RawCap i Wireshark.

cmd
źródło
2

Tak, możesz monitorować ruch lokalnego hosta za pomocą adaptera Npcap Loopback

melwinalm
źródło