跳过内容

MASTG-TECH-0123: 通过 ARP 欺骗实现 MITM 位置

当基于代理的拦截由于非 HTTP 协议或非代理感知应用而失败时,可以使用 ARP 欺骗 来重定向网络流量。 ARP 欺骗是一种 第二层攻击,允许攻击者冒充网络网关,强制移动设备通过攻击者的机器发送其流量。

此技术适用于任何设备和操作系统,因为攻击是在 OSI 第二层执行的。 当您进行 MITM 时,您可能无法看到明文数据,因为传输中的数据可能由 TLS 加密,但它会为您提供有关所涉及主机、使用的协议以及应用正在与之通信的端口的宝贵信息。

要执行 ARP 欺骗攻击,您可以使用 _ bettercap.

重要提示: 现代操作系统实现了加密 DNS(DoH、DoT)、MAC 地址随机化和 ARP 欺骗检测等防御措施,使得此技术在新设备上的效果降低。

网络设置

要实现 中间人 (MITM) 位置,您的主机计算机必须与移动设备及其通信的网关位于同一无线网络上。 设置完成后,您需要获取移动设备的 IP 地址。 为了对移动应用进行完整的动态分析,应拦截并分析所有网络流量。

MITM 攻击

首先启动您首选的网络分析工具,然后使用以下命令启动 _ bettercap,并将以下 IP 地址 (X.X.X.X) 替换为您要对其执行 MITM 攻击的目标。

$ sudo bettercap -eval "set arp.spoof.targets X.X.X.X; arp.spoof on; set arp.spoof.internal true; set arp.spoof.fullduplex true;"
bettercap v2.22 (built for darwin amd64 with go1.12.1) [type 'help' for a list of commands]

[19:21:39] [sys.log] [inf] arp.spoof enabling forwarding
[19:21:39] [sys.log] [inf] arp.spoof arp spoofer started, probing 1 targets.

然后,bettercap 将自动将数据包发送到(无线)网络中的网络网关,并且您能够嗅探流量。 2019 年初,bettercap 增加了对 全双工 ARP 欺骗 的支持。

在手机上启动浏览器并导航到 http://example.com,当您使用 Wireshark 时,您应该会看到如下输出。

如果是这种情况,您现在可以查看手机发送和接收的完整网络流量。 这也包括 DNS、DHCP 和任何其他形式的通信,因此可能会非常“嘈杂”。 因此,您应该知道如何在 Wireshark 中使用 DisplayFilters 或知道 如何在 tcpdump 中进行过滤,以便只关注与您相关的流量。