Nmap介绍
Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字Nmap是Network Mapper的简称。Nmap最初是由Fyodor在1997年开始创建的。随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一。最新版的Nmap6.0在2012年5月21日发布,详情请参见:www.nmap.org。
一般情况下,Nmap用于列举网络主机清单、管理服务升级调度、监控主机或服务运行状况。Nmap可以检测目标机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。
Nmap的优点:
- 灵活。支持数十种不同的扫描方式,支持多种目标对象的扫描。
- 强大。Nmap可以用于扫描互联网上大规模的计算机。
- 可移植。支持主流操作系统:Windows/Linux/Unix/MacOS等等;源码开放,方便移植。
- 简单。提供默认的操作能覆盖大部分功能,基本端口扫描nmap targetip,全面的扫描nmap –A targetip。
- 自由。Nmap作为开源软件,在GPL License的范围内可以自由的使用。
- 文档丰富。Nmap官网提供了详细的文档描述。Nmap作者及其他安全专家编写了多部Nmap参考书籍。
- 社区支持。Nmap背后有强大的社区团队支持。
- 赞誉有加。获得很多的奖励,并在很多影视作品中出现(如黑客帝国2、Die Hard4等)。
- 流行。目前Nmap已经被成千上万的安全专家列为必备的工具之一。
使用方法
使用主机名扫描
1 | [root@server1 ~]# nmap server2.tecmint.com |
使用IP地址扫描
1 | [root@server1 ~]# nmap 192.168.0.101 |
扫描使用-v选项
你可以看到下面的命令使用“ -v “选项后给出了远程机器更详细的信息。
1 | [root@server1 ~]# nmap -v server2.tecmint.com |
扫描多台主机
1 | [root@server1 ~]# nmap 192.168.0.101 192.168.0.102 192.168.0.103 |
扫描整个子网
1 | [root@server1 ~]# nmap 192.168.0.* |
扫描IP地址范围
1 | [root@server1 ~]# nmap 192.168.0.101-110 |
扫描多台服务器
1 | [root@server1 ~]# nmap 192.168.0.101,102,103 |
从文件中扫描服务器
1 | [root@server1 ~]# nmap -iL nmaptest.txt |
排除一些主机后在进行扫描
1 | [root@server1 ~]# nmap 192.168.0.* --exclude 192.168.0.100 |
扫描操作系统信息和路由追踪
1 | [root@server1 ~]# nmap -A 192.168.0.101 |
启用Nmap的操作系统探测功能
使用选项“-O”和“-osscan-guess”也帮助探测操作系统信息。
1 | [root@server1 ~]# nmap -O server2.tecmint.com |
扫描主机侦测防火墙
下面的命令将扫描远程主机以探测该主机是否使用了包过滤器或防火墙。
1 | [root@server1 ~]# nmap -sA 192.168.0.101 |
扫描主机检测是否有防火墙保护
1 | [root@server1 ~]# nmap -PN 192.168.0.101 |
找出网络中的在线主机
使用“-sP”选项,我们可以简单的检测网络中有哪些在线主机,该选项会跳过端口扫描和其他一些检测。
1 | [root@server1 ~]# nmap -sP 192.168.0.* |
执行快速扫描
你可以使用“-F”选项执行一次快速扫描,仅扫描列在nmap-services文件中的端口而避开所有其它的端口。
1 | [root@server1 ~]# nmap -F 192.168.0.101 |
打印主机接口和路由
1 | [root@server1 ~]# nmap --iflist |
扫描特定的端口
使用Nmap扫描远程机器的端口有各种选项,你可以使用“-p”选项指定你想要扫描的端口,默认情况下nmap只扫描TCP端口。
1 | [root@server1 ~]# nmap -p 80 server2.tecmint.com |
扫描TCP端口
1 | [root@server1 ~]# nmap -p T:8888,80 server2.tecmint.com |
扫描UDP端口
1 | [root@server1 ~]# nmap -sU 53 server2.tecmint.com |
扫描多个端口
1 | [root@server1 ~]# nmap -p 80,443 192.168.0.101 |
扫描指定范围内的端口
1 | [root@server1 ~]# nmap -p 80-160 192.168.0.101 |
查找主机服务版本号
1 | [root@server1 ~]# nmap -sV 192.168.0.101 |
使用TCP ACK (PA)和TCP Syn (PS)扫描远程主机
有时候包过滤防火墙会阻断标准的ICMP ping请求,在这种情况下,我们可以使用TCP ACK和TCP Syn方法来扫描远程主机。
1 | [root@server1 ~]# nmap -PS 192.168.0.101 |
使用TCP ACK扫描远程主机上特定的端口
1 | [root@server1 ~]# nmap -PA -p 22,80 192.168.0.101 |
使用TCP Syn扫描远程主机上特定的端口
1 | [root@server1 ~]# nmap -PS -p 22,80 192.168.0.101 |
执行一次隐蔽的扫描
1 | [root@server1 ~]# nmap -sS 192.168.0.101 |
使用TCP Syn扫描最常用的端口
1 | [root@server1 ~]# nmap -sT 192.168.0.101 |
执行TCP空扫描以骗过防火墙
1 | [root@server1 ~]# nmap -sN 192.168.0.101 |