nmap官网地址:https://nmap.org/
nmap扫描脚本:https://nmap.org/nsedoc/
一、nmap是什么?
Nmap,也就是Network Mapper,是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。 确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全
二、端口扫描原理
端口扫描包括向每个端口发送消息,一次只发送一个消息。接收到的回应类型表示是否在使用该端口并且可由此探寻弱点。
当一个主机向远端一个服务器的某一个端口提出建立一个连接的请求,如果对方有此项服务,就会应答,如果对方未安装此项服务时,即使你向相应的端口发出请求,对方仍无应答,利用这个原理,如果对所有熟知端口或自己选定的某个范围内的熟知端口分别建立连接,并记录下远端服务器所给予的应答,通过查看一记录就可以知道目标服务器上都安装了哪些服务
三、扫描器
扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器你可以不留痕迹的发现远程服务器的各种TCP端口的分配及提供的服务和它们的软件版本!
作用:帮助我们发现目标机的某些内在的弱点,并不直接攻击系统
四、端口扫描器的分类
- 扫描环境:windows/linux
- 扫描数量:单一/多端口扫描器
- 扫描结果:扫描开关状态/扫描漏洞
- 扫描技术:一般扫描器/特殊扫描器
五、应用场景
- 探测一组主机是否在线,探测网络上的主机
- 扫描目标主机端口,嗅探所提供的网络服务
- 推断主机所用的操作系统
- 通过对设备或者防火墙的探测来审计其安全性
- 网络存储、网络映射、维护和资产管理(这个有待深入)
- 通过识别新的服务器审计网络的安全性
六、扫描类型
1.TCP 全连接扫描:
这是最基本的TCP全连接扫描,完成三次握手。与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么连接就能成功。
优点:1.不需要任何权限
缺点:很容易被发觉,并且被过滤掉
2.TCP SYN扫描
“半开放”扫描,三次握手前两次,这是因为扫描程序不必要打开一个完全的TCP连接。扫描程序发送的是一个SYN数据包,好象准备打开一个实际的连接并等待反应一样(参考TCP的三次握手建立一个TCP连接的过程)。一个SYN|ACK的返回信息表示端口处于侦听状态。一个RST返回,表示端口没有处于侦听态。如果收到一个SYN|ACK,则扫描程序必须再发送一个RST信号,来关闭这个连接过程。
端口开放:1、Client发送SYN 2、Server端发送SYN/ACK 3、Client发送RST断开(只需要前两步就可以判断端口开放)
端口关闭:1、Client发送SYN 2、Server端回复RST(表示端口关闭)
优点:一般不会在目标计算机上留下记录
缺点:必须要有root权限才能建立自己的SYN数据包
3.TCP FIN 扫描
秘密扫描,FIN为指示TCP会话结束,在FIN扫描中一个设置了FIN位的数据包被发送后,若响应RST数据包,则表示端口关闭,没有响应则表示开放。一些防火墙和包过滤器会对一些指定的端口进行监视,有的程序能检测到这些扫描。相反,FIN数据包可能会没有任何麻烦的通过。这种扫描方法的思想是关闭的端口会用适当的RST来回复FIN数据包。另一方面,打开的端口会忽略对FIN数据包的回复。
发送FIN,返回RST (端口关闭,回复RST包;端口开放,不回复)
优点:减少了被目标主机记录下来的可能性,安全性较高.
缺点:系统不管端口是否打开,都回复RST,这样,这种扫描方法就不适用了
七、命令行扫描
1.简单扫描
语法:nmap <目标ip>
举例:nmap 10.82.241.2
举一反三:多个 IP 可以以逗号分隔:192.168.1.1,2,3,4,5
,也可以使用短横线来表示范围:192.168.1.1-255
,也可以使用 CIDR 记法:192.168.1.0/24
2.显示详细信息
语法:nmap -vv <目标 IP>
举例:nmap -vv 192.168.1.1
3.自定义端口
语法:nmap <目标 IP> -p <端口>
举例:nmap 192.168.1.1 -p 1-500
举一反三:端口可以是单个,也可以是多个,多个端口可以以逗号分隔,比如21,22,23,53,80
,也可以使用短横线指定范围,比如1-1024
。
4.Ping 扫描
说明:Ping 扫描其实就是只执行主机发现,不扫描具体端口
语法:nmap -sP <目标 IP>
举例:nmap 192.168.1.1 -sP
操作系统类型检测
举一反三:有一个选项是只执行端口扫描,不执行主机发现的,是-PN
(或-P0
)
5.语法:nmap -O <目标 IP>
举例:nmap www.baidu.com -O
6.组合扫描
说明:比如我们要扫描1 ~ 1024 端口,详细输出,并且探测操作系统。
举例:nmap 192.168.1.1 -p 1-1024 -vv -O
7.生成报告
语法:nmap -ox <路径>
举例:
nmap 192.168.1.1 -p 1-1024 -vv -O -ox D:\scan_report.xml
8.常用其他参数
-sP :ping扫描(不进行端口扫描)
-sT:进行TCP全连接扫描
-sS:进行SYN半连接扫描
-sF:进行FIN扫描
-sN:进行Null扫描
-sX:进行Xmas扫描
-O:进行测探目标主机版本(不是很准)
-sV:可以显示服务的详细版本
-A:全面扫描
-oN:会将扫描出来的结果保存成一个txt文件
-sC:脚本扫描(查看脚本数量ls /usr/share/nmap/scripts/ |wc -l)
9.汇总扫描
nmap –n –P0 –sS –sV –p1-65535 –oX scan_report.xml 10.1.1.1
nmap -Pn 10.1.1.1 -vv
nmap -vv 10.1.1.1,2 -p 1-65535 --sT
抓包分析:sudo tcpdump -i enp175s0f1 src 10.1.1.1
八、图形化界面扫描
7.1.界面介绍
7.2.zenmap的十种扫描方式
7.2.1 Intense scan 强扫描
nmap –T4 –A –v
-T4,时序性,0-5级,级别越高扫描速度越快,也越容易被发现,推荐T4
-A,探测主机操作系统
-v,表示显示冗余(verbosity)信息,扫描过程中打印详细信息
7.2.2 UDP[3] 扫描 Intense scan plus UDP
7.2.3 扫描所有 TCP[4] 端口 Intense scan,all TCP ports
7.2.4 非 ping 扫描 Intense scan,no ping
7.2.5 ping scan Ping扫描
7.2.6 快速的扫描 Quick scan
7.2.7 快速扫描加强模式 Quick scan plus
7.2.8 路由跟踪 Quick traceroute
7.2.9 规则扫描 Regular scan
7.2.10 慢速全面扫描 Slow comprehensive scan
九、扫描结果分析
1.端口状态
open(开放的)
如果扫描该端口显示open证明该应用端口属于开放的。安全意识强的人 们知道每个开放的端口都是攻击的入口。
closed(关闭的)
如果扫描该端口显示closed证明该应用端口是关闭的,但是关闭的端口对于Nmap也是可访问的。
filtered(被过滤的)
如果扫描该端口显示filtered证明该应用端口可能被过滤,大概意思就是可能被专业的防火墙设备,路由器规则或者主机上的软件防火墙拦截下来了。
unfiltered(未被过滤的)
如果扫描该端口显示unfiltered证明可以访问的,但是Nmap不确定它是开放还是关闭。只有映射防火墙规则集的ACK扫描才会把端口分类到这种状态。用其他类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮忙确定该端口是否开放。
open|filtered(开放或者被过滤的)
如果扫描该端口显示open|filtered表示Nmap无法确定该端口是开放还是被过滤的。
closed|filterd(关闭或者被过滤的)
如果扫描该端口显示closed|filterd表示Nmap也不能确定该端口是否是关闭还是过滤的。
2.扫描报告样例
![](/i/l/?n=22&i=blog/550265/202209/550265-20220926173915396-1182273421.png)
标签:培训,scan,nmap,端口,扫描,TCP,7.2,测试 From: https://www.cnblogs.com/happylumei/p/16731780.html