关于 scanning-network-with-nmap-advanced
面向安全团队的高级 Nmap 技能,用于执行经授权的网络评估。内容涵盖主机发现、服务与漏洞扫描、规避技术及结构化报告。
主要功能
- 01分层主机发现
- 02TCP 与 UDP 端口扫描
- 03服务与操作系统检测
- 04NSE 漏洞检查
- 05防火墙规避技术
- 06结构化扫描报告
适用场景
- 01盘点企业网络资产
- 02查找过时服务与漏洞
- 03在授权评估中测试网络防御
- 04为漏洞管理流程准备扫描数据
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill scanning-network-with-nmap-advanced安装后在 Claude Code 中输入/scanning-network-with-nmap-advanced确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEreferences/api-reference.mdscripts/agent.py详细介绍
使用 Nmap 高级技术扫描网络
何时使用
- 在经授权的评估期间,对大型企业网络执行全面的资产发现
- 枚举服务版本和配置,以识别过时或存在漏洞的软件
- 在经授权的渗透测试期间,使用扫描规避技术绕过防火墙规则和 IDS
- 使用 Nmap 脚本引擎(NSE)编写自动化漏洞检查脚本
- 生成结构化扫描输出,以便集成到漏洞管理工作流中
请勿使用于未经明确书面授权的网络、未经批准在高峰时段的生产系统上使用,或通过激进的扫描时序执行拒绝服务攻击。
前置条件
- 已安装 Nmap 7.90+(使用
nmap --version验证) - 具备 root/sudo 权限,以进行 SYN 扫描、操作系统检测和原始数据包技术
- 书面授权,其中明确指定范围内的 IP 地址段以及任何排除的主机
- 能够访问目标地址段的网络(VPN、直接连接或跳板主机)
- 熟悉 TCP/IP 协议和常见端口分配
工作流
第 1 步:使用多种探测进行主机发现
使用分层发现,即使 ICMP 被阻止也能找到活动主机:
# ARP discovery for local subnet (most reliable on LAN)
nmap -sn -PR 192.168.1.0/24 -oA discovery_arp
# Combined ICMP + TCP + UDP probes for remote networks
nmap -sn -PE -PP -PS21,22,25,80,443,445,3389,8080 -PU53,161,500 10.0.0.0/16 -oA discovery_combined
# List scan to resolve DNS names without sending packets to targets
nmap -sL 10.0.0.0/24 -oN dns_resolution.txt
将结果合并到活动主机文件中:
grep "Host:" discovery_combined.gnmap | awk '{print $2}' | sort -t. -k1,1n -k2,2n -k3,3n -k4,4n > live_hosts.txt
第 2 步:结合时序和性能调优进行端口扫描
# Full TCP SYN scan with optimized timing
nmap -sS -p- --min-rate 5000 --max-retries 2 -T4 -iL live_hosts.txt -oA full_tcp_scan
# Top 1000 UDP ports with version detection
nmap -sU --top-ports 1000 --version-intensity 0 -T4 -iL live_hosts.txt -oA udp_scan
# Specific port ranges for targeted assessment
nmap -sS -p 1-1024,3306,5432,6379,8080-8090,9200,27017 -iL live_hosts.txt -oA targeted_ports
第 3 步:服务版本检测和操作系统指纹识别
# Aggressive service detection with version intensity
nmap -sV --version-intensity 5 -sC -O --osscan-guess -p <open_ports> -iL live_hosts.txt -oA service_enum
# Specific service probing for ambiguous ports
nmap -sV --version-all -p 8443 --script ssl-cert,http-title,http-server-header <target> -oN service_detail.txt
第 4 步:NSE 漏洞扫描
# Run vulnerability detection scripts
nmap --script vuln -p <open_ports> -iL live_hosts.txt -oA vuln_scan
# Target specific vulnerabilities
nmap --script smb-vuln-ms17-010,smb-vuln-ms08-067 -p 445 -iL live_hosts.txt -oA smb_vulns
nmap --script ssl-heartbleed,ssl-poodle,ssl-ccs-injection -p 443,8443 -iL live_hosts.txt -oA ssl_vulns
# Brute force default credentials on discovered services
nmap --script http-default-accounts,ftp-anon,ssh-auth-methods -p 21,22,80,8080 -iL live_hosts.txt -oA default_creds
第 5 步:防火墙规避技术
# Fragment packets to evade simple packet inspection
nmap -sS -f --mtu 24 -p 80,443 <target> -oN fragmented_scan.txt
# Use decoy addresses to obscure scan origin
nmap -sS -D RND:10 -p 80,443 <target> -oN decoy_scan.txt
# Spoof source port as DNS (53) to bypass poorly configured firewalls
nmap -sS --source-port 53 -p 1-1024 <target> -oN spoofed_port_scan.txt
# Idle scan using a zombie host (completely stealthy)
nmap -sI <zombie_host> -p 80,443,445 <target> -oN idle_scan.txt
# Slow scan to evade IDS rate-based detection
nmap -sS -T1 --max-rate 10 -p 1-1024 <target> -oA stealth_scan
第 6 步:输出解析和报告
# Convert XML output to HTML report
xsltproc full_tcp_scan.xml -o scan_report.html
# Extract open ports per host from grepable output
grep "Ports:" full_tcp_scan.gnmap | awk -F'Ports: ' '{print $1 $2}' > open_ports_summary.txt
# Parse XML with nmap-parse-output for structured data
nmap-parse-output full_tcp_scan.xml hosts-to-port 445
# Import into Metasploit database
msfconsole -q -x "db_import full_tcp_scan.xml; hosts; services; exit"
# Generate CSV for vulnerability management tools
nmap-parse-output full_tcp_scan.xml csv > scan_results.csv
关键概念
| 术语 | 定义 |
|---|---|
| SYN 扫描(-sS) | 半开放 TCP 扫描,发送 SYN 数据包并分析响应,而不完成三次握手,因此比 connect 扫描更快、更隐蔽 |
| NSE(Nmap 脚本引擎) | Nmap 内置的基于 Lua 的脚本框架,支持漏洞检测、暴力破解、服务发现和自定义自动化 |
| 时序模板(-T0 到 -T5) | 预定义的扫描速度配置,从 Paranoid(T0)到 Insane(T5),控制探测并行度、超时值和探测间隔延迟 |
| 空闲扫描(-sI) | 高级扫描技术,利用僵尸主机的 IP ID 序列对目标进行端口扫描,而不从扫描器自身的 IP 地址发送数据包 |
| 版本探测强度 | 控制 Nmap 发送多少探测来确定服务版本,范围从 0(轻量)到 9(所有探测),以速度换取准确性 |
| Grepable 输出(-oG) | 传统 Nmap 输出格式,专为使用 grep、awk 和 sed 轻松解析而设计,用于对扫描结果进行脚本化分析 |
工具与系统
- Nmap 7.90+:核心扫描引擎,支持 NSE 脚本、操作系统检测、版本探测和多种输出格式
- nmap-parse-output:社区工具,用于将 Nmap XML 输出解析为结构化格式(CSV、JSON、主机列表)
- Ndiff:Nmap 实用程序,用于比较两次扫描结果,以识别网络状态随时间的变化
- Zenmap:官方 Nmap GUI,提供可视化网络拓扑映射和扫描配置管理
- Metasploit Framework:导入 Nmap XML 输出,将扫描结果与漏洞利用模块直接关联
常见场景
场景:企业网络资产发现与漏洞基线
背景:某安全团队需要为覆盖 10.0.0.0/8、拥有约 5,000 台活跃主机的企业网络建立漏洞基线。扫描必须在周末维护窗口内完成,并将网络中断降到最低。
方法:
- 使用 ARP(本地子网)、TCP SYN(端口 22、80、443、445、3389)和 ICMP echo 探测,在所有 /24 子网上执行分层主机发现
- 对发现的主机执行完整 TCP SYN 扫描,使用
--min-rate 5000和-T4,以便在窗口内完成 - 对所有开放端口运行服务版本检测和默认 NSE 脚本
- 针对关键服务(SMB、SSL/TLS、HTTP)执行定向 NSE 漏洞脚本
- 解析 XML 输出,生成按子网划分的 CSV 报告,并导入漏洞管理平台
- 安排 Ndiff 与未来扫描进行对比,以跟踪修复进度
常见陷阱:
- 在拥塞网段上将
--min-rate设置得过高,导致丢包和漏报 - 在生产网络上使用
-T5(Insane)时序,可能压垮较旧的网络设备 - 忘记扫描 UDP 端口,遗漏 SNMP(161)、DNS(53)和 TFTP(69)等关键服务
- 未以 XML 格式保存输出(
-oX或-oA),导致下游工具集成所需的结构化数据丢失
输出格式
## Nmap Scan Summary
**Scan Profile**: Full TCP + Top 200 UDP + Service Enumeration
**Target Range**: 10.10.0.0/16
**Hosts Discovered**: 347 live hosts
**Scan Duration**: 2h 14m
### Critical Findings
| Host | Port | Service | Version | Vulnerability |
|------|------|---------|---------|---------------|
| 10.10.5.23 | 445/tcp | SMB | Windows Server 2012 R2 | MS17-010 (EternalBlue) |
| 10.10.8.100 | 443/tcp | Apache httpd | 2.4.29 | CVE-2021-41773 (Path Traversal) |
| 10.10.12.5 | 3306/tcp | MySQL | 5.6.24 | CVE-2016-6662 (RCE) |
| 10.10.3.77 | 161/udp | SNMP | v2c | Public community string |
### Recommendations
1. Patch MS17-010 on 10.10.5.23 immediately -- Critical RCE vulnerability
2. Upgrade Apache httpd to 2.4.58+ on 10.10.8.100
3. Upgrade MySQL to 8.0.x on 10.10.12.5 and restrict bind address
4. Change SNMP community strings from "public" on 10.10.3.77
评论
支持 Markdown