5

我一直在使用 tcpdump(版本 4.1.1)尝试从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 的捕获程序?

4

2 回答 2

3

你试过airodump-ng吗?

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

于 2011-05-22T11:24:45.573 回答
2

似乎实际上出了点问题。在我的 Ubuntu 上,以下效果很好。

sudo tcpdump -w ./test.cap

也许你可以试试

sudo tcpdump -U -w ./test.cap

J.P

于 2011-04-08T05:41:56.207 回答