介绍
# Nmap Recon
使用 Nmap 进行网络侦察和端口扫描。当被要求扫描目标、查找开放端口、检测服务、检查漏洞或执行网络侦察时使用。
## 触发词
- "scan [target]", "port scan", "nmap", "what ports are open", "recon [target]", "service detection", "vulnerability scan"
## 要求
- 必须安装 `nmap`(Kali 上默认安装,也可通过包管理器获取) - 需要 Root/sudo 权限以进行 SYN 扫描和操作系统检测
## 用法
### 快速扫描(Top 1000 端口) ```bash nmap -sC -sV -oA scan_$(date +%Y%m%d_%H%M%S) TARGET ```
### 全端口扫描 ```bash nmap -p- -sC -sV -oA fullscan_$(date +%Y%m%d_%H%M%S) TARGET ```
### 快速扫描(快速检查) ```bash nmap -F -T4 TARGET ```
### 隐蔽 SYN 扫描(需要 root) ```bash sudo nmap -sS -sV -O -oA stealth_$(date +%Y%m%d_%H%M%S) TARGET ```
### UDP 扫描(Top 100 端口) ```bash sudo nmap -sU --top-ports 100 -oA udp_$(date +%Y%m%d_%H%M%S) TARGET ```
### 漏洞扫描 ```bash nmap --script vuln -oA vulnscan_$(date +%Y%m%d_%H%M%S) TARGET ```
### 激进扫描(操作系统、版本、脚本、路由追踪) ```bash nmap -A -T4 -oA aggressive_$(date +%Y%m%d_%H%M%S) TARGET ```
## 输出解析
使用 `-oA` 输出多种格式的 Nmap 结果: - `.nmap` - 人类可读格式 - `.xml` - 机器可解析格式 - `.gnmap` - 可被 Grep 的格式
### 从可 Grep 输出中解析开放端口: ```bash grep "open" scan.gnmap | awk -F'[/]' '{print $1}' | tr ',' '\n' | sort -u ```
### 提取服务版本: ```bash grep -E "^[0-9]+/" scan.nmap | awk '{print $1, $3, $4}' ```
### 从 XML 中获取快速摘要: ```bash xmllint --xpath "//port[@state='open']" scan.xml 2>/dev/null ```
## 常见扫描配置
| 配置 | 命令 | 用例 | |---------|---------|----------| | 快速 | `nmap -F -T4` | 快速初始侦察 | | 标准 | `nmap -sC -sV` | 服务检测 + 默认脚本 | | 完整 | `nmap -p- -sC -sV` | 全部 65535 个端口 | | 隐蔽 | `sudo nmap -sS -T2` | 规避性扫描 | | 漏洞 | `nmap --script vuln` | 漏洞检测 | | 激进 | `nmap -A -T4` | 完整枚举 |
## 脚本分类
```bash # List available scripts ls /usr/share/nmap/scripts/
# Run specific category nmap --script=default,safe TARGET nmap --script=vuln TARGET nmap --script=exploit TARGET nmap --script=auth TARGET
# Run specific script nmap --script=http-title TARGET nmap --script=smb-vuln* TARGET ```
## 目标规范
```bash # Single host nmap 192.168.1.1
# CIDR range nmap 192.168.1.0/24
# Range nmap 192.168.1.1-254
# From file nmap -iL targets.txt
# Exclude hosts nmap 192.168.1.0/24 --exclude 192.168.1.1 ```
## 时序模板
- `-T0` 偏执(规避 IDS) - `-T1` 鬼祟(规避 IDS) - `-T2` 礼貌(慢速) - `-T3` 正常(默认) - `-T4` 激进(快速) - `-T5` 疯狂(极快,可能会遗漏端口)
## 需要授权
⚠️ **仅扫描您拥有的目标或获得明确书面授权进行测试的目标。**
切勿扫描: - 未经许可的公共基础设施 - 您不控制的网络 - 未经批准的生产系统
## 示例工作流
```bash # 1. Quick scan to find live hosts nmap -sn 192.168.1.0/24 -oA live_hosts
# 2. Fast port scan on discovered hosts nmap -F -T4 -iL live_hosts.gnmap -oA quick_ports
# 3. Deep scan interesting hosts nmap -p- -sC -sV -oA deep_scan TARGET
# 4. Vulnerability scan nmap --script vuln -oA vuln_scan TARGET ```