1.4 扫描范围的确定
刘开快速检查了笔记本电脑中的软件,幸运的是,居然找到了Nmap,接下来正戏就要上演了。刘开现在并不知道计算机X的IP地址,因此当前最首要的任务就是找到这台计算机。首先刘开检查这台计算机的网络情况,发现这台计算机无法连接到互联网。这意味着X很有可能就与刘开现在所使用的笔记本电脑在同一个网络中,否则这个难题就真的无解了。
刘开快速查看了本机的IP信息,发现IP地址是192.168.0.2,掩码是255.255.255.0,那么X的地址应该就在192.168.0.1到192.168.0.255之间。现在最简单的做法就是先将这个范围内所有处于开机并联网状态的主机都找出来。
接下来我们来看如何确定扫描的范围。
1.4.1 对连续范围内的主机进行扫描
1.3节已经介绍了如何对一个目标的可能IP地址进行确定,下面对指定范围内的多个目标进行扫描。
命令语法:Nmap [IP地址的范围]
例如,在1.3节的情形中,刘开就可以输入如下命令来选择扫描范围为192.168.0.1~192.168.0.255的主机。
Nmap -sn 192.168.0.1-255
下面给出的是扫描的结果。
Starting Nmap 7.12 ( https://Nmap.org ) at 2016-09-14 13:03 Nmap scan report for 192.168.0.1 Host is up (0.041s latency). MAC Address: D8:FE:E3:B3:87:A9 (D-Link International) Nmap scan report for 192.168.0.3 Host is up (0.090s latency). MAC Address: CC:D2:9B:2B:11:78 (Shenzhen Bopengfa Elec&Technology) Nmap scan report for 192.168.0.2 Host is up. Nmap done: 255 IP addresses (3 hosts up) scanned in 6.40 seconds
在这里可以看到通过这次扫描,在这个子网中共有3台设备。另外,为了节约扫描时间,使用了-sn参数,-sn具体的含义将在第2章介绍。
1.4.2 对整个子网进行扫描
Nmap支持使用CIDR(Classless Inter-Domain Routing,无类别域间路由)的方式来扫描整个子网。
命令语法:Nmap [IP地址/掩码位数]
还是以1.3节的情形为例,如果要扫描192.168.0.1~192.168.0.255这个子网范围的主机,还可以使用如下命令。
Nmap -sn 192.168.0.1/24
下面给出的是扫描的结果。
Starting Nmap 7.12 ( https://Nmap.org ) at 2016-09-14 13:19 Nmap scan report for 192.168.0.1 Host is up (0.0040s latency). MAC Address: D8:FE:E3:B3:87:A9 (D-Link International) Nmap scan report for 192.168.0.3 Host is up (0.065s latency). MAC Address: CC:D2:9B:2B:11:78 (Shenzhen Bopengfa Elec&Technology) Nmap scan report for 192.168.0.2 Host is up. Nmap done: 256 IP addresses (3 hosts up) scanned in 5.57 seconds
1.4.3 对多个不连续的主机进行扫描
Nmap可以一次扫描多个主机,如果这些扫描的目标地址没有任何的关系,那么可以通过将目标地址用空格分隔开的方式来同时对这些主机进行扫描。
命令语法:Nmap [扫描目标1 扫描目标2 … 扫描目标n]
如果对192.168.0.1、192.168.0.2、192.168.0.3、192.168.0.4进行扫描,可以使用如下命令。
Nmap -sn 192.168.0.1192.168.0.2192.168.0.3192.168.0.4
扫描的结果如下。
Starting Nmap 7.12 ( https://Nmap.org ) at 2016-09-14 13:33 Nmap scan report for 192.168.0.1 Host is up (0.0040s latency). MAC Address: D8:FE:E3:B3:87:A9 (D-Link International) Nmap scan report for 192.168.0.3 Host is up (0.055s latency). MAC Address: CC:D2:9B:2B:11:78 (Shenzhen Bopengfa Elec&Technology) Nmap scan report for 192.168.0.2 Host is up. Nmap done: 3 IP addresses (3 hosts up) scanned in 1.99 seconds
1.4.4 在扫描的时候排除指定的目标
在对一些主机进行扫描时,如果需要排除某些指定主机,可以使用exclude选项。
命令语法:Nmap [目标] --exclude [目标]
例如,如果我们希望在扫描192.168.0.0/24子网的时候,并不对192.168.0.2进行扫描,就可以使用如下命令。
Nmap -sn 192.168.0.0/24--exclude 192.168.0.2
扫描的结果如下。
Starting Nmap 7.12 ( https://Nmap.org ) at 2016-09-14 13:51 Nmap scan report for 192.168.0.1 Host is up (0.0040s latency). MAC Address: D8:FE:E3:B3:87:A9 (D-Link International) Nmap scan report for 192.168.0.3 Host is up (0.057s latency). MAC Address: CC:D2:9B:2B:11:78 (Shenzhen Bopengfa Elec&Technology) Nmap scan report for 192.168.0.5 Host is up (0.077s latency). MAC Address: D8:55:A3:D9:DC:1D (zte) Nmap done: 255 IP addresses (3 hosts up) scanned in 45.35 seconds
1.4.5 对一个文本文件中的地址列表进行扫描
如果需要经常性地对某些地址进行扫描,那么每次都在命令中输入这些地址是相当麻烦的,可以将常用的地址保存在一个记事本文件中,例如List.txt,如图1-7所示。
图1-7 使用记事本list.txt保存目标地址
以后,每次想对这些地址进行扫描,无须重新输入,只需要将这个文本文件设定为目标即可。
命令语法:Nmap -iL [文本文件]
可以使用命令对List.txt中的这些地址进行扫描。
Nmap -sn -iL List.txt
扫描的结果如下。
Starting Nmap 7.12 ( https://Nmap.org ) at 2016-09-14 14:20 Nmap scan report for 192.168.0.1 Host is up (0.0040s latency). MAC Address: D8:FE:E3:B3:87:A9 (D-Link International) Nmap scan report for 192.168.0.3Host is up (0.057s latency). MAC Address: CC:D2:9B:2B:11:78 (Shenzhen Bopengfa Elec&Technology) Nmap done: 7 IP addresses (2 hosts up) scanned in 3.35 seconds
1.4.6 随机确定扫描目标
Nmap中还提供了一个非常有意思的功能,那就是随机产生一些目标,然后Nmap会对这些目标进行扫描。
命令语法:Nmap -iR [目标的数量]
下面随机地在互联网上对3个IP地址进行扫描,使用的命令如下。
Nmap -sn -iR 3
扫描的结果如下。
Starting Nmap 7.12 ( https://Nmap.org ) at 2016-09-14 14:35 Nmap scan report for softbank219036207070.bbtec.net (219.36.207.70) Host is up (0.12s latency). Nmap done: 3 IP addresses (1 host up) scanned in 4.40 seconds