Nmap
🛡️ Nmap 网络扫描
一、 扫描目标与基础设置
用于定义扫描对象以及基础的探测逻辑。
| 分类 | 语法指令 | 功能说明 | 示例 |
|---|---|---|---|
| 目标指定 | IP/域名/网段 | 支持单个 IP、CIDR 网段或范围。 | 192.168.1.0/24 |
-iL <file> | 从外部文本文件中读取目标列表。 | -iL targets.txt | |
| 端口规格 | -p <port> | 指定端口、范围或全端口 (-p-)。 | -p 80,443,1-1024 |
-F | 快速模式:仅扫描最常用的 100 个端口。 | nmap -F 1.1.1.1 | |
| 性能模板 | -T<0-5> | 调整扫描速度。0 最慢(隐蔽),5 最快。 | nmap -T4 1.1.1.1 |
二、 扫描类型与指纹探测
定义如何通过网络协议发现主机和服务。
| 语法指令 | 功能说明 | 适用场景 |
|---|---|---|
-sS | TCP SYN 扫描 | 半开放扫描,速度快且相对隐蔽(默认)。 |
-sT | TCP 连接扫描 | 建立完整三次握手,不需 Root 权限但易被记录。 |
-sU | UDP 扫描 | 针对 DNS, DHCP, SNMP 等服务的端口探测。 |
-sn | Ping 扫描 | 只查主机是否在线,不扫端口。 |
-Pn | 禁 Ping 扫描 | 绕过防火墙禁 Ping 限制,强制扫描端口。 |
-sV | 版本探测 | 获取开放端口后,探测具体的服务版本号。 |
-O | OS 探测 | 通过 TCP/IP 栈特征识别操作系统类型。 |
-A | 全能模式 | 综合 -O, -sV, -sC (脚本) 和 Traceroute。 |
三、 NSE 脚本引擎 (Nmap Scripting Engine)
这是 Nmap 的高级功能,用于漏洞扫描和自动化任务。
| 脚本类别 | 功能描述 | 示例指令 |
|---|---|---|
vuln | 漏洞探测:检查目标是否有已知安全漏洞(CVE)。 | --script vuln |
auth | 身份认证:检测匿名登录、默认账号或弱口令。 | --script auth |
brute | 暴力破解:自动尝试常见协议的登录凭据。 | --script brute |
discovery | 信息搜集:枚举目录、查询 WHOIS、抓取标题。 | --script discovery |
default | 默认脚本:运行一组最有用且安全的脚本。 | -sC |
四、 防火墙规避与隐蔽技巧 (Evasion)
用于绕过入侵检测(IDS)或防火墙限制。
| 语法指令 | 功能说明 | 示例 |
|---|---|---|
-f | 报文分段:将探测包切碎,以此绕过简单的 FW 过滤。 | nmap -f 1.1.1.1 |
-D <IP1,IP2> | 诱饵扫描:在流量中混入大量伪造 IP 掩护真实地址。 | -D RND:10 1.1.1.1 |
-S <IP> | 源 IP 欺骗:伪装成特定的 IP(如网关)进行探测。 | -S 8.8.8.8 1.1.1.1 |
--source-port | 指定源端口:模仿合法服务(如 DNS 的 53 端口)发包。 | --source-port 53 |
--mtu <size> | 自定义 MTU:调整传输单元大小以避开检测特征。 | --mtu 24 1.1.1.1 |
五、 输出与保存结果
将结果导出为不同格式,方便后期分析。
| 参数 | 格式说明 | 建议场景 |
|---|---|---|
-oN <file> | 标准文本格式 | 方便人类直接阅读。 |
-oX <file> | XML 格式 | 方便导入 Metasploit 或 Nessus 等工具。 |
-oA <file> | 全格式保存 | 同时保存 .nmap, .xml, .gnmap 三种格式。 |
💡 实战组合案例
- 对目标进行深度的漏洞与服务检测(最常用组合):
nmap -T4 -A -v --script vuln <Target>
- 在禁 Ping 环境下快速探测全网段存活的 80/443 端口:
nmap -Pn -p 80,443 --min-rate 1000 192.168.1.0/24
- 使用分片包和诱饵 IP 探测特定服务的版本:
nmap -sV -f -D RND:5 -p 22,80,443 <Target>