我在 ubuntu 14.04 上使用 wireshark,并尝试嗅探网络中其他设备的 wifi 流量。我在 wlan0 上运行 wireshark 或 tshark,开始捕获数据包并发送一些 ping 或在手机上打开一些页面,但我的 ubuntu 笔记本电脑没有捕获这些数据包 - 它只能看到从自己的 ip 到其他 ip 地址的数据包、从其他 ip 地址到自己的 ip 的数据包以及广播数据包。
手动打开 wlan0 的混杂模式sudo ip link set wlan0 promisc on
没有帮助。
看起来我的 wifi 适配器能够同时使用混杂模式和监控模式,因为我可以这样做,sudo airmon-ng start wlan0
并且会出现一个新mon0
接口,我可以使用 wireshark 捕获它的数据包,但这不是我需要的。mon0 上的那些数据包都是 802.11 协议,而不是 wlan0 上的 tcp、icmp 等。
更新
我决定排除 ubuntu 的 NetworkManager 或其他东西干扰 wireshark 的可能性,所以我尝试了 kali linux。
以下是我使用的具体步骤:
- 加载 kali linux
- 使用 gnome 无线网络小部件连接到我的家庭网络。
- 运行 wireshark,按“捕获选项”,检查 wlan0,检查 Prom. 模式是否已启用且 Mon. 模式是否已禁用,其他所有模式保留默认设置。
- 按开始
- 用我的手机 ping 我的 kali linux 笔记本电脑的 ip 地址
- 请注意,我可以看到从我的手机 IP 地址到我的 Kali 笔记本电脑 IP 的 ICMP 数据包,反之亦然
- 从我的手机 ping 8.8.8.8
- 请注意,我看不到从我的手机 IP 到任何地方的任何数据包,但我可以看到从“Netgear_d9:19:e8”(我猜这是我的路由器)到“SamsungE_2d:ad:da”(我猜这是我的手机)的 LLC 协议数据包
答案1
我相信您可以使用 airmon-ng 解决您的问题(这应该是 Kali 上默认安装的)。
答案由库尔特·诺赫纳在 ask.wireshark.org 上 来源
ifconfig -a
您看到 wlan0 或 wlan1 接口了吗?
如果没有,则说明内核无法识别您的无线网卡,Wireshark 对此无能为力。请在此处停下来,并询问 Linux 发行版(Ubuntu、Fedora 等)用户论坛中的人员如何为您的无线网卡添加可用的驱动程序。
如果你看到了 wlan0/1,请继续
sudo airmon-ng start wlan0
或者
sudo airmon-ng start wlan1
取决于您要捕获哪个无线接口。该命令应报告以下消息:
monitor mode enabled on mon0
现在,使用 tcpdump 和/或 dumpcap 在 mon0 上捕获。
sudo tcpdump -ni mon0 -w /var/tmp/wlan.pcap
或者
sudo dumpcap -ni mon0 -w /var/tmp/wlan.pcap
然后使用 Wireshark 打开该文件
wireshark -nr /var/tmp/wlan.pcap
答案2
混杂模式很少(如果有的话)能在 Wi-Fi 设备上实现您想要的功能;您必须在监控模式下进行捕获。(不,这里没有解决方法。)
mon0 上的软件包都是 802.11 协议
这是因为您处于受保护的网络上,使用 WEP 或 WPA/WPA2 加密。您必须向 Wireshark 提供网络密码,对于使用 WPA/WPA2 的网络(大多数受保护网络都使用 WPA/WPA2),您必须针对要解密其流量的每个设备强制它们断开与网络的连接,并在开始捕获后重新连接到网络,这样您就能捕获初始 EAPOL 握手。对于手机或平板电脑,关闭它们并重新打开就足够了;对于笔记本电脑,合上盖子并重新打开就足够了。(您想让它们进入睡眠状态并再次唤醒它们。)