文章目录
- 一、关于Nmap
- 二、常用命令及对应扫描模式的原理:
- Ⅰ. 指定要扫描的主机
- Ⅱ. 指定要扫描的端口号
- Ⅲ. 指定扫描的模式(包含原理与特点)
- 1. 全连接扫描(connect()扫描、TCP扫描)
- 2. 半连接扫描(SYN扫描)
- 3. UDP扫描
- 4. FIN扫描
- 5. Xmax扫描
- 6. NULL扫描
- 7. 扫描时获取banner信息
- 8. 扫描时使用指定的扫描脚本
一、关于Nmap
Nmap(Network Mapper),用来扫描网络上计算机开放的网络连接端口;
它是网络安全工程师必用的软件之一,用以评估网络系统安全,网络安全工程师可以利用NMap来探测工作环境中的服务或端口;
黑客可以利用nmap来搜集目标主机的服务与系统信息等,从而制定进一步的攻击方案。
二、常用命令及对应扫描模式的原理:
Ⅰ. 指定要扫描的主机
nmap 192.168.1.2 # 扫描特定主机
nmap 192.168.1.2-254 # 扫描一系列连续ip地址的主机
Ⅱ. 指定要扫描的端口号
nmap -p21, 22, 80 192.168.1.2 # 扫描主机的指定端口号(21,22和80)
nmap -p21-80 192.168.1.2 # 扫描主机的一系列连续的端口号(从21到80之间的所有端口)
nmap -p- 192.168.1.2 # 扫描主机的所有端口(1-65535)
Ⅲ. 指定扫描的模式(包含原理与特点)
在nmap之后加上 “-模式名” 即可。
1. 全连接扫描(connect()扫描、TCP扫描)
nmap -sT 192.168.1.2
原理及特点:
- 扫描时会完成完整的TCP三次握手,若端口处于侦听状态,则socket函数connect()会成功返回值;
- 优点:可靠稳定,不需要特定权限;
- 缺点:建立了完整的TCP连接,没有隐蔽性,极易被服务器的日志记录或被防火墙屏蔽。
2. 半连接扫描(SYN扫描)
nmap -sS 192.168.1.2
原理及特点:
- 扫描主机在完成TCP的前两次握手后便断开连接,若服务器发来ACK包,则说明该端口开启,若为RST包(Reset)则反之;
- 优点:因为没有完全建立起TCP连接,所以有一定的隐蔽性,很少会被服务器的系统日志记录;
- 缺点:构造SYN包需要较高的操作系统用户权限。
3. UDP扫描
nmap -sU 192.168.1.2
原理及特点:
- 扫描主机时使用不需建立连接的UDP数据包来对目标主机的信息进行探测;
- 优点:因为UDP面向无连接,可以直接将数据包发送给服务器,不需经过等待建立连接或关闭的过程,所以在某些情况下速度会比TCP扫描更快,有时也能由此发现冷门的UDP服务或端口;
- 缺点:由于面向无连接,所以扫描结果的误报率会更大,也更难对目标主机的端口状态进行确定。
4. FIN扫描
nmap -sF 192.168.1.2
原理及特点:
- 当我们发送一个FIN=1的报文到一个关闭的端口时,该报文会被目标主机丢弃,并随之返回一个RST报文;而对于一个开启的端口,该报文仍然会被丢弃,但不会有RST报文返回。可以由以上两点来辨别端口的状态;
- 优点:因为完全不建立TCP连接,所以相对而言非常隐蔽;
- 缺点:只对Unix有效,对Windows无效(可以据此作为参考依据,来判断目的主机的操作系统)。
5. Xmax扫描
nmap -sX 192.168.1.2
原理及特点:
- Xmax扫描可以看作是FIN扫描的一个变种,打开FIN,URG和PUSH标记;
- 优缺点同FIN扫描。
6. NULL扫描
nmap -sN 192.168.1.2
原理及特点:
- NULL扫描是FIN的另一变种,关闭了所有标记;
- 优缺点同FIN扫描。
7. 扫描时获取banner信息
nmap -sV 192.168.1.2
特点:
- banner信息包含端口具体的服务及版本信息等,这些信息会帮助攻击者更轻易地制定出具有针对性的攻击方案。
8. 扫描时使用指定的扫描脚本
nmap --script=vuln 192.168.1.2
# 指定使用vuln脚本进行扫描(使用vuln脚本能扫描常见的安全漏洞或风险)
常见的扫描脚本如下:
vuln:常见漏洞扫描脚本
http-enum:HTTP服务扫描脚本
ftp-anon:FTP匿名访问扫描脚本
smb-os-discovery:SMB服务扫描脚本
ssl-enum-ciphers:SSL/TLS加密套件扫描脚本
smtp-enum-users:SMTP用户枚举脚本