Reading Mode

别再一把梭 Nmap 了!真正厉害的人,都在悄悄搭建「自动化情报侦察流水线」

现代安全测试早就不是“单点工具狂按”这么简单了,本文教你把工具变成流程,把流程变成体系,搭建现代自动化的情报侦察流水线。

发布日期

2026/02/24

更新时间

尚未更新

难度

进阶

预估阅读

约 10 分钟

作者

SecLab安全实验室

说实话,我对 Nmap 的感情一点不比你少。它扫端口的岁数,可能比我们里很多人的年纪都大,至今依旧是扫描界的扛把子。

但如果你的整个信息收集流程就是:nmap -A -T4 target.com 一敲,扫完随便点两下,就结束战斗……
那你真的亏大了。
(亏钱、亏洞、亏机会,全看你做的是啥。)

现代安全测试早就不是“单点工具狂按”这么简单了,而是——
把工具变成流程,把流程变成体系,让侦察像自来水一样自动流出来。

今天不教你玩 Nmap 的奇怪参数。
今天聊的是一个真正有用、能救命、能提升你效率的:Recon Pipeline(信息收集流水线)。


工具很强,但你用的方式很弱

安全工具没有坏工具,只有不配合使用的工具。

  • Nmap 扫端口

  • Amass 找子域名

  • Nuclei 探洞

  • FFuF 爆目录

工具都很好,但很多人的使用方式是这样的:

  1. Amass 跑完 → 导出

  2. 丢到 httpx → 再导出

  3. 活跃的子域 → 再丢到各种扫描器

  4. 扫着扫着忘了哪些看过、哪些扫过

  5. 六小时后
    你盯着五个输出文件疯狂 grep,只为了搞清楚某个 admin 面板到底扫过没有

看起来是不是很熟悉?
(别装,你肯定经历过。)

问题不是你不用心,问题是:
人脑不适合做重复、机械的整合工作。
流水线才适合。


一个好的 Recon Pipeline,应该长这样:

1. 模块化

今天你用 Subfinder,明天你想换成新出的更快的工具?
没问题,一换就完事,不会炸掉整个流程。

2. 有状态管理

它知道什么扫过、什么没扫、什么变了、什么新增。
避免重复工作,更不会漏掉关键变化。

3. 数据格式统一

不同工具的输出像不同方言:JSON、CSV、纯文本……
流水线的任务就是全部翻译成你能读、能处理的一种语言。

4. 抗崩溃能力

网络抽风、API 限流、工具崩溃都应该被“优雅处理”,
而不是:
“啊不行了全得重来”。

5. 输出可行动

不是给你一堆数据,而是告诉你:
哪里最值得你马上去看。


先从基础开始:子域名收集(Target Enumeration)

基础不性感,但非常关键。
不要只“找到子域名”,要找到 + 验证 + 分类 + 作为下游输入。

一个简单的基础流程👇

阶段 1:被动枚举

subfinder -d target.com -all -o passive.txt amass enum -passive -d target.com -o amass_passive.txt

阶段 2:主动爆破

puredns bruteforce wordlist.txt target.com -r resolvers.txt -o active.txt

阶段 3:合并 + 去重

cat passive.txt amass_passive.txt active.txt | sort -u > all_subs.txt

阶段 4:验证线上存活

httpx -l all_subs.txt -o live_hosts.txt -title -status-code -tech-detect

这一步做完,很多人就拍屁股走人了。
但真正的流水线思维是:

live_hosts.txt 不是终点,它是下一个流程的起点。


端口扫描:别再无脑全扫了

全量 Nmap -p- 扫几百个子域?
又慢、又吵、又浪费时间。

流水线会根据现有信息“智能决策”:

先抽取 HTTP/HTTPS 响应的主机

cat live_hosts.txt | grep "200\|301\|302\|403" | cut -d' ' -f1 > http_hosts.txt

再做针对性扫描

nmap -iL http_hosts.txt -p 80,443,8080,8443 -sV -oA web_services

其他端口再分批扫描。

然后——
根据扫描结果自动触发后续动作!

例如解析 Nmap 结果:

python parse_nmap.py -i web_services.xml | while read host port; do
    case $port in
        443)
            echo "$host" >> ssl_targets.txt ;;   # SSL 分析
        8080|8000|8888)
            echo "$host:$port" >> api_candidates.txt ;;   # API 入口点
    esac
done

这才叫智能侦察,而不是用 Nmap 在吼。


目录爆破:不是每个站都一样

大部分人这样做:

所有站点 → 同一个大字典 → FFuF 打一遍

这样效率低得可怜。

更聪明的方式是:

根据站点类型,使用不同字典。

例如:

cat live_hosts.txt | grep -i "wordpress" > wordpress_sites.txt

然后:

ffuf -w wp_wordlist.txt -u https://FUZZ.site.com

对于 API 站点:

ffuf -w api_endpoints.txt -u https://api.site.com/FUZZ

甚至你可以根据找到的路径自动生成“猜测路径”:

发现 /api/v1/users → 试试:

  • /api/v2/users

  • /api/v1/admin

  • /api/internal/users

真正的渗透,不是蛮力,是聪明。


真正强的:持续侦察(Continuous Recon)

做漏洞赏金、做攻防演练、做资产监控的都懂:

一次性扫描 ≠ 安全。
持续变化才是威胁的来源。

一个简单的每日任务:

# 每日侦察脚本

DATE=$(date +%Y%m%d)
PREVIOUS=$(ls -t scans/ | head -n 1)

subfinder -d target.com -all -o scans/${DATE}_subs.txt

comm -13 <(sort scans/${PREVIOUS}) <(sort scans/${DATE}_subs.txt) > new_subs.txt

if [ -s new_subs.txt ]; then
    httpx -l new_subs.txt -o scans/${DATE}_new_live.txt
    notify_telegram "发现 $(wc -l < new_subs.txt) 个新增子域"
fi

你睡觉的时候,工具在帮你找机会。
你醒来时,手机提醒你:“喂,有新资产上线。”


数据管理才是最终 BOSS

工具跑多了,你会被淹没在:

  • 子域文件

  • Nmap XML

  • 扫描截图

  • 漏洞报告

  • 临时 notes

所以一定要做数据结构化存储。
例如用 SQLite:

CREATE TABLE subdomains ( domain TEXT, discovered_date TEXT, status_code INT, title TEXT, tech_stack TEXT );

然后你可以:

  • 查找所有带 admin 标题的站

  • 查找过去 7 天新增资产

  • 查找所有 Jenkins、Grafana、SonarQube 实例

不再 grep 到怀疑人生。


最终你会得到一个真正的“流水线”:

  1. 子域发现

  2. 存活验证

  3. 技术栈识别

  4. 服务分类扫描

  5. 目录/接口爆破

  6. 持续监控

  7. 数据统一管理

  8. 自动提醒与输出报告

每一步都自动、可控、可靠、可扩展。


“这些自动化是不是有点麻烦?”

你可能会问。

其实真正麻烦的是——
你不用自动化,还坚持手工做所有事。

现代安全测试不缺工具,缺的是:
一个属于你自己的方法论体系。

流水线不是让你偷懒,而是让你更强。
当你要“重扫全场”,别人还在整理笔记,你只需要一句话:

./run_recon.sh


从小处开始,然后不断扩展

别想着一次性打造“完美的流水线”。

第一步只需要自动化你最烦的那一块。
然后你会越滚越大,越做越顺。

最终,它会成为你的私人侦察工厂。

Nmap渗透测试红队自动化侦察