Linux网络安全运维:网络探测和安全审核工具nmap( 二 )


 
nmap –T4 –A –v 目标主机
 
其中,“-A”选项用于开启全面扫描;“-T4”指定扫描过程中使用的时序模板,总共有6个等级(0~5),等级越高,扫描速度越快,但也越容易被防火墙或者入侵检测设备发现并屏蔽,所以选择一个适当的扫描等级非常重要,这里推荐使用“-T4”;“-v”参数可显示扫描细节 。图2是nmap对某主机的全面扫描过程 。

Linux网络安全运维:网络探测和安全审核工具nmap

文章插图
 
图2 nmap对主机“192.168.12.188”的全面扫描过程
 
从图2中可以看出,整个扫描过程非常详细:第一部分是对主机是否在线进行扫描;第二部分是对端口进行扫描,在默认情况下nmap会扫描1000个最有可能开放的端口,由于只扫描到22、111、80三个端口处于打开状态,所以在输出中会有“997 closed ports”的描述;第三部分是对端口上运行的应用服务以及版本号进行统计,可以看到,扫描结果非常详细地记录了软件的版本信息;第四部分是对操作系统类型和版本进行探测,从扫描结果来看,还是非常准确的;第五部分是对目标主机的路由跟踪信息 。
 
5、nmap主机发现扫描
 
主机发现主要用来判断目标主机是否在线,其扫描原理类似于ping命令,通过发送探测数据包到目标主机,如果能收到回复,那么认为目标主机处于在线状态 。nmap支持多种不同的主机探测方法,例如发送TCP SYN/ACK包、发送SCTP包、发送ICMP echo/timestamp/netmask请求报文等,用户可在不同的环境下选择不同的方式来探测目标主机 。
 
(1)主机发现的用法
 
nmap提供了丰富的选项以供用户选择不同的主机发现探测方式,使用语法如下:
 
nmap [选项或参数] 目标主机
 
nmap常用的主机发现选项与含义如表1所示 。
Linux网络安全运维:网络探测和安全审核工具nmap

文章插图
 
表1 常用的主机发现选项及含义
 
在这些选项中,比较常用的是“-sn”和“-Pn”,例如,查看某个网段有哪些主机在线,就需要使用“-sn”选项,而如果已经知道了目标主机在线,仅仅想扫描主机开放的端口时,就需要用“-Pn”选项 。
 
(2)使用实例
 
下面以探测www.abc.com主机的信息为例,简单演示主机发现的用法 。首先,在联网的服务器上执行如下命令:
 
nmap-sn -PE -PS22,80 -PU53 www.abc.com
 
执行结果如图3所示 。
Linux网络安全运维:网络探测和安全审核工具nmap

文章插图
 
图3 主机发现的执行结果
 
在这个例子中,使用了“-PE”、“-PS”、“-PU”等参数,根据上面的介绍,“-PE”是以发送ICMP echo报文的形式进行主机探测的,“-PS”是以发送TCP SYN/ACK包的形式侦测主机信息的,而“-PU”则是以UDP的方式进行主机侦测的 。为了清晰展示nmap的侦测方式和侦测过程,这里通过抓包工具Wireshark动态监测nmap探测主机的过程,如图4所示 。
Linux网络安全运维:网络探测和安全审核工具nmap

文章插图
 
图4 通过Wireshark获取的nmap探测主机过程
 
从图4中可以看到,nmap所在的主机“192.168.12.188”向目标主机“61.185.133.234”发送了四个探测包,分别是ICMP Echo(ping)、22端口和80端口的TCP SYN、53端口的UDP包 。但是仅仅收到了ICMP Echo(ping)和80端口的回复,22端口返回了“RST”标识,这说明22端口处于关闭状态 。不过nmap的原则是只要能收到任何一种探测请求的回复,就认为此主机处于在线状态 。
 
6、nmap端口扫描
 
端口扫描是nmap最核心的功能,通过端口扫描可以发现目标主机上TCP、UDP端口的开放情况 。nmap在默认状态下会扫描1000个最有可能开放的端口,并将侦测到的端口状态分为6类,分别是:
 
open,表示端口是开放的 。
 
closed,表示端口是关闭的 。
 
filtered,表示端口被防火墙屏蔽,无法进一步确定状态 。
 
unfiltered,表示端口没有被屏蔽,但是否处于开放状态,还需要进一步确定 。
 
open|filtered,表示不确定状态,端口可能是开放的,也可能是屏蔽的 。
 
closed|filtered,表示不确定状态,端口可能是关闭的,也可能是屏蔽的 。


推荐阅读