据我了解,为了成功实施 MiTM 攻击,您需要“坐在”交通路径上的某个地方。我认为这意味着连接到端点之间的节点之一,物理拼接连接它们的电线,或拦截空气波。
- 我的假设正确吗?
- 对手的终端是否需要直接连接到 wifi 范围内的电线、节点,或者堪萨斯州的某个人可以使用外部路径访问从洛杉矶到旧金山的路径?
- 也许询问某人是否需要靠近目标路径更正确。反过来说,他能不能“利用互联网”来确定路径:互联网上的每个节点不是本质上相互连接的吗?
据我了解,为了成功实施 MiTM 攻击,您需要“坐在”交通路径上的某个地方。我认为这意味着连接到端点之间的节点之一,物理拼接连接它们的电线,或拦截空气波。
有很多很多方法可以成为 MITM,几乎在网络堆栈的所有层 - 不仅仅是物理层。身体靠近你的目标会有所帮助,但绝不是必要的。
在物理层,您可以得到的攻击非常明显:拼接以太网电缆、使用光分路器或捕获无线电信号。
无源光网络,水龙头 - Roens 摄
一些主动攻击可以将物理访问作为先决条件 - 许多其他攻击没有。
在数据链路层,被动攻击非常容易:只需将您的网卡置于混杂模式,您就可以看到您网段上的所有流量。即使在现代(交换)有线网络上,MAC 泛洪也将确保您可以看到比您应该看到的更多信息。
对于对本地网络的主动攻击,ARP 欺骗非常流行且易于执行——它基本上让你的计算机假装它是其他人——通常是一个网关,这样你就可以欺骗其他设备向你发送流量。
只要您连接到与目标相同的本地网络,数据链接攻击就会起作用。
如果您有物理访问权限,则攻击网络层很容易——您可以使用任何现代 linux 机器模拟路由器。
如果您没有物理访问权限,ICMP 重定向攻击有点晦涩难懂,但有时还是有用的。
当然,如果你的口袋里有足够的钱,你可以做 NSA 风格的操作,并在路由器通过(蜗牛)邮件运送到目的地时拦截路由器- 只需稍微调整固件就可以了。
网络层的攻击可以从两个参与者之间的(互联网)网络路由中的任何点执行——尽管实际上这些网络通常得到很好的防御。
我个人不知道传输层有任何攻击。
在应用层,攻击可能更微妙一些。
DNS是一个常见的目标 - 您有DNS 劫持和DNS 欺骗。特别是针对BIND的缓存中毒攻击在几年前非常流行。
DHCP 欺骗(伪装成DHCP服务器)很容易执行。最终结果是类似的 ARP 欺骗,但网络上的“嘈杂”更少,并且可能更可靠。
可以从 Internet 的任何位置执行最广泛的应用层攻击。
TL;DR:让流量通过您控制的系统路由,无论您、受害者或目的地在哪里,都可以使用 MITM。
答:不完全是。
首先,互联网是数据包交换的,因此所有数据包都可能没有一条实际的线路通过。
要建立一个 MITM,该 MITM 必须确保来自用户的请求被路由到他而不是正确的目的地。有几种方法可以做到这一点,例如:
建立之后,MITM 代表受害者与实际目的地进行交互,根据 MITM 的喜好修改其间的数据。
建立这一点的最简单方法实际上是在本地网络内,因为这些通常不太受到监控和/或管理。此外,他们经常拥有更多具有更多安全风险的消费设备,这些设备在受到攻击后可用于将 DNS 请求重定向到受 MITM 控制的服务器。
然而,正如您从上面看到的:如果您设法将受害者的 DNS 服务器设置为您可以控制的服务器,那么您可以从任何您喜欢的地方进行 MITM。
路由节点/ISP 也是如此:您可以使用 BGP 将廉价路由通告到目的地,以使所有流量都通过您的系统路由。然而,这对于消费者连接通常是不可行和/或不可能的。
攻击者不一定需要位于他们正在入侵的网络路由上。他们之前可能已经破坏了路由上的网络设备,因此能够登录到该设备并从任何位置进行攻击。
假设您有一个女朋友,并且您将她的号码作为 GF 保存在您的手机中。同样地,你的女朋友把你的号码作为BF保存在她的手机里。
现在攻击者 X 设法访问您的手机,并将您的 GF 号码更改为他的号码。同样,他设法访问了她的电话并将您的号码更改为他的号码。
所以你手机中保存为GF的号码和她手机中保存为BF的号码就是X的电话号码。
如果您向您的 GF 发送消息,X 会收到,他会阅读并转发给您的 GF。由于 X 的号码在她的手机中保存为 BF,因此她收到一条消息为From: BF,这实际上是攻击者。她阅读并回复,他重复同样的内容。
现在 X 是中间人