Nmap命令详解(建议收藏)
Nmap(Network Mapper)是一款功能强大的开源网络扫描工具,广泛用于网络探测、安全审计和漏洞发现。以下是Nmap命令的详细解析,涵盖基础用法、高级功能和常见场景。
一、Nmap基础命令
-
扫描单个主机
nmap 192.168.1.1
- 默认扫描目标主机的前1000个TCP端口。
-
扫描多个主机
nmap 192.168.1.1 192.168.1.2
- 同时扫描多个IP地址。
-
扫描整个子网
nmap 192.168.1.0/24
- 扫描子网内所有主机(256个IP)。
-
指定端口范围
nmap -p 20-80 192.168.1.1
- 扫描指定端口范围(如20到80)。
-
扫描常见端口
nmap -F 192.168.1.1
- 快速扫描(默认100个常见端口)。
二、Nmap高级功能
-
服务/版本检测
nmap -sV 192.168.1.1
- 检测目标主机开放端口的服务类型及版本信息。
-
操作系统检测
nmap -O 192.168.1.1
- 尝试识别目标主机的操作系统(需管理员权限)。
-
UDP扫描
nmap -sU 192.168.1.1
- 扫描UDP端口(默认仅扫描TCP)。
-
综合扫描(TCP+UDP+服务版本)
nmap -A 192.168.1.1
- 启用服务版本检测、操作系统检测、脚本扫描和路由追踪。
-
绕过防火墙(SYN扫描)
nmap -sS 192.168.1.1
- 使用半开放扫描(不完成TCP三次握手,减少被检测风险)。
-
隐蔽扫描(FIN/NULL/Xmas扫描)
nmap -sN 192.168.1.1 # NULL扫描 nmap -sF 192.168.1.1 # FIN扫描 nmap -sX 192.168.1.1 # Xmas扫描
- 通过发送异常TCP包绕过简单防火墙。
三、Nmap脚本扫描(NSE)
-
运行默认脚本
nmap --script=default 192.168.1.1
- 执行Nmap内置脚本(如漏洞检测、弱口令扫描)。
-
指定脚本
nmap --script=http-enum 192.168.1.1
- 运行特定脚本(如枚举HTTP目录)。
-
漏洞扫描
nmap --script=vuln 192.168.1.1
- 扫描已知漏洞(依赖NSE脚本库)。
-
暴力破解SSH
nmap --script=ssh-brute -p 22 192.168.1.1
- 尝试通过字典破解SSH密码(需配置字典文件)。
四、输出与性能优化
-
保存扫描结果
nmap -oN output.txt 192.168.1.1
- 将结果保存为普通文本(
-oN
)、XML(-oX
)或grepable格式(-oG
)。
- 将结果保存为普通文本(
-
提高扫描速度
nmap -T4 192.168.1.0/24
- 设置时间模板(T0-T5,T5最快但可能被防火墙拦截)。
-
并行扫描
nmap -Pn -n --min-parallelism 100 192.168.1.0/24
- 禁用主机发现(
-Pn
)、DNS解析(-n
)并设置最小并行度。
- 禁用主机发现(
五、常见场景示例
-
快速扫描子网内所有主机及开放端口
nmap -sn 192.168.1.0/24 # 仅主机发现 nmap 192.168.1.0/24 # 扫描开放端口
-
检测Web服务器漏洞
nmap --script=http-vuln-cve2017-5638 -p 80 192.168.1.1
- 扫描特定CVE漏洞(如Apache Struts漏洞)。
-
扫描数据库服务
nmap -p 3306 --script=mysql-info 192.168.1.1
- 获取MySQL服务信息(需目标开放3306端口)。
六、注意事项
-
权限要求
- 操作系统检测、原始套接字扫描等需管理员权限(
sudo
)。
- 操作系统检测、原始套接字扫描等需管理员权限(
-
合法性
- 扫描前需获得目标授权,避免触犯法律。
-
防火墙与IDS
- 扫描可能被防火墙拦截或触发入侵检测系统(IDS)。
-
NSE脚本更新
- 定期更新Nmap和脚本库(
nmap --script-updatedb
)。
- 定期更新Nmap和脚本库(
七、
Nmap是一款功能强大的工具,适用于网络管理员、安全工程师和渗透测试人员。通过组合不同参数和脚本,可实现从基础端口扫描到高级漏洞检测的多种任务。建议结合实际需求选择参数,并遵守法律法规。
收藏提示:将常用命令保存为脚本或别名,提升效率!