监控模式接口上的tcpdump - 没有捕获

时间:2011-04-07 17:33:34

标签: linux wireless wireshark libpcap tcpdump

我一直在使用tcpdump(版本4.1.1)来尝试monitor mode设置的airmon-ng接口捕获无线帧。我说“尝试”因为到目前为止还没有发生任何事情。这很奇怪:

tcpdump -i mon0

上面的命令工作正常。我看到所有的信标和探测请求以及屏幕上可以显示的所有其他帧。但是,当我尝试使用

将输出写入捕获文件时

tcpdump -i mon0 -w captures.cap

绝对没有被捕获,包括包含实际数据的第3层数据包。当我杀死tcpdump时,它给了我

13507 packets captured
13507 packets received by filter
0 packets dropped by kernel

(在这种情况下,13507是任意数字)和一个完全空的捕获文件。

但是,当我在同一界面上使用tshark或wireshark执行捕获时,帧会被捕获到文件中而没有任何问题。

我更喜欢使用tcpdump而不是wireshark,因为它没有GUI的开销,它有“-z”选项,它允许我获取捕获文件并将其传递给复制它的shell脚本到我网络上的另一台电脑。 tshark或wireshark没有类似的功能,我非常希望避免编写程序来检查捕获文件是否存在。

我是否对tcpdump的工作方式存在根本性的误解,或者这里肯定有什么奇怪的事情发生?是否有更好的方式来做我正在做的事情,或者我将不得不编写自己的基于libpcap的捕获程序?

2 个答案:

答案 0 :(得分:3)

你试过airodump-ng吗?

不确定它是否使用libpcap作为捕获库,但是它使用pcap文件格式并且有很多选项用于通道选择,bssid过滤等。

答案 1 :(得分:2)

似乎有效地出了问题。在我的Ubuntu上,以下效果很好。

sudo tcpdump -w ./test.cap

也许你可以试试

sudo tcpdump -U -w ./test.cap

JP