TCPDump - Saring berdasarkan Alamat MAC

25

Saya ingin menampilkan semua lalu lintas untuk atau dari alamat MAC tertentu. Untuk itu saya mencoba

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

Tidak berfungsi dan mengembalikan saya kesalahan

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

Saya tidak tahu bagaimana menafsirkan pesan kesalahan ini dan saya tidak tahu bagaimana menyelesaikan masalah.

Ada bantuan?

fenetas
sumber
Apakah Anda yakin itu format alamat MAC yang benar? Alamat MAC tidak memiliki format standar. Saya mengalami masalah dengan berbagai perangkat dan kode yang membutuhkan format berbeda. Beberapa membutuhkan titik dua, beberapa garis, beberapa dengan 2 digit, beberapa dengan 3, beberapa dengan 4, dan, sekali, yang membutuhkannya dipotong menjadi setengah.
Ron Maupin
Hai, ya cukup yakin. Ini adalah format yang digunakan untuk respons saat berfungsi. Seperti misalnya perintah ini berfungsi:> sudo tcpdump -e -nni semua ether src aa: bb: cc: 11: 22: 33 EDIT: Dan mengembalikan saya kira-kira seperti yang saya inginkan pada dasarnya. (Saya baru tahu)
phenetas
Itu adalah pesan kesalahan yang benar-benar mengerikan, dan tcpdump di OS X sebelum Mavericks, atau ketika tidak menangkap perangkat "apa pun" di Mavericks dan kemudian, atau pada OS lain akan melaporkan "tcpdump: alamat ethernet yang digunakan dalam ekspresi non-eter" . Saya telah mengajukan bug 21698116 pada reporter bug Apple untuk ini.

Jawaban:

41

Anda telah menggunakan yang berikut ini sebagai filter paket Anda: host aa:bb:cc:11:22:33

Seperti berdiri, ini mencari IP atau nama host tetapi Anda memberinya alamat MAC.

Untuk menggunakan alamat MAC, Anda harus menyertakan etherprimitif filter paket.

Dalam kasus Anda, berikut ini akan berfungsi:

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

Atau, jika Anda perlu menentukan antarmuka, maka itu akan menjadi sesuatu seperti:

sudo tcpdump -i eth0 ether host aa:bb:cc:11:22:33
YPelajari
sumber
Terima kasih, ini dijelaskan dengan sangat baik, saya mengerti parameter "ether" dengan jelas sekarang. Satu pertanyaan sekarang adalah mengapa saya tidak bisa melihat header paket HTTP ketika saya menjelajahi web? (Saya memiliki iPhone sebagai alat uji dan saya mengendus alamat MAC-nya, jika saya ping, saya bisa melihat trafiknya, jika saya bangun atau membuatnya tidur, saya bisa melihat lalu lintas, tetapi tidak ada apa-apa saat berselancar Safari)
phenetas
Tidak ada yang bisa mengatakan karena kami tidak tahu lingkungan Anda atau di mana Anda melihat data di lingkungan itu. Saya perlu tahu lebih banyak sebelum dapat menjawab pertanyaan itu.
YPelajari
Ok, saya mengembangkan pada Mac yang menjalankan OS 10 Yosemite terakhir, dan perangkat pengujian saya adalah iPhone 5S dengan iOs 7. Jaringannya dasar, satu jalur akses wifi, satu mac, satu iPhone. Masalahnya adalah, jika saya melakukan, sudo tcpdumpsaya akan melihat semua trafik di jaringan dan jika saya menjelajahi web pada Mac saya, saya akan melihat garis seperti 11:54:20.887984 IP 10.11.204.50.56049 > 886entdc11.enterprise.886ventures.com.domain: 46247+ A? programmers.stackexchange.com. (47), tetapi jika saya lakukan sudo tcpdump host IPOfIphonemaka saya tidak akan melihat apa pun dari trafik internet jika saya berselancar dengan teleponnya.
phenetas
Dengan asumsi "titik akses" Anda sebenarnya adalah semacam perangkat gateway dan menyediakan akses Anda ke Internet dan bahwa Anda melakukan tcpdump di Mac: kecuali Anda telah mengonfigurasinya untuk melakukannya dengan cara tertentu, lalu lintas internet iPhone tidak pergi melalui Mac sehingga Mac tidak akan melihatnya.
YPelajari
Ya itu masuk akal, mungkin saya kehilangan dasar jaringan (latar belakang listrik). Jadi jika saya mengerti Anda mengatakan bahwa saya hanya dapat melihat lalu lintas dari / ke mac saya atau disiarkan. Tetapi dalam hal itu, mengapa saya bisa melihat lalu lintas ketika telepon terhubung ke wifi? Dalam hal ini saya mendapatkan 11:45:52.852928 IP 10.11.204.15.mdns > 224.0.0.251.mdns: 0*- [0q] 1/0/1 TXT "model=N51AP" (98)yang merupakan komunikasi antara telepon (10.11.204.15) dan 224.0.0.251 yang jelas bukan mac saya (saya menganggap ini adalah titik akses).
phenetas