IDS and IPS Evasion

支持 HackTricks

TTL 操纵

发送一些 TTL 足以到达 IDS/IPS 的数据包,但不足以到达最终系统。然后,发送另一些具有与其他数据包相同序列的数据包,这样 IPS/IDS 将认为它们是重复的并不会检查它们,但实际上它们携带了恶意内容。

Nmap 选项: --ttlvalue <value>

避免签名

只需向数据包添加垃圾数据,以避免 IPS/IDS 签名。

Nmap 选项: --data-length 25

分段数据包

只需分段数据包并发送它们。如果 IDS/IPS 无法重新组装它们,它们将到达最终主机。

Nmap 选项: -f

无效 校验和

传感器通常不会计算校验和以提高性能。因此,攻击者可以发送一个数据包,该数据包将被传感器解释但被最终主机拒绝。例如:

发送一个带有 RST 标志和无效校验和的数据包,因此,IPS/IDS 可能会认为此数据包将关闭连接,但最终主机将丢弃该数据包,因为校验和无效。

不常见的 IP 和 TCP 选项

传感器可能会忽略在 IP 和 TCP 标头中设置的某些标志和选项的数据包,而目标主机在接收后接受该数据包。

重叠

当您分段数据包时,可能存在某种重叠(也许数据包 2 的前 8 个字节与数据包 1 的最后 8 个字节重叠,数据包 2 的最后 8 个字节与数据包 3 的前 8 个字节重叠)。然后,如果 IDS/IPS 以与最终主机不同的方式重新组装它们,将解释为不同的数据包。 或者,也许,两个具有相同偏移量的数据包到达,主机必须决定采用哪一个。

  • BSD: 偏好具有较小 偏移量 的数据包。对于具有相同偏移量的数据包,它将选择第一个数据包。

  • Linux: 类似于 BSD,但它更喜欢具有相同偏移量的最后一个数据包。

  • First (Windows): 来的第一个值,就是留下的值。

  • Last (cisco): 来的最后一个值,就是留下的值。

工具

支持 HackTricks

Last updated