executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
scanning-network-with-nmap-advanced使用 Nmap 的脚本引擎、时序控制、规避技术和输出解析,对授权目标网络执行高级网络侦察, 发现主机、枚举服务、检测漏洞并识别操作系统。
Independent GitHub snapshot · Automated classification · Original documentation governs
不要在未获明确书面授权的网络上使用,不要在未经批准的情况下于业务高峰期对生产系统操作,不要通过激进扫描时序执行拒绝服务攻击。
nmap --version 验证)采用分层发现策略,即使 ICMP 被封锁也能找到在线主机:
# ARP 发现本地子网(局域网中最可靠)
nmap -sn -PR 192.168.1.0/24 -oA discovery_arp
# 组合 ICMP + TCP + UDP 探测远程网络
nmap -sn -PE -PP -PS21,22,25,80,443,445,3389,8080 -PU53,161,500 10.0.0.0/16 -oA discovery_combined
# 列表扫描:仅解析 DNS 名称,不向目标发送数据包
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
# 使用优化时序进行全端口 TCP SYN 扫描
nmap -sS -p- --min-rate 5000 --max-retries 2 -T4 -iL live_hosts.txt -oA full_tcp_scan
# Top 1000 UDP 端口扫描(含版本检测)
nmap -sU --top-ports 1000 --version-intensity 0 -T4 -iL live_hosts.txt -oA udp_scan
# 针对特定端口范围进行定向评估
nmap -sS -p 1-1024,3306,5432,6379,8080-8090,9200,27017 -iL live_hosts.txt -oA targeted_ports
# 使用版本强度进行激进服务检测
nmap -sV --version-intensity 5 -sC -O --osscan-guess -p <open_ports> -iL live_hosts.txt -oA service_enum
# 针对模糊端口进行特定服务探测
nmap -sV --version-all -p 8443 --script ssl-cert,http-title,http-server-header <target> -oN service_detail.txt
# 运行漏洞检测脚本
nmap --script vuln -p <open_ports> -iL live_hosts.txt -oA vuln_scan
# 针对特定漏洞
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
# 对发现的服务暴力破解默认凭证
nmap --script http-default-accounts,ftp-anon,ssh-auth-methods -p 21,22,80,8080 -iL live_hosts.txt -oA default_creds
# 分片数据包以规避简单数据包检测
nmap -sS -f --mtu 24 -p 80,443 <target> -oN fragmented_scan.txt
# 使用诱饵地址混淆扫描来源
nmap -sS -D RND:10 -p 80,443 <target> -oN decoy_scan.txt
# 伪装源端口为 DNS(53)以绕过配置不当的防火墙
nmap -sS --source-port 53 -p 1-1024 <target> -oN spoofed_port_scan.txt
# 空闲扫描(使用僵尸主机,完全隐蔽)
nmap -sI <zombie_host> -p 80,443,445 <target> -oN idle_scan.txt
# 慢速扫描以规避 IDS 基于速率的检测
nmap -sS -T1 --max-rate 10 -p 1-1024 <target> -oA stealth_scan
# 将 XML 输出转换为 HTML 报告
xsltproc full_tcp_scan.xml -o scan_report.html
# 从可检索输出中提取每台主机的开放端口
grep "Ports:" full_tcp_scan.gnmap | awk -F'Ports: ' '{print $1 $2}' > open_ports_summary.txt
# 使用 nmap-parse-output 解析 XML 获取结构化数据
nmap-parse-output full_tcp_scan.xml hosts-to-port 445
# 导入 Metasploit 数据库
msfconsole -q -x "db_import full_tcp_scan.xml; hosts; services; exit"
# 生成 CSV 供漏洞管理工具使用
nmap-parse-output full_tcp_scan.xml csv > scan_results.csv
| 术语 | 定义 |
|---|---|
| SYN 扫描(-sS) | 半开放 TCP 扫描,发送 SYN 包并分析响应,不完成三次握手,比全连接扫描更快更隐蔽 |
| NSE(Nmap 脚本引擎) | Nmap 内置的基于 Lua 的脚本框架,支持漏洞检测、暴力破解、服务发现和自定义自动化 |
| 时序模板(-T0 至 -T5) | 预定义扫描速度配置,从偏执(T0)到疯狂(T5),控制探测并行度、超时值和探测间隔 |
| 空闲扫描(-sI) | 高级扫描技术,利用僵尸主机的 IP ID 序列对目标进行端口扫描,无需从扫描器自身 IP 发送数据包 |
| 版本强度 | 控制 Nmap 为确定服务版本发送的探测数量,从 0(轻量)到 9(全部探测),以速度换精度 |
| 可检索输出(-oG) | Nmap 历史输出格式,专为使用 grep、awk 和 sed 进行脚本化分析而设计 |
背景:安全团队需要为覆盖 10.0.0.0/8、约有 5,000 台活跃主机的企业网络建立漏洞基线。扫描须在周末维护窗口内完成,同时将网络影响降至最低。
方法:
--min-rate 5000 和 -T4 进行全端口 TCP SYN 扫描,确保在维护窗口内完成注意事项:
--min-rate 设置过高,导致数据包丢失和漏报-T5(疯狂)时序,可能导致老旧网络设备过载-oX 或 -oA)保存输出,导致结构化数据无法供下游工具使用## Nmap 扫描摘要
**扫描配置**:全端口 TCP + Top 200 UDP + 服务枚举
**目标范围**:10.10.0.0/16
**发现主机**:347 台在线主机
**扫描时长**:2 小时 14 分钟
### 严重发现
| 主机 | 端口 | 服务 | 版本 | 漏洞 |
|------|------|------|------|------|
| 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(路径遍历) |
| 10.10.12.5 | 3306/tcp | MySQL | 5.6.24 | CVE-2016-6662(远程代码执行) |
| 10.10.3.77 | 161/udp | SNMP | v2c | 公共团体字符串 |
### 建议
1. 立即修补 10.10.5.23 的 MS17-010——严重远程代码执行漏洞
2. 将 10.10.8.100 的 Apache httpd 升级至 2.4.58+
3. 将 10.10.12.5 的 MySQL 升级至 8.0.x 并限制绑定地址
4. 更改 10.10.3.77 的 SNMP 团体字符串(不使用"public")