图片 1

Nmap扫描教程之基础扫描详解

我们将要与您分享的这条技巧关于网络映射器Nmap),它是一种开源网络浏览器,它在网络故障诊断、浏览和审计方面都非常理想。这项工具可用来识别网络中的设备,也可以识别在特定设备上运行的服务。另外,先进的信息,如正在使用的操作系统、特定服务名字和版本)和网络滤波器和防火墙也都能识别出来。

Nmap扫描教程之基础扫描详解

Nmap命令的29个实用范例

原文:

Nmap即网络映射器对Linux系统/网络管理员来说是一个开源且非常通用的工具。Nmap用于在远程机器上探测网络,执行安全扫描,网络审计和搜寻开放端口。它会扫描远程在线主机,该主机的操作系统,包过滤器和开放的端口。

图片 1

我将用两个不同的部分来涵盖大部分NMAP的使用方法,这是nmap关键的第一部分。在下面的设置中,我使用两台已关闭防火墙的服务器来测试Nmap命令的工作情况。

  1. 192.168.0.100 – server1.tecmint.com 
  2. 192.168.0.101 – server2.tecmint.com 

NMAP命令用法

  1. # nmap [Scan Type(s)] [Options] {target specification} 

如何在Linux下安装NMAP

现在大部分Linux的发行版本像Red
Hat,CentOS,Fedoro,Debian和Ubuntu在其默认的软件包管理库(即Yum 和 APT)中都自带了Nmap,这两种工具都用于安装和管理软件包和更新。在发行版上安装Nmap具体使用如下命令。

  1. # yum install nmap      [on Red Hat based systems] 
  2. $ sudo apt-get install nmap [on Debian based systems] 

一旦你安装了最新的nmap应用程序,你就可以按照本文中提供的示例说明来操作。

1. 用主机名和IP地址扫描系统

Nmap工具提供各种方法来扫描系统。在这个例子中,我使用server2.tecmint.com主机名来扫描系统找出该系统上所有开放的端口,服务和MAC地址。

使用主机名扫描

  1. [root@server1 ~]# nmap server2.tecmint.com  
  2. Starting Nmap 4.11 (  ) at 2013-11-11 15:42 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. Not shown: 1674 closed ports 
  5. PORT     STATE SERVICE 
  6. 22/tcp   open  ssh 
  7. 80/tcp   open  http 
  8. 111/tcp  open  rpcbind 
  9. 957/tcp  open  unknown 
  10. 3306/tcp open  mysql 
  11. 8888/tcp open  sun-answerbook 
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  13. Nmap finished: 1 IP address (1 host up) scanned in 0.415 seconds 
  14. You have new mail in /var/spool/mail/root 

使用IP地址扫描

  1. [root@server1 ~]# nmap 192.168.0.101 
  2. Starting Nmap 4.11 (  ) at 2013-11-18 11:04 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. Not shown: 1674 closed ports 
  5. PORT     STATE SERVICE 
  6. 22/tcp   open  ssh 
  7. 80/tcp   open  http 
  8. 111/tcp  open  rpcbind 
  9. 958/tcp  open  unknown 
  10. 3306/tcp open  mysql 
  11. 8888/tcp open  sun-answerbook 
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  13. Nmap finished: 1 IP address (1 host up) scanned in 0.465 seconds 
  14. You have new mail in /var/spool/mail/root 

2.扫描使用“-v”选项

你可以看到下面的命令使用“ -v “选项后给出了远程机器更详细的信息。

  1. [root@server1 ~]# nmap -v server2.tecmint.com 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 15:43 EST 
  3. Initiating ARP Ping Scan against 192.168.0.101 [1 port] at 15:43 
  4. The ARP Ping Scan took 0.01s to scan 1 total hosts. 
  5. Initiating SYN Stealth Scan against server2.tecmint.com (192.168.0.101) [1680 ports] at 15:43 
  6. Discovered open port 22/tcp on 192.168.0.101 
  7. Discovered open port 80/tcp on 192.168.0.101 
  8. Discovered open port 8888/tcp on 192.168.0.101 
  9. Discovered open port 111/tcp on 192.168.0.101 
  10. Discovered open port 3306/tcp on 192.168.0.101 
  11. Discovered open port 957/tcp on 192.168.0.101 
  12. The SYN Stealth Scan took 0.30s to scan 1680 total ports. 
  13. Host server2.tecmint.com (192.168.0.101) appears to be up … good. 
  14. Interesting ports on server2.tecmint.com (192.168.0.101): 
  15. Not shown: 1674 closed ports 
  16. PORT     STATE SERVICE 
  17. 22/tcp   open  ssh 
  18. 80/tcp   open  http 
  19. 111/tcp  open  rpcbind 
  20. 957/tcp  open  unknown 
  21. 3306/tcp open  mysql 
  22. 8888/tcp open  sun-answerbook 
  23. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  24. Nmap finished: 1 IP address (1 host up) scanned in 0.485 seconds 
  25. Raw packets sent: 1681 (73.962KB) | Rcvd: 1681 (77.322KB) 

3.扫描多台主机

你可以简单的在Nmap命令后加上多个IP地址或主机名来扫描多台主机。

  1. [root@server1 ~]# nmap 192.168.0.101 192.168.0.102 192.168.0.103  
  2. Starting Nmap 4.11 (  ) at 2013-11-11 16:06 EST  
  3. Interesting ports on server2.tecmint.com (192.168.0.101):  
  4. Not shown: 1674 closed ports  
  5. PORT     STATE SERVICE  
  6. 22/tcp   open  ssh  
  7. 80/tcp   open  http  
  8. 111/tcp  open  rpcbind  
  9. 957/tcp  open  unknown  
  10. 3306/tcp open  mysql  
  11. 8888/tcp open  sun-answerbook  
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)  
  13. Nmap finished: 3 IP addresses (1 host up) scanned in 0.580 seconds  

4.扫描整个子网

你可以使用*通配符来扫描整个子网或某个范围的IP地址。

  1. [root@server1 ~]# nmap 192.168.0.* 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 16:11 EST 
  3. Interesting ports on server1.tecmint.com (192.168.0.100): 
  4. Not shown: 1677 closed ports 
  5. PORT    STATE SERVICE 
  6. 22/tcp  open  ssh 
  7. 111/tcp open  rpcbind 
  8. 851/tcp open  unknown 
  9. Interesting ports on server2.tecmint.com (192.168.0.101): 
  10. Not shown: 1674 closed ports 
  11. PORT     STATE SERVICE 
  12. 22/tcp   open  ssh 
  13. 80/tcp   open  http 
  14. 111/tcp  open  rpcbind 
  15. 957/tcp  open  unknown 
  16. 3306/tcp open  mysql 
  17. 8888/tcp open  sun-answerbook 
  18. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  19. Nmap finished: 256 IP addresses (2 hosts up) scanned in 5.550 seconds 
  20. You have new mail in /var/spool/mail/root 

从上面的输出可以看到,nmap扫描了整个子网,给出了网络中当前网络中在线主机的信息。

5.使用IP地址的最后一个字节扫描多台服务器

你可以简单的指定IP地址的最后一个字节来对多个IP地址进行扫描。例如,我在下面执行中扫描了IP地址192.168.0.101,192.168.0.102和192.168.0.103。

  1. [root@server1 ~]# nmap 192.168.0.101,102,103 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 16:09 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. Not shown: 1674 closed ports 
  5. PORT     STATE SERVICE 
  6. 22/tcp   open  ssh 
  7. 80/tcp   open  http 
  8. 111/tcp  open  rpcbind 
  9. 957/tcp  open  unknown 
  10. 3306/tcp open  mysql 
  11. 8888/tcp open  sun-answerbook 
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  13. Nmap finished: 3 IP addresses (1 host up) scanned in 0.552 seconds 
  14. You have new mail in /var/spool/mail/root 

6. 从一个文件中扫描主机列表

如果你有多台主机需要扫描且所有主机信息都写在一个文件中,那么你可以直接让nmap读取该文件来执行扫描,让我们来看看如何做到这一点。

创建一个名为“nmaptest.txt ”的文本文件,并定义所有你想要扫描的服务器IP地址或主机名。

  1. [root@server1 ~]# cat > nmaptest.txt 
  2. localhost 
  3. server2.tecmint.com 
  4. 192.168.0.101 

接下来运行带“iL” 选项的nmap命令来扫描文件中列出的所有IP地址。

  1. [root@server1 ~]# nmap -iL nmaptest.txt 
  2. Starting Nmap 4.11 (  ) at 2013-11-18 10:58 EST 
  3. Interesting ports on localhost.localdomain (127.0.0.1): 
  4. Not shown: 1675 closed ports 
  5. PORT    STATE SERVICE 
  6. 22/tcp  open  ssh 
  7. 25/tcp  open  smtp 
  8. 111/tcp open  rpcbind 
  9. 631/tcp open  ipp 
  10. 857/tcp open  unknown 
  11. Interesting ports on server2.tecmint.com (192.168.0.101): 
  12. Not shown: 1674 closed ports 
  13. PORT     STATE SERVICE 
  14. 22/tcp   open  ssh 
  15. 80/tcp   open  http 
  16. 111/tcp  open  rpcbind 
  17. 958/tcp  open  unknown 
  18. 3306/tcp open  mysql 
  19. 8888/tcp open  sun-answerbook 
  20. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)  
  21. Interesting ports on server2.tecmint.com (192.168.0.101): 
  22. Not shown: 1674 closed ports 
  23. PORT     STATE SERVICE 
  24. 22/tcp   open  ssh 
  25. 80/tcp   open  http 
  26. 111/tcp  open  rpcbind 
  27. 958/tcp  open  unknown 
  28. 3306/tcp open  mysql 
  29. 8888/tcp open  sun-answerbook 
  30. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  31. Nmap finished: 3 IP addresses (3 hosts up) scanned in 2.047 seconds 

7.扫描一个IP地址范围

你可以在nmap执行扫描时指定IP范围。

  1. [root@server1 ~]# nmap 192.168.0.101-110 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 16:09 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. Not shown: 1674 closed ports 
  5. PORT     STATE SERVICE 
  6. 22/tcp   open  ssh 
  7. 80/tcp   open  http 
  8. 111/tcp  open  rpcbind 
  9. 957/tcp  open  unknown 
  10. 3306/tcp open  mysql 
  11. 8888/tcp open  sun-answerbook 
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  13. Nmap finished: 10 IP addresses (1 host up) scanned in 0.542 seconds 

8.排除一些远程主机后再扫描

在执行全网扫描或用通配符扫描时你可以使用“-exclude”选项来排除某些你不想要扫描的主机。

  1. [root@server1 ~]# nmap 192.168.0.* –exclude 192.168.0.100 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 16:16 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. Not shown: 1674 closed ports 
  5. PORT     STATE SERVICE 
  6. 22/tcp   open  ssh 
  7. 80/tcp   open  http 
  8. 111/tcp  open  rpcbind 
  9. 957/tcp  open  unknown 
  10. 3306/tcp open  mysql 
  11. 8888/tcp open  sun-answerbook 
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  13. Nmap finished: 255 IP addresses (1 host up) scanned in 5.313 seconds 
  14. You have new mail in /var/spool/mail/root 

9.扫描操作系统信息和路由跟踪

使用Nmap,你可以检测远程主机上运行的操作系统和版本。为了启用操作系统和版本检测,脚本扫描和路由跟踪功能,我们可以使用NMAP的“-A“选项。

  1. [root@server1 ~]# nmap -A 192.168.0.101 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 16:25 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. Not shown: 1674 closed ports 
  5. PORT     STATE SERVICE VERSION 
  6. 22/tcp   open  ssh     OpenSSH 4.3 (protocol 2.0) 
  7. 80/tcp   open  http    Apache httpd 2.2.3 ((CentOS)) 
  8. 111/tcp  open  rpcbind  2 (rpc #100000) 
  9. 957/tcp  open  status   1 (rpc #100024) 
  10. 3306/tcp open  mysql   MySQL (unauthorized) 
  11. 8888/tcp open  http    lighttpd 1.4.32 
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  13. No exact OS matches for host (If you know what OS is running on it, see ). 
  14. TCP/IP fingerprint: 
  15. SInfo(V=4.11%P=i686-redhat-linux-gnu%D=11/11%Tm=52814B66%O=22%C=1%M=080027) 
  16. TSeq(Class=TR%IPID=Z%TS=1000HZ) 
  17. T1(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW) 
  18. T2(Resp=N) 
  19. T3(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW) 
  20. T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=) 
  21. T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=) 
  22. T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=) 
  23. T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=) 
  24. PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) 
  25. Uptime 0.169 days (since Mon Nov 11 12:22:15 2013) 
  26. Nmap finished: 1 IP address (1 host up) scanned in 22.271 seconds 

从上面的输出你可以看到,Nmap显示出了远程主机操作系统的TCP / IP协议指纹,并且更加具体的显示出远程主机上的端口和服务。

10.启用Nmap的操作系统探测功能

使用选项“-O”和“-osscan-guess”也帮助探测操作系统信息。

  1. [root@server1 ~]# nmap -O server2.tecmint.com 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 17:40 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. Not shown: 1674 closed ports 
  5. PORT     STATE SERVICE 
  6. 22/tcp   open  ssh 
  7. 80/tcp   open  http 
  8. 111/tcp  open  rpcbind 
  9. 957/tcp  open  unknown 
  10. 3306/tcp open  mysql 
  11. 8888/tcp open  sun-answerbook 
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  13. No exact OS matches for host (If you know what OS is running on it, see ). 
  14. TCP/IP fingerprint: 
  15. SInfo(V=4.11%P=i686-redhat-linux-gnu%D=11/11%Tm=52815CF4%O=22%C=1%M=080027) 
  16. TSeq(Class=TR%IPID=Z%TS=1000HZ) 
  17. T1(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW) 
  18. T2(Resp=N) 
  19. T3(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW) 
  20. T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=Option -O and -osscan-guess also helps to discover OS 
  21. R%Ops=) 
  22. T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=) 
  23. T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=) 
  24. T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=) 
  25. PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) 
  26. Uptime 0.221 days (since Mon Nov 11 12:22:16 2013) 
  27. Nmap finished: 1 IP address (1 host up) scanned in 11.064 seconds 
  28. You have new mail in /var/spool/mail/root 

11.扫描主机侦测防火墙

下面的命令将扫描远程主机以探测该主机是否使用了包过滤器或防火墙。

  1. [root@server1 ~]# nmap -sA 192.168.0.101 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 16:27 EST 
  3. All 1680 scanned ports on server2.tecmint.com (192.168.0.101) are UNfiltered 
  4. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  5. Nmap finished: 1 IP address (1 host up) scanned in 0.382 seconds 
  6. You have new mail in /var/spool/mail/root 

12.扫描主机检测是否有防火墙保护

扫描主机检测其是否受到数据包过滤软件或防火墙的保护。

  1. [root@server1 ~]# nmap -PN 192.168.0.101 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 16:30 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. Not shown: 1674 closed ports 
  5. PORT     STATE SERVICE 
  6. 22/tcp   open  ssh 
  7. 80/tcp   open  http 
  8. 111/tcp  open  rpcbind 
  9. 957/tcp  open  unknown 
  10. 3306/tcp open  mysql 
  11. 8888/tcp open  sun-answerbook 
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  13. Nmap finished: 1 IP address (1 host up) scanned in 0.399 seconds 

13.找出网络中的在线主机

使用“-sP”选项,我们可以简单的检测网络中有哪些在线主机,该选项会跳过端口扫描和其他一些检测。

  1. [root@server1 ~]# nmap -sP 192.168.0.* 
  2. Starting Nmap 4.11 (  ) at 2013-11-18 11:01 EST 
  3. Host server1.tecmint.com (192.168.0.100) appears to be up. 
  4. Host server2.tecmint.com (192.168.0.101) appears to be up. 
  5. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  6. Nmap finished: 256 IP addresses (2 hosts up) scanned in 5.109 seconds 

14.执行快速扫描

你可以使用“-F”选项执行一次快速扫描,仅扫描列在nmap-services文件中的端口而避开所有其它的端口。

  1. [root@server1 ~]# nmap -F 192.168.0.101 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 16:47 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. Not shown: 1234 closed ports 
  5. PORT     STATE SERVICE 
  6. 22/tcp   open  ssh 
  7. 80/tcp   open  http 
  8. 111/tcp  open  rpcbind 
  9. 3306/tcp open  mysql 
  10. 8888/tcp open  sun-answerbook 
  11. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  12. Nmap finished: 1 IP address (1 host up) scanned in 0.322 seconds 

15.查看Nmap的版本

你可以使用“-V”选项来检测你机子上Nmap的版本。

  1. [root@server1 ~]# nmap -V 
  2. Nmap version 4.11 (  ) 
  3. You have new mail in /var/spool/mail/root 

16.顺序扫描端口

使用“-r”选项表示不会随机的选择端口扫描。

  1. [root@server1 ~]# nmap -r 192.168.0.101 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 16:52 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. Not shown: 1674 closed ports 
  5. PORT     STATE SERVICE 
  6. 22/tcp   open  ssh 
  7. 80/tcp   open  http 
  8. 111/tcp  open  rpcbind 
  9. 957/tcp  open  unknown 
  10. 3306/tcp open  mysql 
  11. 8888/tcp open  sun-answerbook 
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  13. Nmap finished: 1 IP address (1 host up) scanned in 0.363 seconds 

17.打印主机接口和路由

你可以使用nmap的“–iflist”选项检测主机接口和路由信息。

  1. [root@server1 ~]# nmap –iflist 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 17:07 EST 
  3. ************************INTERFACES************************ 
  4. DEV  (SHORT) IP/MASK          TYPE     UP MAC 
  5. lo   (lo)    127.0.0.1/8      loopback up 
  6. eth0 (eth0)  192.168.0.100/24 ethernet up 08:00:27:11:C7:89 
  7. **************************ROUTES************************** 
  8. DST/MASK      DEV  GATEWAY 
  9. 192.168.0.0/0 eth0 
  10. 169.254.0.0/0 eth0 

从上面的输出你可以看到,nmap列举出了你系统上的接口以及它们各自的路由信息。

18.扫描特定的端口

使用Nmap扫描远程机器的端口有各种选项,你可以使用“-P”选项指定你想要扫描的端口,默认情况下nmap只扫描TCP端口。

  1. [root@server1 ~]# nmap -p 80 server2.tecmint.com 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 17:12 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. PORT   STATE SERVICE 
  5. 80/tcp open  http 
  6. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  7. Nmap finished: 1 IP address (1 host up) sca 

19.扫描TCP端口

你可以指定具体的端口类型和端口号来让nmap扫描。

  1. [root@server1 ~]# nmap -p T:8888,80 server2.tecmint.com 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 17:15 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. PORT     STATE SERVICE 
  5. 80/tcp   open  http 
  6. 8888/tcp open  sun-answerbook 
  7. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  8. Nmap finished: 1 IP address (1 host up) scanned in 0.157 seconds 

20.扫描UDP端口

  1. [root@server1 ~]# nmap -sU 53 server2.tecmint.com 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 17:15 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. PORT     STATE SERVICE 
  5. 53/udp   open  http 
  6. 8888/udp open  sun-answerbook 
  7. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  8. Nmap finished: 1 IP address (1 host up) scanned in 0.157 seconds 

21.扫描多个端口

你还可以使用选项“-P”来扫描多个端口。

  1. [root@server1 ~]# nmap -p 80,443 192.168.0.101  
  2. Starting Nmap 4.11 (  ) at 2013-11-18 10:56 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. PORT    STATE  SERVICE 
  5. 80/tcp  open   http 
  6. 443/tcp closed https 
  7. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  8. Nmap finished: 1 IP address (1 host up) scanned in 0.190 seconds 

22.扫描指定范围内的端口

您可以使用表达式来扫描某个范围内的端口。

  1. [root@server1 ~]#  nmap -p 80-160 192.168.0.101 

23.查找主机服务版本号

我们可以使用“-sV”选项找出远程主机上运行的服务版本。

  1. [root@server1 ~]# nmap -sV 192.168.0.101 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 17:48 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. Not shown: 1674 closed ports 
  5. PORT     STATE SERVICE VERSION 
  6. 22/tcp   open  ssh     OpenSSH 4.3 (protocol 2.0) 
  7. 80/tcp   open  http    Apache httpd 2.2.3 ((CentOS)) 
  8. 111/tcp  open  rpcbind  2 (rpc #100000) 
  9. 957/tcp  open  status   1 (rpc #100024) 
  10. 3306/tcp open  mysql   MySQL (unauthorized) 
  11. 8888/tcp open  http    lighttpd 1.4.32 
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  13. Nmap finished: 1 IP address (1 host up) scanned in 12.624 seconds 

24.使用TCP ACK (PA)和TCP Syn (PS)扫描远程主机

有时候包过滤防火墙会阻断标准的ICMP ping请求,在这种情况下,我们可以使用TCP
ACK和TCP Syn方法来扫描远程主机。

  1. [root@server1 ~]# nmap -PS 192.168.0.101  
  2. Starting Nmap 4.11 (  ) at 2013-11-11 17:51 EST  
  3. Interesting ports on server2.tecmint.com (192.168.0.101):  
  4. Not shown: 1674 closed ports  
  5. PORT     STATE SERVICE  
  6. 22/tcp   open  ssh  
  7. 80/tcp   open  http  
  8. 111/tcp  open  rpcbind  
  9. 957/tcp  open  unknown  
  10. 3306/tcp open  mysql  
  11. 8888/tcp open  sun-answerbook  
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)  
  13. Nmap finished: 1 IP address (1 host up) scanned in 0.360 seconds  
  14. You have new mail in /var/spool/mail/root  

25.使用TCP ACK扫描远程主机上特定的端口

  1. [root@server1 ~]# nmap -PA -p 22,80 192.168.0.101 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 18:02 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. PORT   STATE SERVICE 
  5. 22/tcp open  ssh 
  6. 80/tcp open  http 
  7. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  8. Nmap finished: 1 IP address (1 host up) scanned in 0.166 seconds 
  9. You have new mail in /var/spool/mail/root 

26. 使用TCP Syn扫描远程主机上特定的端口

  1. [root@server1 ~]# nmap -PS -p 22,80 192.168.0.101  
  2. Starting Nmap 4.11 (  ) at 2013-11-11 18:08 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. PORT   STATE SERVICE 
  5. 22/tcp open  ssh 
  6. 80/tcp open  http 
  7. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  8. Nmap finished: 1 IP address (1 host up) scanned in 0.165 seconds 
  9. You have new mail in /var/spool/mail/root 

27.执行一次隐蔽的扫描

  1. [root@server1 ~]# nmap -sS 192.168.0.101 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 18:10 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. Not shown: 1674 closed ports 
  5. PORT     STATE SERVICE 
  6. 22/tcp   open  ssh 
  7. 80/tcp   open  http 
  8. 111/tcp  open  rpcbind 
  9. 957/tcp  open  unknown 
  10. 3306/tcp open  mysql 
  11. 8888/tcp open  sun-answerbook 
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  13. Nmap finished: 1 IP address (1 host up) scanned in 0.383 seconds 
  14. You have new mail in /var/spool/mail/root 

28.使用TCP Syn扫描最常用的端口

  1. [root@server1 ~]# nmap -sT 192.168.0.101 
  2. Starting Nmap 4.11 (  ) at 2013-11-11 18:12 EST 
  3. Interesting ports on server2.tecmint.com (192.168.0.101): 
  4. Not shown: 1674 closed ports 
  5. PORT     STATE SERVICE 
  6. 22/tcp   open  ssh 
  7. 80/tcp   open  http 
  8. 111/tcp  open  rpcbind 
  9. 957/tcp  open  unknown 
  10. 3306/tcp open  mysql 
  11. 8888/tcp open  sun-answerbook 
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
  13. Nmap finished: 1 IP address (1 host up) scanned in 0.406 seconds 
  14. You have new mail in /var/spool/mail/root 

29.执行TCP空扫描以骗过防火墙

  1. [root@server1 ~]# nmap -sN 192.168.0.101  
  2. Starting Nmap 4.11 (  ) at 2013-11-11 19:01 EST  
  3. Interesting ports on server2.tecmint.com (192.168.0.101):  
  4. Not shown: 1674 closed ports  
  5. PORT     STATE         SERVICE  
  6. 22/tcp   open|filtered ssh  
  7. 80/tcp   open|filtered http  
  8. 111/tcp  open|filtered rpcbind  
  9. 957/tcp  open|filtered unknown  
  10. 3306/tcp open|filtered mysql  
  11. 8888/tcp open|filtered sun-answerbook  
  12. MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)  
  13. Nmap finished: 1 IP address (1 host up) scanned in 1.584 seconds  
  14. You have new mail in /var/spool/mail/root  

以上就是NMAP的基本使用,我会在第二部分带来NMAP更多的创意选项。至此,敬请关注我们,不要忘记分享您的宝贵意见。

原文链接: Tecmint   翻译: 伯乐在线 – 敏敏
译文链接: 

【编辑推荐】

  1. Linux系统管理员的工作经验分享
  2. 面向Linux系统管理员:企业端口扫描实战
  3. Linux系统管理员需知:权限管理之 su 与
    sudo
  4. Linux系统管理员应该了解的一些I/O统计工具
  5. Linux系统管理员不可不知的命令:sudo
  6. 为Linux系统管理员支招:给 Linux
    系统“减肥”

用Nmap的服务识别通过现含指纹五千以上的指纹数据库实现。这个数据库通过社区允许提交已知指纹来支持。

Nmap扫描基础扫描

当用户对Nmap工具了解后,即可使用该工具实施扫描。通过上一章的介绍,用户可知Nmap工具可以分别对主机、端口、版本、操作系统等实施扫描。但是,在实施这些扫描工作之前,需要先简单了解下Nmap工具的使用,以方便后面实施扫描。所以,本章将通过使用Nmap工具实施基础的扫描,来帮助用户了解该工具。

作为盘点工具的网络映射器

Nmap扫描扫描概述

在实施基本的扫描之前,需要先了解一些Nmap网络扫描的基本知识,及需要考虑的一些法律边界问题。本节将对网络基本扫描进行一个简单介绍。

1.网络扫描基础知识

在使用网络扫描之前,需要先理解以下内容:

 

  • q  当目标主机上使用了防火墙、路由器、代理服务或其它安全设备时,使用Nmap扫描结果可能会存在一些偏差。或者当扫描的远程目标主机不在本地网络内时,也有可能会出现误导信息。
  • q  在使用Nmap实施扫描时,一些选项需要提升权限。在Unix和Linux系统中,必须使用root登录或者使用sudo命令执行Nmap命令。

 

2.法律边界问题

在实施网络扫描时,需要考虑一些法律边界问题。如下所示:

 

  • q  在扫描互联网服务提供商网络时(如政府或秘密服务器网站),如果没有被允许的话,不要进行扫描。否则,会惹上法律麻烦。
  • q  全面扫描某些主机时,可能会导致主机崩溃、停机或数据丢失等不良结果。所以,在扫描关键任务时要小心谨慎。

 

网络映射器的常规应用之一是生成基本库存报告。这对网络地图、维护网络设备和节点一致的更新、还有识别流氓、未授权或遗忘设备都很实用。

Nmap扫描指定扫描目标

当用户有明确的扫描目标时,可以直接使用Nmap工具实施扫描。根据扫描目标的多少,可以分为扫描单个目标、多个目标及目标列表三种情况。本节将依次讲解这三种情况的扫描方式。

盘点的基本扫描利用ping扫描。例如,接下来的扫描显示了在192.168.1.0/24网络中可用的主机。-sP指示Nmap进行一次ping扫描,而-n则指示不要进行名称解析。

Nmap扫描扫描单个目标

通过指定单个目标,使用Nmap工具可以实现一个基本的扫描。指定的目标可以是一个IP地址,也可以是主机名(Nmap会自动解析其主机名)。其中,语法格式如下所示:

 

  • nmap [目标]

 

其中,参数[目标]可以是一个IP地址,也可以是一个主机名。

【示例2-4】扫描局域网中IP地址为192.168.1.105的主机。执行命令如下所示:

 

  • root@localhost:~# nmap 192.168.1.105
  • Starting Nmap 6.47 ( ) at 2015-05-05 18:44 CST
  • Nmap scan report for localhost (192.168.1.105)
  • Host is up (0.00010s latency).
  • Not shown: 995 closed ports
  • PORT   STATE SERVICE
  • 21/tcp      open  ftp
  • 22/tcp      open  ssh
  • 23/tcp      open  telnet
  • 111/tcp    open  rpcbind
  • 445/tcp    open  microsoft-ds
  • MAC Address: 00:0C:29:31:02:17 (VMware)
  • Nmap done: 1 IP address (1 host up) scanned in 0.87 seconds

 

从输出信息中,可以看到目标主机192.168.1.105上开启的端口有21、22、23、111、445,及这些端口所对应的服务。而且,还可以看到该目标主机的MAC地址为00:0C:29:31:02:17。从最后一行信息,可以看出目标主机是活动的(up),并且扫描该目标主机共用了0.87秒。

提示:Nmap工具默认扫描前1000个端口,即1-1000。如果用户想扫描1000以上端口的话,需要使用-p选项来指定。关于如何使用Nmap的一些选项,将在后面章节介绍。

由于IP地址分为IPv4和IPv6两类。所以,使用Nmap工具扫描单个目标时,指定的IP地址可以是IPv4,也可以是IPv6。上例中指定扫描的目标是使用IPv4类地址。如果用户指定扫描目标地址是IPv6类地址时,需要使用-6选项。例如,扫描IP地址为fe80::20c:29ff:fe31:217的目标主机,则执行命令如下所示:

 

  • [root@router ~]# nmap -6 fe80::20c:29ff:fe31:217

 

执行以上命令后,将显示如下所示的信息:

 

  • Starting Nmap 6.47 ( ) at 2015-05-06 15:07 CST
  • Nmap scan report for fe80::20c:29ff:fe31:217
  • Host is up (0.000017s latency).
  • Not shown: 995 closed ports
  • PORT  STATE SERVICE
  • 22/tcp  open  ssh
  • 23/tcp  open  telnet
  • 111/tcp open  rpcbind
  • 139/tcp open  netbios-ssn
  • 445/tcp open  microsoft-ds
  • Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds

 

从以上输出信息中,可以看到IPv6地址为fe80::20c:29ff:fe31:217的主机是活动的,并且开放了22、23、111、139、445端口。

提示:如果要使用IPv6类地址作为目标时,则扫描主机和目标主机都必须支持IPv6协议。否则,无法实施扫描。

nmap -sP -n 192.168.1.0/24 Starting Nmap 4.76 () at
2009-05-14 10:18 CDT Host 192.168.1.1 appears to be up. MAC Address:
00:18:3A:A4:43:BA (Westell Technologies) Host 192.168.1.2 appears to be
up. Host 192.168.1.3 appears to be up. MAC Address: 00:17:EE:01:95:19
(Motorola CHS) Host 192.168.1.4 appears to be up. MAC Address:
00:16:CB:A3:27:E4 (Apple Computer) Host 192.168.1.5 appears to be up.
MAC Address: 00:1E:52:7D:84:7E (Apple) Nmap done: 256 IP addresses (5
hosts up) scanned in 2.17 seconds

Nmap扫描扫描多个目标

Nmap可以用来同时扫描多个主机。当用户需要扫描多个目标时,可以在命令行中同时指定多个目标,每个目标之间使用空格分割。其中,语法格式如下所示:

 

  • nmap [目标1 目标2 …]

 

【示例2-5】使用Nmap工具同时扫描主机192.168.1.1、192.168.1.101和192.168.1.105。执行命令如下所示:

 

  • root@localhost:~# nmap 192.168.1.1 192.168.1.101 192.168.1.105
  • Starting Nmap 6.47 ( ) at 2015-05-05 19:07 CST
  • Nmap scan report for localhost (192.168.1.1)
  • Host is up (0.00094s latency).
  • Not shown: 997 closed ports
  • PORT       STATE SERVICE
  • 80/tcp             open  http
  • 1900/tcp          open  upnp
  • 49152/tcp         open  unknown
  • MAC Address: 14:E6:E4:84:23:7A (Tp-link Technologies CO.)
  • Nmap scan report for localhost (192.168.1.101)
  • Host is up (0.0060s latency).
  • All 1000 scanned ports on localhost (192.168.1.101) are closed
  • MAC Address: 14:F6:5A:CE:EE:2A (Xiaomi)
  • Nmap scan report for localhost (192.168.1.105)
  • Host is up (0.00038s latency).
  • Not shown: 995 closed ports
  • PORT   STATE SERVICE
  • 21/tcp      open  ftp
  • 22/tcp       open  ssh
  • 23/tcp      open  telnet
  • 111/tcp    open  rpcbind
  • 445/tcp    open  microsoft-ds
  • MAC Address: 00:0C:29:31:02:17 (VMware)
  • Nmap done: 3 IP addresses (3 hosts up) scanned in 1.00 seconds

 

从以上输出信息,可以看到共扫描了三台主机,并且依次显示了每台主机的扫描结果。在以上信息中,将扫描的每台主机地址行已加粗,方便用户了解其扫描结果。下面分别介绍这三台主机的扫描结果,如下所示:

 

  • q  192.168.1.1:从输出信息中可以看到该主机开启了三个端口,MAC地址为14:E6:E4:84:23:7A。根据MAC地址后面括号中的信息,可以推断出该主机是一个Tp-link路由器。
  • q  192.168.1.101:从输出信息中,可以看到该主机上前1000个端口是关闭的。但是,可以看到该主机的MAC地址为14:F6:5A:CE:EE:2A,设备类型为Xiaomi。由此可以判断出,该主机是一个小米手机设备。
  • q  192.168.1.105:从输出信息中,可以看到该主机上995个端口是关闭的,五个端口是开启的。其中,MAC地址为00:0C:29:31:02:17,而且是一台VMware(虚拟机)操作系统。

 

提示:当用户同时指定扫描的目标太多时,可以使用简化符号来获取扫描结果。其中,目标地址之间使用逗号(,)分割。例如,同时扫描以上三台主机,则可以使用如下命令:

 

  • nmap 192.168.1.1,101,105

 

这次ping扫描对于快速建立库存清单非常实用。它也可以是更复杂脚本和程序验证网络地址和变化的结构单元。举例来说,下面的命令报告了从两个日常扫描输出到文本文件的网络中的新主机192.168.1.5):

Nmap扫描扫描一个目标列表

当用户有大量主机需要扫描时,可以将这些主机的IP地址(或主机名)写入到一个文本文件中。然后,使用Nmap工具进行扫描。这样避免在命令行中手工输入目标。其中,语法格式如下所示:

 

  • nmap -iL [IP地址列表文件]

 

以上语法中的-iL选项,就是用来从IP地址列表文件中提取所有地址的。其中,IP地址列表文件中包含了一列被扫描的主机IP地址。并且,在IP地址列表文件中的每个条目必须使用空格、Tab键或换行符分割。

【示例2-6】使用Nmap工具扫描list.txt文件中所有的主机。具体操作步骤如下所示:

(1)创建list.txt文本文件,并将扫描的主机IP地址写入到该文本文件中。如下所示:

 

  • root@localhost:~# vi list.txt
  • 192.168.1.1
  • 192.168.1.100
  • 192.168.1.101
  • 192.168.1.102
  • 192.168.1.103
  • 192.168.1.104
  • 192.168.1.105

 

以上就是在list.txt文件中,指定将要扫描的目标地址。

(2)扫描list.txt文件中指定的所有主机。执行命令如下所示:

 

  • root@localhost:~# nmap -iL list.txt
  • Starting Nmap 6.47 ( ) at 2015-05-06 10:53 CST
  • Nmap scan report for localhost (192.168.1.1)
  • Host is up (0.00045s latency).
  • Not shown: 997 closed ports
  • PORT       STATE SERVICE
  • 80/tcp             open  http
  • 1900/tcp          open  upnp
  • 49152/tcp         open  unknown
  • MAC Address: 14:E6:E4:84:23:7A (Tp-link Technologies CO.)
  • Nmap scan report for localhost (192.168.1.100)
  • Host is up (0.00023s latency).
  • Not shown: 986 closed ports
  • PORT  STATE SERVICE
  • 135/tcp  open  msrpc
  • 139/tcp  open  netbios-ssn
  • 443/tcp  open  https
  • 445/tcp  open  microsoft-ds
  • 902/tcp  open  iss-realsecure
  • 912/tcp  open  apex-mesh
  • 1033/tcp open  netinfo
  • 1034/tcp open  zincite-a
  • 1035/tcp open  multidropper
  • 1038/tcp open  mtqp
  • 1040/tcp open  netsaint
  • 1075/tcp open  rdrmshc
  • 2869/tcp open  icslap
  • 5357/tcp open  wsdapi
  • MAC Address: 00:E0:1C:3C:18:79 (Cradlepoint)
  • Nmap scan report for localhost (192.168.1.103)
  • Host is up (0.00028s 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:F8:2B:38 (VMware)
  • Nmap scan report for localhost (192.168.1.104)
  • Host is up (0.00028s latency).
  • Not shown: 997 closed ports
  • PORT STATE SERVICE
  • 22/tcp  open  ssh
  • 80/tcp  open  http
  • 443/tcp open  https
  • MAC Address: 00:0C:29:C3:1F:D7 (VMware)
  • Nmap scan report for localhost (192.168.1.105)
  • Host is up (0.00034s latency).
  • Not shown: 995 closed ports
  • PORT STATE SERVICE
  • 21/tcp  open  ftp
  • 22/tcp  open  ssh
  • 23/tcp  open  telnet
  • 111/tcp open  rpcbind
  • 445/tcp open  microsoft-ds
  • MAC Address: 00:0C:29:31:02:17 (VMware)
  • Nmap scan report for localhost (192.168.1.102)
  • Host is up (0.0000080s latency).
  • Not shown: 998 closed ports
  • PORT  STATE SERVICE
  • 80/tcp   open  http
  • 9876/tcp open  sd
  • Nmap done: 7 IP addresses (6 hosts up) scanned in 1.05 seconds

 

从输出的信息中,可以看到依次扫描了list.txt文件中的每台主机,并且显示了每台主机的扫描结果。从最后一行信息,可以看到共扫描了七个IP地址。其中,六个主机是活动的,并且整个扫描过程共用了1.05秒。

diff monday.scan tuesday.scan | grep “> Host” > Host 192.168.1.5
appears to be up.

Nmap扫描扫描随机目标

Nmap工具提供了一个-iR选项,可以用来选择随机的互联网主机来扫描。Nmap工具将会随机的生成指定数量的目标进行扫描。其中,语法格式如下所示:

 

  • nmap -iR [主机数量]

 

【示例2-7】使用Nmap工具随机选择两个目标主机进行扫描。执行命令如下所示:

 

  • root@localhost:~# nmap -iR 2
  • Starting Nmap 6.47 ( ) at 2015-05-06 11:07 CST
  • Nmap scan report for suncokret.vguk.hr (161.53.173.3)
  • Host is up (0.43s latency).
  • Not shown: 984 closed ports
  • PORT   STATE  SERVICE
  • 21/tcp   open     ftp
  • 25/tcp   open     smtp
  • 53/tcp   open     domain
  • 80/tcp   open     http
  • 81/tcp   open     hosts2-ns
  • 110/tcp  open     pop3
  • 135/tcp  filtered msrpc
  • 139/tcp  filtered netbios-ssn
  • 143/tcp  open     imap
  • 443/tcp  open     https
  • 444/tcp  open     snpp
  • 445/tcp  filtered microsoft-ds
  • 593/tcp  filtered http-rpc-epmap
  • 2002/tcp open     globe
  • 3306/tcp open     mysql
  • 4444/tcp filtered krb524
  • Nmap done: 3 IP addresses (1 host up) scanned in 29.64 seconds

 

从输出信息中,可以看到Nmap工具随机生成了三个IP地址。但是,只有主机161.53.137.3是活动的,并且显示了对该主机的扫描结果。

提示:一般情况下,不建议用户实施随机扫描。除非,你是在做一个研究项目。否则,经常实施随机扫描可能会给自己的互联网服务提供商带来麻烦。