通过合适的选项让NMAP扫描目标时规避防火墙与入侵检测系统的检测
虽然NMAP扫描目标时,可以用-sS选项实现半开放TCP扫描,或者使用NULL、FIN 和 Xmas 扫描方式来绕过一些防火墙的技术,但是,还有另一种非常常见的防火墙配置,必须知道如何绕过它,也就是Windows 主机自带的防火墙。
典型的 Windows 主机将使用其默认防火墙阻止所有 ICMP 数据包,这就给NMAP带来了一个问题:因为NMAP默认情况下扫描目标时会首先通过ping去识别目标是否在线,而Windows自带防火墙又会阻止此类ICMP数据包,这就意味着 Nmap 会将该主机识别为非在线的状态,从而根本不会继续扫描它。
此时Nmap 为此提供了一个选项:-Pn,它告诉 Nmap 在扫描主机之前不要用ping打扰它。这意味着 Nmap 将始终将目标主机视为活动的;然而,它的代价是可能需要很长时间才能完成扫描(如果主机真的死了,那么 Nmap 仍然会检查并仔细检查每个指定的端口)。
当然NMAP还有其他的选项来帮助规避防火墙以及入侵检测系统:
- -f: 用于对数据包进行分片(即将它们分成更小的分片),从而降低防火墙或 IDS 检测到数据包的可能性。
- - -mtu <number>: -f 的替代方法,提供对数据包大小的更多控制,定义用于发送数据包的最大传输单元大小(必须是 8 的倍数)
- - -scan-delay <time>ms: 用于在发送的数据包之间添加延迟,可以用于规避任何可能存在的基于时间的防火墙/IDS 触发器。
- - -badsum: 这用于为数据包生成无效校验和。任何真正的 TCP/IP 堆栈都会丢弃此数据包,但是,防火墙可能会自动响应,而无需检查数据包的校验和。因此,此开关可用于确定防火墙/IDS 的存在。
STRIVE FOR PROGRESS,NOT FOR PERFECTION