一句话:资产测绘的瓶颈从来不是工具,而是"这个域名到底属不属于目标"这个判断。

一、传统资产测绘的三个痛点

  1. 字典 brute-force 效率低:几十万条字典跑下去,命中的往往还是那几个常见前缀。
  2. 测绘语法难写:FOFA/Hunter/Quake 各有各的语法,写一条精确的 body 匹配要调半小时。
  3. 归属判断靠人xxx-test.example.comxxx.example.com 可能属于不同实体,工具分不清。

AI 恰好能补上这三块。

二、用 AI 生成测绘语法

把目标业务描述丢给 AI,让它产出多平台语法:

# 任务
目标:某省级政务云平台,官网 example.gov.cn,
特征:页面底部有"技术支持:XX科技",使用统一登录门户。

# 要求
分别生成 FOFA、Hunter、Quake 查询语法,用于发现:
1. 该单位的其他子域名资产
2. 使用相同技术支持商的其他单位(供应链视角)
3. 相同 favicon 的资产(icon hash 测绘)

# 输出
每条语法说明用途,并给出可能命中量级预估。

AI 会输出类似:

FOFA:  body="技术支持:XX科技" && country="CN"
Hunter: web.body="技术支持:XX科技" && ip.country="CN"
Quake:  body:"技术支持:XX科技"

比手写快得多,而且它会主动补充你没想过的角度(比如证书序列号、ICP 备案号反查)。

三、icon hash 测绘:AI 帮你算

favicon hash 是资产测绘里命中率极高的手段。传统做法要自己写脚本算 mmh3。

让 AI 直接给你脚本:

# 计算 favicon 的 mmh3 hash(FOFA 用)
import mmh3
import requests
import base64

def favicon_hash(url):
    r = requests.get(url, timeout=10, verify=False)
    # FOFA 的算法:先 base64 编码,再对换行处理后的内容取 mmh3
    favicon = base64.encodebytes(r.content)
    return mmh3.hash(favicon)

print(favicon_hash("https://example.gov.cn/favicon.ico"))

拿到 hash 后去 FOFA 查 icon_hash="xxxxx",常能一次捞出几十个同框架资产。

四、子域名收集的 AI 增强流程

4.1 智能字典生成

不要用通用字典。让 AI 根据目标业务生成业务相关字典

# 任务
目标:某大型医院(三甲),主域 hospital.com
业务包含:HIS 系统、LIS 检验、PACS 影像、OA、预约挂号、微信公众号、
        医保对接、科研平台、教学系统。

# 要求
生成 300 个高概率子域名前缀(中英文),按业务模块分组,
标注每个前缀的推测用途。优先输出医疗行业常见命名习惯。

AI 会产出 hislispacsyiyuanguahaoyibaoky(科研)、jwc(教务)这类通用字典里没有的前缀。

4.2 结果智能归类

跑完爆破后,把结果丢给 AI 聚类:

# 输入
以下是从目标收集到的 1200 个子域名(附 HTTP 标题、状态码、IP)

# 任务
1. 按业务系统聚类(门户/后台/API/测试环境/文档站)
2. 标记"高价值目标":含 admin/后台/测试/未授权接口特征
3. 标记"疑似不属于本单位"的域名(外包、供应商)
4. 输出 Markdown 表格,按价值排序

这一步把原始数据变成可执行的目标清单,价值极高。

五、把测绘做成自动化流水线

用 MCP 把工具串起来,让 LLM 编排:

# 伪代码:MCP 驱动的资产测绘 Agent
steps = [
    ("subfinder", "-d {domain} -all"),
    ("httpx", "-l {subs} -title -status-code -tech-detect"),
    ("fofa_api", "domain=\"{domain}\""),
    ("ai_analyze", "聚类并输出高价值目标"),
]

for tool, args in steps:
    result = call_mcp_tool(tool, args.format(**ctx))
    ctx[tool] = result
    ctx["summary"] = llm.summarize(ctx)  # 每步让 AI 压缩上下文

关键设计:每步结束让 AI 压缩结果,否则上下文很快爆掉。

六、容易被忽略的 AI 测绘角度

  • ICP 备案反查:让 AI 从备案号提取主体,反查同主体下所有域名
  • SSL 证书 SAN 字段:AI 解析证书里的所有域名,常含未公开资产
  • 招聘信息 OSINT:目标企业的 JD 里会暴露内部系统名称("熟悉 XX 系统者优先")
  • GitHub 泄露:让 AI 分析目标组织的仓库,找硬编码域名和 IP
  • 微信公众号/小程序:小程序包里的接口域名往往没做资产梳理

七、Must-have:结果去重与验证

AI 生成的资产清单必须验证

# 用 httpx 批量验证存活 + 抓标题
cat subs.txt | httpx -silent -title -status-code -tech-detect \
  -o verified.txt

# 用 AI 判断哪些标题是"默认页/错误页"(应剔除)

AI 判断"这个标题是真实业务页还是 Nginx 默认页"的准确率很高,能省掉大量人工筛选。

八、小结

资产测绘是 AI 落地渗透测试最成熟的场景:它本质是一个"大量数据 + 模式判断"的任务,正好落在 AI 的甜蜜区。 但记住两条:

  1. AI 生成的资产清单必须实测存活验证
  2. 归属判断(是否属于目标)最终要人工确认,这是法律边界

下一篇:用 AI 辅助 Fuzz,生成高质量 Payload。


系列文章:AI 渗透测试与漏洞挖掘实战