hacktricks/generic-methodologies-and-resources/pentesting-network/ids-evasion.md
2023-08-03 19:12:22 +00:00

5.1 KiB
Raw Blame History

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥

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类似但它更喜欢具有相同偏移量的最后一个数据包。
  • FirstWindows第一个到达的值值保持不变。
  • LastCisco最后一个到达的值值保持不变。

工具

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥