如何写出会思考的安全智能体:FofaMap AI决策链与Prompt Engineering实战 【免费下载链接】FofaMap一款证据驱动的 FOFA 资产测绘智能体支持自然语言侦察、AI 反思、CLI / MCP / Skill / REST API以及经人工审批的 Nuclei 扫描。项目地址https://gitcode.com/gh_mirrors/fo/FofaMap点击查看免费下载你有没有想过如何把一个冷冰冰的资产测绘工具变成能听懂人话、还会自己思考的安全智能体开源项目 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 个通达 OAhost_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.pyMCP 服务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 分钟快速上手 FofaMapgit 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 扫描。项目地址https://gitcode.com/gh_mirrors/fo/FofaMap点击查看免费下载相关推荐Prompt Engineering实用技巧大全Zero-shot、Few-shot与思维链完整清单Ai-Engineering-RoadmapPrompt 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 服务器运维后端运维监控大盘上一篇Gamedge 开源项目完整指南从入门到精通的问题解决方案下一篇Compose RichText 项目常见问题解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考