hacker之眼Nmap的原理及用法(三)绕过防火墙扫描的简单方法TCP ACK Ping

TCP ACK Ping与TCP SYN Ping很是类似,你可能会猜到的区别是,设置了TCP ACK标志位而不是SYN标志位。这种ACK数据包宣称是经过已创建的TCP链接确认数据,但不存在这样的链接。所以,远程主机应始终使用RST数据包进行响应,并在此过程当中暴露它们的存在。
选项-PA使用与SYN探针相同的默认端口(80端口),而且还能够采用相同格式的目标端口列表。若是非特权用户尝试此操做,或者指定了IPv6目标,则使用咱们前面讨论的connect解决方法。 此解决方法是不完善的,由于connect实际上正在发送SYN数据包而不是ACK。
同时使用SYN和ACK Ping探针的缘由是为了提升绕过防火墙的机会。许多管理员都会配置路由器和简单的防火墙策略来阻止传入的SYN数据包,除了那些发往公共服务(如公司网站或邮件服务器)的数据包。这样能够防止公司内部的服务器与外部创建非受权的链接, 同时容许正经常使用户与服务器创建正常链接建。这种无状态的方法在防火墙/路由器上占用的资源不多,而且受到硬件和软件过滤器的普遍支持。 做为此方法广泛存在的一个例子,Linux Netfilter/iptables防火墙软件提供了--syn便捷选项。
当遇到诸如此类的防火墙规则配置到位时,SYN Ping探针(-PS)在发送到关闭的目标端口时可能会被阻止。在这种状况下,ACK探针经过彻底遵循这些规则而表现出色。
另外一种常见类型的防火墙使用丢弃意外数据包的有状态规则。 此功能最初主要在高端防火墙上发现,尽管多年来它已经变得愈来愈广泛。 Linux Netfilter/iplables系统经过—state选项支持此功能,该选项能够根据链接状态对数据包进行分类。

小知识-状态检测防火墙中的“状态”
INVALID:意味着数据包与已知链接无关;
ESTABLISHED:意味着数据包与一个链接有关联,该链接在防火墙两端都有数据包;
NEW:意味着数据包开始创建一个新链接,或者与之相关的链接并非在防火墙两端都有数据包;
RELATED:意味着数据包开始创建一个新链接,可是它与已存在的链接相关,例如:FTP数据传输或是ICMP报错。
小知识完
ACK探针不太可能对采用这种方法的防火墙起做用,由于这样的意外数据包将被归类为INVALID状态并可能被丢弃。下面的例子显示了针对Microsoft尝试ACK Ping。他们的状态检测防火墙丢弃了数据包,致使Nmap错误地判定主机已关闭。SYN探针在这种状况下有更好的工做机会。这提出了一个问题,就是当目标网络的防火墙规则未知时该用哪一种扫描技术? 正确的答案一般是都用, Nmap能够并行地向许多端口发送SYN和ACK探针,以及同时执行其余主机发现技术。
例3: 用ACK探针扫描Microsoft
#nmap -sn -PA www.miscrosoft.com
hacker之眼Nmap的原理及用法(三)绕过防火墙扫描的简单方法TCP ACK Ping服务器

相关文章
相关标签/搜索