Nmap
1.简介:nmap是一款开发源代码的网络探测和安全审核工具。它被设计用来快速扫描大型网络,包括主机探测于发现,开放的端口情况,操作系统与应用服务指纹识别,WAF识别及常见安全漏洞。它的图形化界面是Zenmap,分布式框架为DNmap。 如果我们要扫描目标主机为1-100号的端口,输入:nmap -Pn 47.106.80.112 -p 1-100。其中1-100为要扫描的端口区间,端口大小不能超过65535 。nmap包含一个十分强大的banner数据库,可以向目标开放的端口发送探针数据包,根据目标主机返回的banner信息于存储总结的banner信息进行对比,进而确定运行的服务类型。
Open:端口处于开放状态;
Closed:端口处于关闭状态;
Filtered(过滤的):由于报文无法到达指定的端口,nmap不能够决定端口的开放状态,这主要是由于网络或者主机安装了一些防火墙所导致的;
Unfiltered(未被过滤的),当nmap不能确定端口是否开放的时候所打上的状态,这种状态和filtered的区别在于:unfiltered的端口能被nmap访问,但是nmap根据返回的报文无法确定端口的开放状态,而filtered的端口直接就没就没能够被nmap访问;
Open|filtered状态,这种状态主要是nmap无法区别端口处于open状态还是filtered状态。这种状态只会出现在open端口对报文不做回应的扫描类型中,如:udp,ip protocol ,TCP null,fin,和xmas扫描类型;
Closed|filtered状态,这种状态主要出现在nmap无法区分端口处于closed还是filtered时。此状态只会出现在IP ID idle scan中;
2.主机探测:探测网络上的主机;
3.端口扫描:探测目标主机所开放的端口;
nmap ip
nmap -Pn 47.106.80.112 -p 80,443,22,21,8080,25,53
nmap -Pn 47.106.80.112 -p 1-100
nmap -sV 域名
4.版本检测:探测目标主机的网络服务,判断其服务名称及版本号;
5.系统检测:探测目标主机的操作系统及网络设备的硬件特性;
nmap -O 域名
6.支持探测脚本的编写:使用Nmap的脚本引擎(NSE)和Lua编程语言;
常用命令:
(1)nmap ip
(2)nmap -Pn 47.106.80.112 -p 80,443,22,21,8080,25,53{-Pn指定主机,-p指定端口, -Pn 指定主机地址,nmap在扫描主机之前会检测主机是否存活,有些主机设置了防火墙很容易会被检测到未存活,而-Pn则可以指定扫描之前不需要ping命令,直接默认主机是存活的。 }
(3)区间端口扫描 :nmap -Pn 47.106.80.112 -p 1-100
(4)批量主机扫描:批量主机扫描也叫"ping"扫描。因为Nmap在扫描端口是,默认都会使用"ping"扫描,只有主机存活才会继续扫描,所以我们也可用这个命令扫描存活的主机,批量主机扫描主要有两个方式:一是指定网段,使用ping检测10.0.0.0/24这个网段;第二种方式就是拉取文件列表的方式,即从文件中读取需要扫描的ip列表,此时我们就可以用这个命令nmap -iL ip-address.txt
(5)综合扫描:使用综合扫描命令,会自动扫描包含1-10000的端口ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测。是一个非常简单的万能扫描,但是相对来说扫描时间也就会非常长了,所以大家看情况使用就好。nmap -Pn -A 47.106.80.112
(6)网段扫描:nmap 127.0.0.1-255 或者nmap 127.0.0.1/24
(7)输出结果;
我们在扫描之后,扫描结果会显示在命令行,我们可以通过参数 -oG 将扫描结果输出到一个txt文件,例如将我们进行指定端口扫描的内容保存在”zuoye.txt”文件,就可以输入:
1 | nmap -Pn 47.106.80.112 -p 80,443,22,21,8080,25,53 -oG zuoye.txt |
Nmap扫描格式:
nmap [ <扫描类型> …] [ <选项> ] { <扫描目标说明> }
如:扫描指定IP开放端口
命令:nmap -p 端口号 -v ip地址 -sS
指定端口号1-65535,-v显示扫描过程
-p: 指定端口号扫描
-v: 显示扫描过程
-sP: 对目标进行ping扫描
-Pn/-P0:禁止ping后扫描
-A: 全面的系统扫描,检测目标主机的操作系统信息和路由信息
-sV: 探测端口服务版本
-F: 快速扫描
-T(0-5): 默认3,越高扫描越快,但也容易被防火墙或IDS检测并屏蔽掉
-iL: 从文本文件里面扫描主机列表
扫描整个网段:nmap 192.168.1.2/24 或者 nmap 192.168.1.*(网段表示从1-255)
2.常见的Nmap扫描模式
TCP扫描:
-sS : TCP SYN 扫描 ,又称半开放扫描,默认使用的扫描模式
-sT: TCP连接扫描,扫描速度慢,容易被目标主机发现
-sA/ -sF : ACK扫描/ FIN扫描,又称隐蔽扫描,扫描效率低,需要等待超时
UDP扫描:
-sU: UDP扫描,UDP扫描结果没有TCP扫描结果的可靠度高,一般仅扫描53端口(DNS)和161端口(SNMP)
3.Nmap可以把扫描结果保存为外部文件。在需要使用其他工具处理Nmap的扫描结果时,这一功能十分有用
Nmap支持的输出形式:
1.正常输出(-oN):不显示runtime信息和警告信息
nmap –sS 192.168.174.1 -oN /root/abc/1.txt
- XML文件(-oX): 生成的XML格式文件可以转换成HTML格式文件。
还可被Nmap的图形用户界面解析,也便于导入数据库。(推荐)
一些小技巧:
1.已知情况关闭多余操作(-Pn -n)选择合适的速度
2.选择适当的扫描方式(Ping扫描/TCP扫描/SYN扫描区别)
3.尝试使用 Nmap 脚本
4.尝试伪装扫描(混淆与伪装)