TCPDump - Filtrer par adresse MAC

25

Je voudrais afficher tout le trafic pour ou à partir d'une adresse MAC spécifique. Pour ça j'ai essayé

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

Cela ne fonctionne pas et me renvoie une erreur

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

Je ne sais pas comment interpréter ce message d'erreur et je ne sais pas comment résoudre le problème.

De l'aide ?

phénètes
la source
Êtes-vous sûr qu'il s'agit du format d'adresse MAC correct? Les adresses MAC n'ont pas de format standard. J'ai rencontré des problèmes avec différents appareils et du code nécessitant différents formats. Certains ont besoin de deux-points, certains tirets, certains avec 2 chiffres, certains avec 3, certains avec 4 et, une fois, celui qui en avait besoin coupé en deux.
Ron Maupin
Salut, oui, bien sûr. Il s'agit du format utilisé pour les réponses lorsqu'il fonctionne. Comme par exemple, cette commande fonctionne:> sudo tcpdump -e -nni all ether src aa: bb: cc: 11: 22: 33 EDIT: Et elle me renvoie approximativement ce que je veux en gros. (Je viens de le découvrir)
phenetas
C'est un message d'erreur vraiment horrible, et tcpdump sur OS X avant Mavericks, ou lorsqu'il n'est pas capturé sur le "tout" périphérique sur Mavericks et plus tard, ou sur tout autre système d' exploitation signalerait "tcpdump: adresse Ethernet utilisée dans l'expression non-éther" . J'ai déposé le bogue 21698116 sur le rapporteur de bogues Apple pour cela.

Réponses:

41

Vous avez utilisé ce qui suit comme filtre de paquets: host aa:bb:cc:11:22:33

En l'état, il s'agit d'une adresse IP ou d'un nom d'hôte mais vous lui donnez une adresse MAC.

Pour utiliser une adresse MAC, vous devez inclure la etherprimitive de filtrage de paquets.

Dans votre cas, les éléments suivants devraient fonctionner:

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

Ou, s'il a besoin de vous pour spécifier l'interface, ce serait quelque chose comme:

sudo tcpdump -i eth0 ether host aa:bb:cc:11:22:33
YApprendre
la source
Merci, c'est vraiment bien expliqué, je comprends bien maintenant le paramètre "éther". Une question est maintenant pourquoi ne puis-je pas voir les en-têtes de paquets HTTP lorsque je surfe sur le Web? (J'ai un iPhone comme appareil de test et je renifle son adresse MAC, si je le ping, je peux voir le trafic, si je le réveille ou le fais dormir, je peux voir le trafic, mais rien lorsque je surfe sur Safari)
phenetas
Personne ne pourrait vraiment dire que nous ne connaissons pas votre environnement ou où vous regardez les données dans cet environnement. J'aurais besoin d'en savoir beaucoup plus avant de pouvoir répondre à cette question.
Apprendre
Ok, je développe sur un Mac exécutant le dernier Os 10 Yosemite, et mon appareil de test est un iPhone 5S avec iOs 7. Le réseau est basique, un point d'accès wifi, un mac, un iPhone. Le truc c'est que si je fais un sudo tcpdumpje verrai tout le trafic sur le réseau et si je surfe sur le web sur mon Mac je verrai des lignes comme 11:54:20.887984 IP 10.11.204.50.56049 > 886entdc11.enterprise.886ventures.com.domain: 46247+ A? programmers.stackexchange.com. (47), mais si je fais un sudo tcpdump host IPOfIphonealors je ne verrai rien du trafic internet si je surfe avec le téléphone.
phenetas
En supposant que votre «point d'accès» est en fait une sorte de périphérique de passerelle et fournit votre accès à Internet et que vous effectuez le tcpdump sur le Mac: à moins que vous ne l'ayez configuré pour le faire d'une manière ou d'une autre, le trafic Internet de l'iPhone ne passer par le Mac pour que le Mac ne le voie pas.
Apprendre
Oui, cela a du sens, peut-être que je manque la base de la mise en réseau (fond électrique). Donc, si je comprends bien, vous dites que je ne peux voir que le trafic de / vers mon Mac ou diffusé. Mais dans ce cas, pourquoi puis-je voir le trafic lorsque le téléphone se connecte au wifi? Dans ce cas, j'obtiens un 11:45:52.852928 IP 10.11.204.15.mdns > 224.0.0.251.mdns: 0*- [0q] 1/0/1 TXT "model=N51AP" (98)qui est une communication entre le téléphone (10.11.204.15) et 224.0.0.251 qui n'est certainement pas mon mac (je suppose que c'est le point d'accès).
phenetas