使用 tcpdump 嗅探无线 LAN 网络

ald*_*deb 5 wireless-networking sniffing

如果我正确理解了无线工作的基础知识,我应该能够通过无线局域网嗅探其他计算机的流量。因此,我将第二台计算机连接到我的无线局域网,并尝试查看是否能够http通过网络嗅探其流量,使用如下tcpdump命令:

sudo tcpdump -v -i wlan0 dst 10.0.0.7
Run Code Online (Sandbox Code Playgroud)

while10.0.0.7是我想通过 LAN 嗅探的计算机的 IP。但不幸的是,我没有得到任何输出(如果我ping 10.0.0.7,ICMP 回声请求除外,所以tcpdump工作正常:))。

我错过了什么?

小智 9

您需要将网络接口设置为监控模式才能嗅探无线网络上的所有流量。因此,在启动之前tcpdump,请执行以下操作:

sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode Monitor
sudo ifconfig wlan0 up
Run Code Online (Sandbox Code Playgroud)

这将简单地关闭您的界面,启用监控模式并再次打开它。请注意,并非所有网络接口卡都支持监控模式。

要将您的 NIC 重置为正常,请发出相同的命令,但使用mode Managed.

附带说明一下,由于您的路由器使用了任何加密方案,您的嗅探器上的流量很可能不会像您期望的那样。考虑到您正在嗅探自己的网络,但在大多数情况下您将能够解密流量。 以下是有关如何在 上执行操作的简短概述,它Wireshark的替代方案tcpdump还具有图形用户界面。如果您更喜欢保留tcpdump捕获,您还可以使用其-w选项将流量转储到.pcap文件,然后在 Wireshark(或任何其他数据包分析器)中打开该文件。

请注意,如果您的网络使用 WPA 或 WPA2 加密,您将需要捕获路由器和要监控的每个设备之间的相应握手。我链接的 Wireshark wiki 文章解释了如何执行此操作:

WPA 和 WPA2 使用从 EAPOL 握手(当机器加入 Wi-Fi 网络时发生)派生的密钥来加密流量。除非您尝试解密的会话的所有四个握手数据包都存在,否则 Wireshark 将无法解密流量。您可以使用显示过滤器 eapol 来定位捕获中的 EAPOL 数据包。

为了捕获机器的握手,您需要在捕获过程中强制机器(重新)加入网络。