Я использую tcpdump (версия 4.1.1) для попытки для захвата беспроводных кадров из режима монитора интерфейса, настроенного airmon-ng, Я говорю «попытка», потому что пока ничего не происходит. Это очень странно:
tcpdump -i mon0
Приведенная выше команда работает нормально. Я вижу все маяки и зондирующие запросы, а также все возможные кадры, отображаемые на моем экране. Однако, когда я пытаюсь записать вывод в файл захвата, используя
tcpdump -i mon0 -w captures.cap
абсолютно ничего захватывается, включая пакеты уровня 3, которые содержат фактические данные . Когда я убиваю tcpdump, это дает мне
13507 packets captured<br>
13507 packets received by filter<br>
0 packets dropped by kernel
(в данном случае 13507 - произвольное число) и совершенно пустой файл захвата.
Однако, когда я выполняю захват с помощью tshark или wireshark на том же интерфейсе, кадры записываются в файлы без каких-либо проблем.
Я бы предпочел использовать tcpdump вместо wireshark, поскольку он не имеет накладных расходов графического интерфейса и имеет опцию "-z", которая позволяет мне взять файл захвата и передать его в сценарий оболочки, который копирует его на другой компьютер в моей сети. С tshark или wireshark нет аналогичных функций, и я бы очень хотел избежать написания программы для проверки наличия файла захвата.
У меня есть фундаментальное недоразумение о том, как работает tcpdump, или здесь определенно что-то происходит? Возможно, есть лучший способ сделать то, что я делаю, или мне придется написать свою собственную программу захвата на основе libpcap?