速查表,收录了跨 L2-L4 及无线层的中间人攻击,包含攻击工具、检测方法以及面向渗透测试人员和防御者的缓解技术。
我们尝试汇总所有已知的 MITM 攻击及针对这些攻击的防护方法。这里还包含用于实施 MITM 攻击的工具、一些有趣的攻击案例以及与之相关的一些技巧。
注意: 这里描述的几乎所有攻击工具内部都不包含任何嗅探器。它们只提供攻击功能。用于嗅探的工具见:数据嗅探。
一份面向渗透测试人员和防御团队的关于中间人攻击的速查表。
⏳ - 进行中的部分
复杂度: 低 相关性: 高 描述: 地址解析协议 (ARP) 用于将 IP 地址解析为 MAC 地址。所有需要在网络中通信的网络设备都使用广播 ARP 查询来获知其他机器的 MAC 地址。
几乎所有 ARP 欺骗工具都使用免费 ARP 响应。免费 ARP 应答是一种无需 ARP 请求的应答。
尽管免费 ARP 很有效,但它特别不安全,因为它可以被用来向远程主机保证同一网络上某系统的 MAC 地址已更改,并指定现在使用的是哪个地址。
在执行 ARP 欺骗之前,节点 A 和 B 的 ARP 表中存在彼此的 IP 和 MAC 地址条目。信息在节点 A 和 B 之间传输。
在 ARP 欺骗过程中,执行攻击的计算机 C 发送 ARP 响应(未收到请求 = 免费 ARP)=>
还有一种可能通过其他方式成功实施攻击。当你在网段中监控 ARP 活动并突然注意到受害者的 ARP 请求时,你可以尝试比该请求的收件人更快地向受害者发送 ARP 应答。一些厂商的设备会接受这种伎俩。
攻击工具:
bettercap -T 10.10.10.10 -X --httpd --proxy-https --proxyarpspoof -i eth0 -t 10.10.10.10攻击检测
攻击防御
手动 ARP 表
它有局限性,因为这会给网络可扩展性带来困难。而对于无线网络来说,这是一个挑战,几乎不可能实现。
打补丁
诸如 Anticap 和 Antidote 之类的实用工具可以在防止 ARP 欺骗方面发挥重要作用,其中 Anticap 阻止用不同的 MAC 更新现有 ARP 缓存,这实际上防止了 ARP 欺骗,但它违反了 ARP 协议规范,这确实是个问题;而另一方面,Antidote 以略有不同的方式防止 ARP 投毒。它分析新收到的 ARP 应答与现有缓存。如果新缓存与之前的不同,它会查找该 MAC 地址是否仍然存活。如果发现之前的缓存 MAC 地址仍然存活,则拒绝新的地址,并将攻击者的 MAC 地址添加到被封禁的 MAC 地址列表中,以防止对同一目标计算机的进一步 ARP 投毒尝试。
在交换机上创建 VLAN
在交换机上创建一个仅包含交换机本身和特定网络设备的 VLAN。
创建加密连接
此方法也适用于公共网络,因为所有流量都已加密,无法拦截任何用户数据。
DAI
Cisco 系统中的动态 ARP 检测通过不将无效或免费 ARP 应答转发到同一 VLAN 中的其他端口,有助于防止中间人攻击。动态 ARP 检测会拦截不可信端口上的所有 ARP 请求和所有应答。每个被拦截的数据包都会通过 DHCP 侦听验证其 IP 到 MAC 绑定的有效性。被拒绝的 ARP 数据包会被交换机丢弃或记录以供审计,从而阻止 ARP 投毒攻击。可信端口上传入的 ARP 数据包不会被检查。
相关链接
ARP 的工作原理
复杂度: 高
相关性: 中等
描述:
生成树协议旨在当交换机之间存在冗余路径时检测并防止网络中的环路。
任何能够模拟具有(更低)根交换机标识符的设备的人(通过连接具有更低优先级的新虚拟设备或使用 STP 数据包生成工具)都可以部分或完全拦截虚拟网络流量。通常,攻击者与两台交换机之间没有物理连接,因此所描述的攻击方法几乎不可能实现。然而,在无线网络中,情况会发生变化,因为有线连接(办公室中的网口)和无线连接(接入点)可能终结在不同的交换机上。
攻击工具
注意:此类攻击通常会导致拒绝服务。
yersinia –G
Yersinia 提供图形界面和交互式控制台,你需要选择网络接口并启动 MITM 攻击。yersinia –I。ettercap防御技术
复杂度: 中等
相关性: 几乎无
描述:
攻击工具
防御技术
复杂度: 中等
相关性: 无
描述:
虚拟局域网(Local Area Network)是一种逻辑子网,可以将来自不同物理 LAN 的一组设备组合在一起。较大的企业计算机网络通常设置 VLAN 来重新划分其网络,以改善流量管理。
VLAN 的工作原理是向网络帧应用标签,并在网络系统中处理这些标签——从而营造出一种网络流量的外观和功能,即物理上位于单一网络,但表现得如同被分割在多个独立网络之间。
VLAN 跳转是涉及访问 VLAN 的攻击的常见名称,该 VLAN 最初(攻击前)对攻击者不可用。
主要的 VLAN 跳转攻击(使用 DTP)
仅适用于旧款 Cisco 交换机。
攻击者充当交换机,以诱骗合法交换机在两者之间创建中继链路。来自任何 VLAN 的数据包都允许通过中继链路。一旦中继链路建立,攻击者便可访问任何 VLAN 的流量。此方法仅在合法交换机配置为协商中继时才会成功。当接口配置为 "dynamic desirable"、"dynamic auto" 或 "trunk" 模式时,就会出现这种情况。如果目标交换机配置了其中一种模式,攻击者就可以从其计算机生成 DTP 消息,从而形成中继链路。
双重标记 发生在攻击者添加和修改以太网帧上的标签,以允许数据包通过任何 VLAN 发送时。此攻击利用了許多交换机处理标签的方式。大多数交换机只会移除外层标签,并将帧转发到所有本征 VLAN 端口。话虽如此,此方法仅在攻击者属于中继链路的本征 VLAN 时才会成功。另一个重要点是,此攻击严格来说是单向的,因为无法封装返回数据包。
Exploit-db 文档
带插图和视频的指南
VLAN 跳转完整指南
深度文章
攻击工具
yersinia –G
Yersinia 提供图形界面和交互式控制台,你需要选择网络接口并启动 MITM 攻击。
图形界面运行不稳定,因此可以使用交互式界面:yersinia –I。
Scapy
Scapy 是一个 Python 程序,使用户能够发送、嗅探、剖析和伪造网络数据包。它可用于创建处理此攻击所需的特制帧。
dtp-spoof.py -i eth0 使用 eth0 的 MAC 地址从 eth0 发送一个 DTP Trunk 数据包
DTP-spoof 是一款用于测试交换机动态中继协议(DTP)配置的安全工具。如果目标交换机被配置为协商端口模式,你就有可能将目标交换机的端口设置为 Trunk 模式,从而获得对额外 VLAN 的访问权限。
防御技术
主要的 VLAN 跳跃攻击(使用 DTP)
只有在接口被设置为协商中继时才能执行此攻击。为防止 VLAN 跳跃被利用,我们可以采取以下缓解措施:
双重标记
为防止双重标记攻击,请确保所有中继端口的本征 VLAN 与用户 VLAN 不同。
复杂度: 低
相关性: 高
描述
SLAAC - 无状态地址自动配置。SLAAC 是主机网络配置的方式之一,类似于 DHCPv4。SLAAC 无需维护所提供地址状态的 DHCPv6 服务器即可提供 IPv6 主机前缀值、前缀长度和默认网关链路本地地址(这就是它被称为无状态的原因)。SLAAC 过程在仅 SLAAC 以及 SLAAC+DHCPv6 无状态配置期间执行。
此过程的主要问题在于,攻击者可以伪造恶意 RA 向主机提供他自己的配置(例如,成为链路上的默认路由器)。所有启用了 IPv6 的主机都可能受到 SLAAC 攻击的影响。尤其是在操作系统默认启用 IPv6 但组织尚未以任何形式部署 IPv6 的情况下。
RA 中的另一个威胁来自通过 RA 发送 DNS 配置的能力,因此攻击者也可以伪造它:RFC 6106 - IPv6 Router Advertisement Options for DNS Configuration。
攻击工具
suddensix
这是一个脚本,预设了安全研究员 Alec Waters 在其关于 SLAAC 攻击的文章中所使用的工具。该脚本略显过时,在 Ubuntu 12.04 LTS 上运行良好。最好为其创建单独的虚拟机。
EvilFOCA
一款出色的 Windows IPv6 MITM 攻击工具。这是一个用 C# 编写、带 GUI 的工具,可执行 IPv6 攻击,包括 SLAAC 攻击、伪造 DHCPv6,甚至 SLAAC DoS,即在链路上通过多个 RA 通告伪造路由。
THC-IPv6
一个用 C 编写的 IPv6 攻击工具包,在许多其他选项中,允许使用 RA 执行攻击。
防御技术
缓解 SLAAC 攻击最简单的方法就是直接禁用网络中所有主机上的 IPv6。但此解决方案仅适用于未使用 IPv6 协议栈、仅因配置错误而启用 IPv6 的网络。