在进行网络管理过程中,网管会借助很多的工具比如付费的一些产品,比如漏洞扫描、安全隐患发现、网络设备管理、上网行为管理等。
更多的情况下,网管员使用一些DOS命令或者免费的工具进行,比如前面介绍过的PingInfoView.exe、WinMTR.exe等,NMap作为一款免费的网络工具,实际工作中它的表现非常好,网管结合它灵活的参数配置可以实现很多的网络功能。
我使用的是7.8版本。一般情况下,直接使用Windows界面即可,它可以完成主机发现、端口扫描、版本侦测、操作系统探测、漏洞扫描(这个功能不理想)等功能。
windows界面功能真的是强大,别的功能不说,仅仅就是它的拓扑图功能就非常值得点赞。
前段时间,需要检查下班后没有关机的计算机,以往是从交换机中提取在线数据,通过程序来分析提取,这里使用NMap扫描结合VBAScript脚本很快就得出了结果。
在使用NMap时,更多的情况下习惯使用DOS命令行的方式。
一、主机发现
nmap -sP 11.130.170.1/24 //使用TCP SYN扫描、ICMP echo Request来探测11.130.170段的地址
nmap -sn 11.130.170.1/23 //使用ping扫描11.130.170和11.130.171段的地址
nmap -sn 11.130.170.1/22 -oX 20231010-A.xml //扫描11.130.170、11.130.171、11.130.173、11.130.174段的地址并将结果输出到20231010-A.xml文件中
二、端口扫描
返回结果的端口状态解释:
open: 这表明在该端口有应用程序接收TCP连接UDP报文
closed:可以访问一个关闭的端口(它接收并响应Nmap探测数据包),但没有应用程序正在侦听它。
filtered:无法确定端口是否打开,因为数据包过滤会阻止其探测到达端口。过滤可以来自专用防火墙设备,路由器规则或基于主机的防火墙软件。
unfiltered:可以访问端口,但无法确定它是打开还是关闭。
open|filtered:无法确定端口是开启还是已过滤。
closed|filtered:无法确定端口是关闭还是已过滤。
nmap 11.130.170.12 //扫描开放的端口
nmap --dns-servers DNS地址 域名 //使用DNS解析服务器
nmap -Pn 11.130.170.12 //停止探测之前的ICMP请求,不触发计算机防火墙的安全机制
nmap -P 1-20000 11.130.170.12 //扫描指定的端口范围
nmap -p8080 11.130.170.12 //扫描8080端口
nmap -p8080,135,139 11.130.170.12 //扫描8080、135、139端口
nmap -p- 11.130.170.12 //对所有的端口进行扫描
nmap -p T:23,U:53 11.130.170.12 //对指定的端口结合指定的协议进行扫描
nmap -p T:22 11.130.170.12 //对指定的端口结合指定的协议进行扫描
nmap -p smtp 11.130.170.12 //指定协议名称扫描
nmap -p s* 11.130.170.12 //指定协议名称范围扫描
三、服务发现
nmap -sV 11.130.170.12 //探测服务信息
nmap -A -v -T4 11.130.170.12 //使用侵略性的探测方式
nmap -sC -sV -O 11.130.170.12 //sC表示使用NMap的脚本进行探测
四、漏洞扫描
nmap 11.130.170.12 --script=auth,vuln
这个功能有些鸡肋,目前可以使用它指定的漏洞脚本进行扫描,但是它的脚本有些怪异,如果要使用,需要注意更新最新的漏洞脚本。
五、对比两次的扫描结果
ndiff file1.xml file2.xml
六、注意点
⑴根据情况确定扫描参数
比如,一般情况下只需要确定主机是否在线,那么就不用扫描端口(-sP 使用ping来探测主机,不扫描端口);如果要绕过一些防火墙,那么可能需要禁止ping(-Pn 禁止ping扫描)。
⑵尽量不使用-A参数
-A是全面扫描,一般情况下没有必要,会导致扫描时间过长,如果要使用-A,建议加上-v,这样可以看到扫描的过程。
⑶提高准确率使用-sT参数,NMap使用TCP连接扫描,扫描速度慢但是准确率高。
⑷为了使得扫描不被记录,在扫描时加上指定的文件头信息
nmap -v -sS -pn -T4 -A 11.130.170.12 --script http-methods --script-args http.useragent="文件头信息"