TCPDump - Фільтр за MAC-адресою


25

Я хотів би відобразити весь трафік для конкретної MAC-адреси або з неї. Для цього я спробував

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

Це не працює і повертає мені помилку

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

Я не знаю, як інтерпретувати це повідомлення про помилку, і я не знаю, як вирішити проблему.

Будь-яка допомога?


Ви впевнені, що це правильний формат MAC-адреси? MAC-адреси не мають стандартного формату. У мене виникли проблеми з різними пристроями та кодом, що вимагають різних форматів. Деяким потрібні колонки, деяким тире, деяким - 2 цифри, іншим - 3, іншим - 4, а колись потрібному - розрізати навпіл.
Рон Моупін

Привіт, так, впевнений. Це формат, який використовується для відповідей, коли він працює. Як, наприклад, ця команда працює:> sudo tcpdump -e -nni all ether src aa: bb: cc: 11: 22: 33 EDIT: І це повертає мені приблизно те, що я хочу в основному. (Я щойно це виявив)
фенета

Це справді жахливе повідомлення про помилку, і tcpdump на OS X до Mavericks, або коли не фіксується на "будь-якому" пристрої в Mavericks і пізніше, або на будь-якій іншій ОС повідомляє "tcpdump: адреса ethernet, що використовується в неефірному вираженні" . Я подав помилку 21698116 на репортер помилок Apple.

Відповіді:


41

Ви використовували в якості фільтра пакетів: host aa:bb:cc:11:22:33

На даний момент це шукає IP-адресу або ім'я хоста, але ви надаєте йому MAC-адресу.

Щоб використовувати MAC-адресу, потрібно включити etherпримітив фільтра пакетів.

У вашому випадку має працювати наступне:

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

Або, якщо вам потрібно вказати інтерфейс, це було б щось на зразок:

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

Дякую, це дійсно добре пояснено, зараз я чітко розумію параметр "ефір". Одне запитання - чому я не можу бачити заголовки пакетів HTTP, коли я переглядаю Інтернет? (У мене є iPhone як тестовий пристрій, і я нюхаю його MAC-адресу. Якщо я пінг його, я можу побачити трафік, якщо просто розбудити його або змусити його спати, я можу побачити трафік, але нічого, коли переглядаю Safari)
phenetas

Ніхто насправді не міг сказати, оскільки ми не знаємо вашого оточення або де ви переглядаєте дані в цьому середовищі. Мені потрібно було б дізнатися набагато більше, перш ніж я зможу відповісти на це питання.
YLearn

Гаразд, я розробляю на Mac, що працює на останньому Os 10 Yosemite, і мій тестовий пристрій - це iPhone 5S з iOs 7. Мережа є базовою, одна точка доступу до wifi, один mac, один iPhone. Річ у тім, що якщо я буду робити, sudo tcpdumpя зроблю всі трафіки в мережі, і якщо я перейду в Інтернеті на своєму Mac, я побачу подібні рядки 11:54:20.887984 IP 10.11.204.50.56049 > 886entdc11.enterprise.886ventures.com.domain: 46247+ A? programmers.stackexchange.com. (47), але якщо я це зробити, sudo tcpdump host IPOfIphoneто я не побачу нічого з трафіку в Інтернеті, якщо переглядатиму телефон.
фенета

Припустимо, що ваша "точка доступу" - це фактично якийсь пристрій шлюзу, який забезпечує ваш доступ до Інтернету, і ви робите tcpdump на Mac: якщо ви не налаштували це так чи інакше, інтернет-трафік iPhone не робить перейдіть через Mac, щоб Mac не бачив цього.
YLearn

Так, це має сенс, можливо, я пропускаю основу мереж (електричний фон). Тож якщо я зрозумів, ви говорите, що я бачу лише трафік від / до мого комп’ютера або транслюється. Але в такому випадку, чому я можу бачити трафік, коли телефон підключається до wifi? У такому випадку я отримую 11:45:52.852928 IP 10.11.204.15.mdns > 224.0.0.251.mdns: 0*- [0q] 1/0/1 TXT "model=N51AP" (98)зв'язок між телефоном (10.11.204.15) та 224.0.0.251, що, безумовно, не є моїм комп'ютером (я припускаю, що це точка доступу).
phenetas
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.