1.Nmap概述
Nmap是一款强大的网络扫描和安全审计工具,它可以帮助您发现网络中的活动主机、开放端口、运行服务、操作系统等信息,以及进行漏洞扫描和渗透测试。
2.Nmap使用
// Nmap安装
apt install Namp
// Nmap基本语法
nmap <target> [options]
kali的命令行可以直接使用nmap命令,在终端输出nmap可以直接查看nmap的版本信息。
Nmap有四种基本的功能:端口扫描、主机探测、服务识别、系统识别。
扫描主机的「开放端口」,在nmap后面直接跟主机IP(默认扫描1000个端口)。
从上图可以看到:它用1.44秒扫描了1000个端口,其中994个端口关闭,结果中列出的6个端口就是开放的端口。
1.指定端口
扫描「指定端口」,使用 -p 参数,可以一次扫描单个端口、多个端口、或扫描一个范围的端口。
nmap 192.168.31.116 -p 80
nmap 192.168.31.116 -p 1-80
nmap 192.168.31.116 -p 80,3389,22,21
nmap 192.168.31.116 -p 1-65535
//扫描全部端口
nmap 192.168.31.116 -p-
2.指定扫描方式
2.1TCP全连接扫描
使用 -sT 参数进行TCP全连接扫描。
使用 -sU 参数进行UDP全连接扫描。
「全连接扫描」使用完整的三次握手建立链接,能够建立链接就判定端口开放,否则判定端口关闭。
nmap 192.168.31.116 -p 80 -sT
如果端口关闭,就只能进行一次握手,无法建立链接,扫描结果中,STATE字段显示为closed。
2.2SYN半连接扫描
使用 -sS 参数进行SYN半链接扫描。
「半链接扫描」只进行两次握手,对方返回确认帧(ACK=1)就判定端口开放,否则判定端口关闭。
nmap 192.168.31.116 -p 80 -sS
如果端口关闭,就只有一次握手,扫描结果中,STATE字段为closed。
2.3隐秘扫描
隐秘扫描,只适用于Linux系统。
「隐秘扫描」向目标主机的端口发送TCP FIN包 或 Xmas tree包 或 Null包,如果收到RST响应包,就判定端口关闭,否则就判定端口开放或被屏蔽(open/filtered)。
nmap 127.0.0.1 -p 80 -sF
nmap 127.0.0.1 -p 80 -sN
nmap 127.0.0.1 -p 80 -sX
3.主机探测
扫描网段中有哪些主机在线,使用 -sP 参数,不扫描端口,只扫描「存活主机」。
本质上是Ping扫描,能Ping通有回包,就判定主机在线。
nmap -sP 192.168.8.0/24
4.服务识别
扫描端口时,默认显示端口对应的服务,但不显示服务版本。
想要识别具体的「服务版本」,可以使用 -sV 参数。
nmap 192.168.31.180 -p 80 -sV
5.系统识别
想要识别「操作系统版本」,可以使用 -O 参数。
nmap 192.168.31.180 -p 80 -O
- Nmap扫描出的系统版本并完全准确,仅供参考
- 当识别不出具体版本时,Nmap会以概率的形式列举出可能的操作系统
6.输出格式
将扫描结果导出为「文本格式」,结果原样保存。
nmap 192.168.31.180 -p 80 -oN result.txt
将扫描结果导出为「xml格式」,结果的保存格式会发生变化。
nmap 192.168.31.180 -p 80 -oX result.xml
7.脚本扫描
Nmap还可以使用脚本进行脚本扫描。
nmap --script=vuln 192.168.0.1
auth: 负责处理鉴权证书(绕开鉴权)的脚本
broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务
brute: 提供暴力破解方式,针对常见的应用如http/snmp等
default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力
discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等 dos: 用于进行拒绝服务攻击
exploit: 利用已知的漏洞入侵系统
external: 利用第三方的数据库或资源,例如进行whois解析
fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞
intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽
malware: 探测目标机是否感染了病毒、开启了后门等信息
safe: 此类与intrusive相反,属于安全性脚本
version: 负责增强服务与版本扫描(Version Detection)功能的脚本
vuln: 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067