当一个欺骗性的源 IP 数据包通过 NAT 发送出一个专用网络时会发生什么

信息安全 ip 纳特 欺骗
2021-08-15 14:53:20

假设作为攻击者,我想进行 Ping 或 SYN Flood 攻击。

我可以将在我的机器上生成的数据包的源 IP 更改为虚假/欺骗性公共 IP 地址,以便回复到该欺骗性 IP 以避免检测。

WiFi路由器或与此相关的任何设备..如果源IP是欺骗的公共IP,它会丢弃数据包还是将数据包转发到目的地,或者是否发生NATing并且回复返回到路由器公共IP地址?

在这种情况下,IP 欺骗如何工作?..这里网络设备的一般行为是什么

编辑:如果网络设备的行为有如此多的变化..那么僵尸网络运营商如何设法从他们的奴隶执行 DDoS ..因为主要机器人都在 NATed 家庭/商业环境中?

2个回答

当数据包从 LAN 发送到路由器时,可能会出现三种行为:

  1. 路由器应用反向路由过滤并丢弃数据包。
  2. 路由器不过滤。相反,路由器将其视为来自 LAN 的任何其他数据包,这意味着源 IP 将替换为路由器的 IP,并且路由器会创建一个连接跟踪条目。
  3. 路由器不应用过滤或 NAT。相反,路由器转发带有欺骗源地址的数据包。

在第一种情况下,没有更多的事情发生。在第三种情况下,数据包可能被 ISP 丢弃或转发。在其中一种情况下,欺骗数据包会一直到达目标。但是没有回复会返回到这个路由器,因为它会发送到被欺骗的 IP。

最有趣的情况是对数据包应用 NAT 的情况。ISP 将不再能够基于源 IP 丢弃数据包,因为在这种情况下,就 ISP 而言,源 IP 实际上是有效的。但这并不是很有害,因为一旦数据包到达目的地,就可以根据源 IP 轻松过滤数据包(假设洪水大到足以在目的地引起注意)。它也不容易在反射攻击中被滥用,因为回复会返回到 NAT 路由器。

回到 NAT 路由器的任何回复会发生什么更有趣。它们将匹配连接跟踪条目。但是在应用了 NAT 之后,目的地址就不会在 LAN 内部,而是在外部。此时有几个可能的结果:

  • 路由器可能会拒绝转发数据包,因为它会在它来自的接口上被发回。
  • 一旦路由器根据连接跟踪条目应用了 NAT,它就可以将数据包转发回外部网络。
  • 路由器可能会再次尝试对数据包执行 NAT,因为它将离开外部接口。

丢弃数据包的第一种情况并不是特别有趣或有害。

将数据包转发回外部网络的第二种情况更有趣。在这种情况下,NAT 首先阻止了任何欺骗的发生,但这样做的副作用是在处理回复时,它实际上会生成一个带有欺骗源 IP 的数据包(实际上是原始 IP 的源 IP 和目标 IP数据包已反转)。

如果 ISP 由于源 IP 无效而没有过滤数据包,则返回的流量将被转发到首先被欺骗的 IP。如果根本没有发生 NAT,到达时看起来与它几乎相同。

但由于这涉及到攻击网络的外部连接的三次行程,因此攻击流量的速率与其可能的速率相比是有限的。

如果路由器再次尝试 NAT,事情会变得有点有趣。这里的问题是它不是流的第一个数据包,因此 NAT 层可能不知道如何处理它。因此,由于在未看到流的第一个数据包的情况下应用了 NAT,数据包可能会被丢弃。

也可能创建连接跟踪条目。由于新创建的连接跟踪条目显然没有应用于流的第一个数据包,因此这根本无法用于 TCP 连接。但即使在这种情况下,其他协议也可能工作。然而,由于这个特定的数据包是由于欺骗造成的,因此对它进行 NAT 不会带来任何好处。

如果我们假设这是一个 TCP SYN-ACK 数据包,并且路由器再次对其进行 NAT,尽管根本没有任何意义,那么 SYN-ACK 将由 ISP 转发。SYN-ACK 将触发 RST 响应(假设目的地正常),然后 RST 将通过两个连接跟踪条目返回并转发到 SYN-ACK 来自的主机并清理连接。

如您所见,此流程中有很多如果。并且可能有一些我没有考虑过的可能结果。

这取决于您的路由器设置。

  • 如果您的路由器有过滤功能,它将丢弃数据包,因为它的源地址不是来自路由器已知的任何网络。我通常配置我的网关/防火墙/路由器来做到这一点。

  • 如果您的路由器没有任何过滤(最常见的情况),它会将数据包上的源地址更改为自己的地址,并在内部表中放入一个条目以“记住”数据包属于哪个连接。一旦得到响应,路由器就会查看该内部表以查看将数据包发送到何处。由于地址不是来自任何内部网络,路由器会将数据包发送到默认网关。

编辑:DDoS 僵尸网络通常不依赖这种方法。它们通常由数十(或数十)万台受感染的计算机组成,等待命令攻击某个站点。当命令到达时,所有受感染的计算机立即连接到同一个站点。如果一个 botmaster 在其网络上有 100.000 个 bot,每个具有平均 4mbps 的下行链路,理论上它可以产生 400Gbps 的流量。

还有另一种 DDoS 方法,称为放大它的工作原理是伪造源并向服务发送数据包,该服务返回的数据比发送的数据多。DNS 和 NTP 是最常见的滥用协议。DNS 放大使用大约 60 个传出字节,通常会导致超过 4k 字节返回。它的比例为 70:1。

在这种情况下,一个非常小的僵尸网络(10000 个平均 4Mbps 连接的僵尸网络)可以产生足够的流量来击倒大量站点。