Wireshark 仅捕获发往或来自此设备的数据包

Wireshark 仅捕获发往或来自此设备的数据包

我在 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。

以下是我使用的具体步骤:

  1. 加载 kali linux
  2. 使用 gnome 无线网络小部件连接到我的家庭网络。
  3. 运行 wireshark,按“捕获选项”,检查 wlan0,检查 Prom. 模式是否已启用且 Mon. 模式是否已禁用,其他所有模式保留默认设置。
  4. 按开始
  5. 用我的手机 ping 我的 kali linux 笔记本电脑的 ip 地址
  6. 请注意,我可以看到从我的手机 IP 地址到我的 Kali 笔记本电脑 IP 的 ICMP 数据包,反之亦然
  7. 从我的手机 ping 8.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 握手。对于手机或平板电脑,关闭它们并重新打开就足够了;对于笔记本电脑,合上盖子并重新打开就足够了。(您想让它们进入睡眠状态并再次唤醒它们。)

Wireshark wiki 的“如何解密 802.11”页面了解详情。

相关内容