本节书摘来自异步社区《Nmap渗透测试指南》一书中的第6章6.4节IP欺骗,作者 商广明,更多章节内容可以访问云栖社区“异步社区”公众号查看。
6.4 IP欺骗
表6.4所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——IP欺骗。
![5823d4ea6e5b55c6f8aae85126988097148a3afb](https://i-blog.csdnimg.cn/blog_migrate/a4b186bbeba24217f38df9a8c483a513.png)
使用-D选项就可以达到使用诱饵进行IP欺骗的作用,在使用该选项对目标进行扫描的时候,会让目标主机误认为是在利用诱饵进行扫描,而不是一个真实的扫描,这样可以躲避防火墙和某些规则的限制,也可以达到隐藏自身的目的,这在实际的扫描中是非常有用的一个选项。
可以使用英文的逗号对每个诱饵主机进行分割,当然也要领会目标主机管理员的想法,他可能会认为该扫描使用的是诱饵主机进行扫描的,而不是真实的扫描地址,因此会忽略这次扫描,反而可以使用自己的真实IP去进行扫描,会达到欺骗目标主机管理员的目的,这样做时最好与诱饵主机交叉使用。
IP欺骗的语法如下:
Nmap -D 【decoy1,decoy2…|RND:number】【目标】
使用-D选项可以指定多个IP地址,或者使用RND随机生成几个地址,在指定的诱饵之间使用逗号进行分割,需要注意的是在进行版本检测或者TCP扫描的时候诱饵是无效的。
root@Wing:~# nmap -D RND:11 192.168.126.131
Starting Nmap 6.40 ( http://nmap.org ) at 2014-06-12 14:26 CST
Nmap scan report for 192.168.121.1
Host is up (0.00040s latency).
Not shown: 977 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
53/tcp open domain
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
512/tcp open exec
513/tcp open login
514/tcp open shell
1099/tcp open rmiregistry
1524/tcp open ingreslock
2049/tcp open nfs
2121/tcp open ccproxy-ftp
3306/tcp open mysql
5432/tcp open postgresql
5900/tcp open vnc
6000/tcp open X11
6667/tcp open irc
8009/tcp open ajp13
8180/tcp open unknown
MAC Address: 00:0C:29:E0:2E:76 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.42 seconds
root@Wing:~#
我们通过抓包的方法,看一下Nmap规避防火墙的效果。
如图6.1所示,可以看到有11个随机的、不同的IP地址向目标主机发送了SYN包,其中,192.168.239.128是真实的IP地址。
![4c4ebc969f888c14b156e2f8e9e5f547c2e4f187](https://i-blog.csdnimg.cn/blog_migrate/b843d812a07ca0ea9482365aeef4a54c.png)
这种随机的方法或许容易被发现,接下来将指定几个IP地址对目标实施扫描来达到更好的效果。
root@Wing:~# nmap -D 192.168.0.1,192.168.0.2,192.168.0.254 192.168.121.1
Starting Nmap 6.40 ( http://nmap.org ) at 2015-06-12 14:36 CST
Nmap scan report for 192.168.126.131
Host is up (0.00040s latency).
Not shown: 977 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
53/tcp open domain
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
512/tcp open exec
513/tcp open login
514/tcp open shell
1099/tcp open rmiregistry
1524/tcp open ingreslock
2049/tcp open nfs
2121/tcp open ccproxy-ftp
3306/tcp open mysql
5432/tcp open postgresql
5900/tcp open vnc
6000/tcp open X11
6667/tcp open irc
8009/tcp open ajp13
8180/tcp open unknown
MAC Address: 00:0C:29:E0:2E:76 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.42 seconds
root@Wing:~#
如图6.2所示,通过抓包的方法看到Nmap正在使用我们指定的IP进行对目标主机的扫描。您也可以使用ME选项指定自己的真实IP。
![5360db65059fc75db4607457bd6ae7898f79e25b](https://i-blog.csdnimg.cn/blog_migrate/b95fe1a86e587e988e89ef2df08b9746.png)
root@Wing:~# nmap -D 192.168.0.1,192.168.0.2,192.168.0.254,ME 192.168.121.1
Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-28 15:31 CST
RTTVAR has grown to over 2.3 seconds, decreasing to 2.0
RTTVAR has grown to over 2.3 seconds, decreasing to 2.0
Nmap scan report for 192.168.121.1
Host is up (1.0s latency).
Not shown: 987 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
514/tcp filtered shell
843/tcp open unknown
902/tcp open iss-realsecure
912/tcp open apex-mesh
7000/tcp open afs3-fileserver
8000/tcp open http-alt
49152/tcp open unknown
49153/tcp open unknown
49155/tcp open unknown
49165/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 158.90 seconds
root@Wing:~#
需要注意的是,诱饵主机必须处于工作状态,否则会导致目标主机的SYN洪水攻击。