📖 工具简介
Nmap(Network Mapper) 是 Kali Linux 中最常用的网络扫描工具,可用于:
- 发现主机在线状态
- 探测端口开放情况
- 识别服务版本与操作系统
- 检测安全漏洞
- 绘制网络拓扑
🚀基本命令
- 简单扫描(默认扫描1000个常用端口)
nmap 192.168.1.1
- 扫描整个子网
nmap 192.168.1.0/24
- 多目标扫描
nmap 192.168.1.1 192.168.1.10 10.0.0.1
- 读取IP列表文件
nmap -iL targets.txt
⚙️ 常用参数
端口扫描选项
| 参数 | 说明 |
|---|---|
| -p 80 | 指定扫描端口 |
| -p 1-1000 | 扫描端口范围 |
| -p- | 扫描所有65535端口 |
| -F | 快速扫描(100个常用端口) |
| --top-ports 100 | 扫描前100个最常见端口 |
主机发现选项
| 参数 | 说明 |
|---|---|
| -sn | Ping扫描(不扫描端口) |
| -Pn | 跳过主机发现,直接端口扫描 |
| -PS | TCP SYN发现 |
| -PU | UDP发现 |
| -PR | ARP发现(内网最常用) |
输出选项
| 参数 | 说明 |
|---|---|
| -oN file.txt | 正常格式输出 |
| -oX file.xml | XML格式输出(可导入其他工具) |
| -oG file.txt | Grepable格式输出 |
| -oA basename | 输出所有格式 |
扫描技术
| 参数 | 说明 |
|---|---|
| -sS | TCP SYN扫描(半开扫描,需root) |
| -sT | TCP连接扫描 |
| -sU | UDP扫描 |
| -sV | 版本探测 |
| -O | 操作系统检测 |
| -A | 全面扫描(OS+版本+脚本) |
💡 实战技巧
1. 隐蔽扫描(躲避IDS)
nmap -sS -T stealth -p- -D 10.0.0.1,10.0.0.2,ME -f target.com
-D 伪造多个源IP,-f 分片数据包
2. 快速端口发现
nmap -sn -PR -oG - | grep "Up" | cut -d" " -f2
内网快速发现所有在线主机
3. 服务版本精准识别
nmap -sV --version-intensity 0-9 目标
强度0-9,越高越准确但更慢
4. 漏洞检测脚本
nmap --script=vuln -p- 目标
使用NSE脚本检测常见漏洞
5. 绕过防火墙
nmap --script=firewalk -p- 目标
nmap --data-length 50 -f 目标 # 随机数据填充
6. 输出到文件并查看
nmap -oN scan_result.txt -p 22,80,443 192.168.1.0/24
grep "open" scan_result.txt # 只看开放端口
📝 常用组合推荐
内网主机发现:
nmap -sn -PR 192.168.1.0/24 -oG -
全面服务枚举:
nmap -sV -sC -p- -A -oA full_scan 目标
快速端口筛查:
nmap -F -sV -T4 -oN quick.txt 目标