【免费下载链接】FofaMap
一款证据驱动的 FOFA 资产测绘智能体:支持自然语言侦察、AI 反思、CLI / MCP / Skill / REST API,以及经人工审批的 Nuclei 扫描。
你有没有想过,如何把一个冷冰冰的资产测绘工具,变成能听懂人话、还会"自己思考"的安全智能体?开源项目 FofaMap 给出了一个可复制的答案:它是一款证据驱动的 FOFA 资产测绘智能体,核心能力来自一条四阶段的AI 决策链,以及背后一整套Prompt Engineering实战技巧。这篇文章带你逐步拆解:从"一句话需求"到"完整安全报告",一个会反思、会决策的安全智能体到底是怎么写出来的,新手也能看懂门道。
🤔 为什么大多数 FOFA 工具"不会思考"
传统 FOFA 查询工具的流程是线性的:你输入语法 → 发请求 → 返回结果。问题在于:
- 0 Results 就结束:语法差一个字符,工具只会冷冰冰显示
0 Results,而原因可能只是region写得太严、域名后缀猜错了; - 没有判断力:要不要跑漏洞扫描、用什么参数全凭人工拍脑袋,往往"无脑全量扫";
- 数据与结论分离:查到的资产只是一张表,分析、报告还得自己另做。
真正的安全智能体需要一条完整闭环:理解意图 → 生成语法 → 执行查询 → 失败反思 → 修正重试 → 基于证据决策 → 人工审批 → 证据链报告。这条闭环,就是本文重点拆解的"AI 决策链"。
🧠 拆解 FofaMap 的 AI 决策链:从一句话到完整报告
整条决策链集中在 core/ai.py,分为 4 个阶段,每个阶段对应一次独立的 LLM 调用。
阶段一:战略路由——让 AI"做选择题"而不是"猜"
当你输入"帮我找一下 bing.com 所有的子域名,并扫描一下",FofaMap 并不是让模型自由发挥写查询,而是先让它从固定的动作路由表中输出"战法"。路由表只有 5 个选项:
| 动作 | 含义 | 典型场景 |
|---|---|---|
fofa_search | 资产清单查询(默认) | "帮我找 10 个通达 OA" |
host_query | 单体 IP 深度画像 | "分析 8.8.8.8 开了哪些端口" |
stat_query | 统计聚合 / 分布排名 | "统计全球 Redis 端口分布" |
icon_query | 图标逆向找同类 | "找和这个图标一样的网站" |
bat_query | 批量文件查询 | "按 targets.txt 逐条查询" |
这一阶段的 Prompt 核心设计(实现见 core/ai.py)有三点:枚举全部路由选项 + 每个选项配 1~2 个场景示例 + 强制纯 JSON 返回(含action / queries / fields / run_nuclei字段)。把模型的发挥空间压缩成"结构化选择题",下游代码才能确定性地执行——这是 Prompt Engineering 的第一课。
阶段二:自我反思——让智能体真正"会想"的关键
决策链里最精彩的环节是自我反思机制。在 core/handler.py 中,当连续多条查询都返回 0 结果时,程序会把"失败证据"(用户原始意图 + 全部失败查询语句)交给 AI,让它分析原因并生成 3 条更宽泛的修正查询。
反思 Prompt 给出了 4 条明确的修正策略,非常值得借鉴:
- 保守修正:只去掉最容易出错的 1 个条件(如 region / city),保留核心指纹;
- 模糊匹配:用
body=或title=替换host=,扩大搜索范围; - 极度宽泛:只保留最核心关键词,作为最后兜底;
- 域名猜想:猜
.edu.cn没结果,就换.cn/.com,或直接查中文关键词。
这是典型的"反思循环":把失败结果作为下一轮推理的输入,而不是让模型一次性作答就完事。对应实现为 core/ai.py 中的reflect_and_retry方法。
阶段三:基于证据的扫描决策——值得扫才扫
查到资产后,AI 不会"无脑全量扫"。core/ai.py 的generate_summary会把**实际资产样本(前 30 条)**作为证据喂给模型,让它完成技术栈识别:
- 发现
Java / Spring / Shiro→ 推荐-tags spring,shiro,java; - 发现
ThinkPHP / Laravel→ 推荐-tags thinkphp,laravel; - 用户明确查 Log4j → 必须包含
-tags log4j或对应 CVE 编号; - 目标少且重要 → 提升扫描速率
-bs 25 -rl 150。
AI 会输出"资产画像总结 + 推荐 Nuclei 参数",但不直接执行:CLI 会弹出三个选项——执行推荐扫描 / 手动修改参数 / 仅生成报告。这种Human-in-the-loop(人工审批)设计,是安全智能体必须守住的底线。
阶段四:证据链报告——让数据说话,绝不编造
最后的报告同样是"证据驱动"。core/ai.py 的generate_vuln_report会取两份证据——资产测绘样本和Nuclei 扫描日志(只保留 critical / high / medium / low 漏洞行)——再让模型撰写综合评估报告。Prompt 中特意约束:"如果是空日志,不要捏造漏洞";若未发现漏洞,则重点分析暴露面风险(如 3389 / 22 端口的暴力破解风险)。
"输入证据 + 输出约束 + 反编造条款",三者齐备,才是一份可靠的报告类 Prompt。
✍️ 从 FofaMap Prompt 里提炼的 6 个实战技巧
把上述 4 个阶段浓缩一下,就是 6 条可以直接复用到自己智能体里的技巧:
- 约束选择优于自由生成:枚举全部合法动作并配示例,让模型"选择 + 填空",而不是"自由发挥";
- 锁定输出格式:明确要求"JSON Only",并用
response_format: json_object参数双保险(core/ai.py); - 给模型喂"证据":失败查询、真实资产样本、扫描日志——输入越具体,输出越专业,幻觉越少;
- 不同任务配不同 temperature:战略路由用 0.2(要稳)、反思修正用 0.4(要敢)、报告撰写用 0.3——参数也是 Prompt 的一部分;
- 注入边界与权限:FofaMap 把 FOFA VIP 等级的字段权限表直接写进 Prompt,模型会自动避开越权字段,这是让智能体"懂规矩"的通用做法;
- 高危动作人工拍板:漏洞扫描只"推荐"不"执行",把执行权留给人。
🔌 让智能体走出终端:CLI、MCP 与多模型配置
安全智能体的价值不止于命令行,FofaMap 提供了三种接入方式:
- CLI 一句话模式:
python3 fofamap.py -ai "帮我收集一下 XX 学校的子域名网站,并扫描一下",全链路自动决策(入口见 fofamap.py); - MCP 服务:mcp_server.py 暴露了
search_assets、get_host_aggregation、ai_security_consultant等 7 个标准 MCP 工具,可接入 Cursor、LM Studio 或任意 MCP 客户端,让你的 AI 助手直接"调用" FofaMap; - 多模型可配置:config/settings.yaml 支持 DeepSeek / OpenAI / Ollama / LM Studio,一行切换,整条决策链甚至可以在本地模型上跑起来。
🚀 5 分钟快速上手 FofaMap
git clone https://gitcode.com/gh_mirrors/fo/FofaMap cd FofaMap pip3 install -r requirements.txt python3 fofamap.py init运行init向导,按提示填入 FOFA 账号与 AI 模型配置(自动保存到 config/settings.yaml),然后试一句:
python3 fofamap.py -ai "帮我查一下美国哈佛大学的子域名网站,并扫描一下"你会亲眼看到 AI 路由、查询执行、反思重试、扫描决策、报告生成一气呵成。如需 Nuclei 扫描,将nuclei可执行文件放入项目根目录或加入 PATH(定位逻辑见 core/scanner.py)。
🏁 总结
会思考的安全智能体,核心不在于"更大的模型",而在于一条有证据、会反思、受人工控制的决策链。FofaMap 的"战略路由 → 自我反思 → 证据决策 → 证据链报告"四阶段,加上 6 条 Prompt 技巧,就是一套任何人可以照着复用的完整模板。
FofaMap 由 Hx0 战队开发维护:
⚠️ 免责声明:本工具仅面向合法授权的企业安全建设场景(如内部攻防演练、资产管理)。请确保行为符合法律法规,并已获取目标所有者授权。
【免费下载链接】FofaMap
一款证据驱动的 FOFA 资产测绘智能体:支持自然语言侦察、AI 反思、CLI / MCP / Skill / REST API,以及经人工审批的 Nuclei 扫描。
相关推荐
Prompt Engineering实用技巧大全:Zero-shot、Few-shot与思维链完整清单(Ai-Engineering-Roadmap)
Prompt Engineering实用技巧大全:Zero shot、Few shot与思维链完整清单(Ai Engineering Roadmap) Prom
教程人工智能大模型让模型学会"思考":Qwen3-4B_rai_1.8.0_hybrid 对话模板与工具调用 Prompt 写法实战
让模型学会"思考":Qwen3 4B_rai_1.8.0_hybrid 对话模板与工具调用 Prompt 写法实战 Qwen3 4B_rai_1.8.0_hyb
用 1Panel 从零部署 WordPress 博客的 5 分钟上手:一键安装、SSL 证书与备份配置
用 1Panel 从零部署 WordPress 博客的 5 分钟上手:一键安装、SSL 证书与备份配置 1Panel 是一款现代化的开源 Linux 服务器运维
后端运维监控大盘
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考