TCPDump - Filtruj według adresu MAC


25

Chciałbym wyświetlić cały ruch do lub z określonego adresu MAC. Do tego próbowałem

sudo tcpdump host aa:bb:cc:11:22:33

To nie działa i zwraca mi błąd

tcpdump: pktap_filter_packet: pcap_add_if_info(en0, 1) failed: pcap_add_if_info: pcap_compile_nopcap() failed

Nie wiem, jak interpretować ten komunikat o błędzie i nie wiem, jak rozwiązać problem.

Jakaś pomoc ?


Czy na pewno jest to prawidłowy format adresu MAC? Adresy MAC nie mają standardowego formatu. Wystąpiły problemy z różnymi urządzeniami i kodami wymagającymi różnych formatów. Niektóre potrzebują dwukropków, niektóre myślniki, niektóre z 2 cyframi, niektóre z 3, niektóre z 4, a raz taki, który potrzebował go przeciąć na pół.
— Ron Maupin

Cześć, tak, całkiem pewne. Jest to format używany do odpowiedzi, gdy działa. Jak na przykład to polecenie działa:> sudo tcpdump -e -nni all ether src aa: bb: cc: 11: 22: 33 EDYCJA: I zwraca mi mniej więcej to, czego zasadniczo chcę. (Właśnie to odkryłem)
— Phenetas

To naprawdę straszne komunikat o błędzie, a tcpdump na OS X przed Mavericks, lub gdy nie jest uchwycenie na „any” urządzenia na Mavericks, a później, lub na dowolnym innym OS będzie raport „tcpdump: Adres ethernet używane w non-eter wyrażenia” . W tym celu zgłosiłem błąd 21698116 w raporcie błędów Apple.

Odpowiedzi:


41

Użyłeś następujących filtrów jako filtrów pakietów: host aa:bb:cc:11:22:33

W tej chwili szuka adresu IP lub nazwy hosta, ale podajesz mu adres MAC.

Aby użyć adresu MAC, musisz dołączyć etheroperację podstawową filtru pakietów.

W twoim przypadku powinny działać następujące elementy:

sudo tcpdump ether host aa:bb:cc:11:22:33

Lub, jeśli trzeba określić interfejs, byłoby to coś w stylu:

sudo tcpdump -i eth0 ether host aa:bb:cc:11:22:33

Dziękuję, to jest naprawdę dobrze wyjaśnione, rozumiem teraz parametr „eter”. Jedno pytanie brzmi: dlaczego nie widzę nagłówków pakietów HTTP podczas surfowania po Internecie? (Mam iPhone'a jako urządzenie testowe i wącham jego adres MAC, jeśli go pinguję, widzę ruch, jeśli go obudzę lub uśpię, widzę ruch, ale nic podczas surfowania w Safari)
— phenetas,

Nikt tak naprawdę nie może powiedzieć, ponieważ nie znamy Twojego środowiska ani miejsca, w którym patrzysz na dane w tym środowisku. Musiałbym wiedzieć o wiele więcej, zanim będę mógł odpowiedzieć na to pytanie.
— YLearn

Ok, rozwijam na komputerze Mac z ostatnią Os 10 Yosemite, a moim urządzeniem testowym jest iPhone 5S z iOs 7. Sieć jest podstawowa, jeden punkt dostępu Wi-Fi, jeden Mac, jeden iPhone. Chodzi o to, że jeśli zrobię a sudo tcpdump, zobaczę cały ruch w sieci i jeśli będę surfować po Internecie na moim Macu, zobaczę takie linie 11:54:20.887984 IP 10.11.204.50.56049 > 886entdc11.enterprise.886ventures.com.domain: 46247+ A? programmers.stackexchange.com. (47), ale jeśli to zrobię sudo tcpdump host IPOfIphone, nie zobaczę niczego z ruchu internetowego, jeśli surfuję z telefon.
— phenetas

Zakładając, że „punkt dostępu” jest w rzeczywistości rodzajem urządzenia bramowego i zapewnia dostęp do Internetu oraz wykonywanie tcpdump na komputerze Mac: chyba że skonfigurujesz to w jakiś sposób, ruch internetowy iPhone'a nie przejdź przez komputer Mac, aby komputer Mac go nie widział.
— YLearn

Tak, to ma sens, może brakuje mi podstaw sieci (tło elektryczne). Więc jeśli rozumiem, mówisz, że widzę tylko ruch z / do mojego Maca lub nadawany. Ale w takim przypadku, dlaczego widzę ruch, gdy telefon łączy się z Wi-Fi? W takim przypadku otrzymuję 11:45:52.852928 IP 10.11.204.15.mdns > 224.0.0.251.mdns: 0*- [0q] 1/0/1 TXT "model=N51AP" (98)komunikację między telefonem (10.11.204.15) a 224.0.0.251, która zdecydowanie nie jest moim komputerem Mac (zakładam, że to jest punkt dostępu).
— phenetas
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.