前两篇文章已介绍了Nmap命令的1些基本选项和若干类型的扫描,下面继续来介绍Nmap的1个扫描类型――空闲扫描。
为了下降被检测到的机率,我们通常需要转嫁责任,这时候可使用空闲扫描(idle scan),让1个僵尸主机承当扫描任务。
nmap.org官网上详细讲述了空闲扫描的原理,可以在http://nmap.org/book/idlescan.html了解空闲扫描的所有信息。
使用空闲扫描(-sI)需要注意1个问题,就是要找1台TCP序列预测成功率高的僵尸主机,这个僵尸主机必须尽量的空闲,比如说网络打印机就是1个很好地选择,由于网络打印机不但存在着恒定的网络资源,而且很难预测它们的TCP序列。
空闲扫描的原理:
空闲扫描的第1步就是寻觅僵尸主机,我们可以通过下面这条命令(-v 详细信息,-O 系统检测,-Pn 无ping,-n 无域名解析)来取得主机的TCP序列预测率。
# nmap -v -O -Pn -n 192.168.50.16
从结果上看,这个主机不是太理想,网络距离只有1跳(自己搭建的环境,实验用足够了),但作为1个僵尸主机还是可以的。预测难度越高,1台主机用作僵尸主机的可能性就越小。我们还可以连续生成ID来增加扫描成功的几率。
使用以下命令扫描,并启动wireshark抓包。
# nmap -p 22,23,53,80,443,8888,3960 -Pn -sI 10.128.***.**(僵尸主机IP) 222.**.**.**(目标主机IP)
使用-p启动已知TCP端口的扫描,节省时间;通过-Pn强调不适用ping(默许是使用的),-sI启动空闲扫描,后面顺次是僵尸主机和目标主机的ip地址。
查看wireshark抓包情况,可以看到从僵尸主机到目标主机之间有1些异常的网络流量。
从结果上看,Nmap命令在僵尸主机和目标主机网络上产生了很多流量,我们需要这些流量来增加IPID的值,从而获知目标主机端口是不是开放。