Files

1 line
572 KiB
JSON
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"repo": "asaotomo/fofamap", "files": {"README.md": {"6156752ff1d6e551934718568bb92deba7a6eb88": {"t": 1785674033.192924, "n": 16501, "h": "d860107cb1de6163", "c": "# 🗺️ FofaMap v2.0 — Platinum Agent Edition\n> 🧠 **全网首个支持 MCP 协议 + AI 自我反思机制的红队资产测绘智能体** \nSelf-Reflecting AI Queries → MCP Protocol Integration → Intelligent Vulnerability Scanning\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://img.shields.io/badge/Python-3.10+-blue.svg)\n![](https://img.shields.io/badge/Version-2.0.0-blue.svg)\n![](https://img.shields.io/badge/AI-Self--Reflecting-blueviolet.svg)\n![](https://img.shields.io/badge/MCP-AI%20Ready-purple.svg)\n![](https://img.shields.io/badge/Nuclei-Integrated-orange.svg)\n![](https://img.shields.io/badge/DeepSeek-V3-red.svg)\n![](https://img.shields.io/badge/License-MIT-green.svg)\n---\n\n# ✨ 一句话介绍\n> ❌ 它不是 FOFA 工具 \n❌ 也不是 Nuclei 封装 \n✅ 它是:**一个可以被 AI 接管、会自己反思、会自己决策扫描策略的「全网资产测绘智能体」**\n\n目前fofamapv2.0版本已作为 Skill 上线 [ClawHub 技能商城](https://clawhub.ai/asaotomo/fofamap),您可通过以下命令安装,让您的 AI 助手(“龙虾”)也能使用资产测绘:\n\n```\nclawhub install fofamap\n```\n\n### \n>\n\n<img width=\"1024\" height=\"559\" alt=\"xcy\" src=\"https://github.com/user-attachments/assets/2acfd385-1578-48f6-a385-e44c6346ed05\" />\n\n\n---\n\n# 🚀 v2.0 是什么级别的升级?\n> FofaMap 从「资产查询工具」→ **进化为 AI Agent(智能体)**\n>\n\n### 🧠 1️⃣ 你只要说人话\n```bash\npython3 fofamap.py -ai \"帮我找一下bing.com所有的子域名,并扫描一下\"\n```\n\nAI 自动完成:\n\n+ 理解你的意图\n+ 生成 FOFA 语法\n+ 查询资产\n+ 若 0 结果 → 启动 **自我反思机制** 自动放宽条件重试\n+ 分析资产指纹\n+ 判断是否值得扫描\n+ 自动生成 Nuclei 扫描参数\n+ 询问你是否执行\n\n---\n\n### 🤖 2️⃣ 会“自我反思”的 AI(核心黑科技)\n> 不再出现:`0 Results`\n>\n\nAI 会自动:\n\n+ 判断:\n - 是否地区条件过严?\n - 是否关键词不合理?\n - 是否语法太死?\n+ 自动:\n - 放宽条件\n - 重写语法\n - 多策略重试\n+ 直到:**尽量给你产出结果**\n\n---\n\n### 🔌 3️⃣ 原生 MCP 支持(给 AI / Agent 用)\n> 支持:**Claude Desktop / Cursor / 自建 Agent**\n>\n\n你可以直接对 AI 说:\n\n> 「调用 FofaMap,帮我分析最近致远 OA 的风险态势」\n>\n\nAI 会:\n\n> 自动调用 FofaMap → 自动跑任务 → 自动总结报告\n>\n\n+ **Cursor调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949431600-3bfb4e1e-4283-4697-94d4-837aed2de331.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949509622-f814692f-82f6-4291-b5b6-ba334fdd76d4.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949697647-b2137289-2319-4ada-8094-eecfa88fe83a.png)\n\n+ **LM Stuido调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953068363-036d2e7a-5867-4937-8574-7f9c73f89f71.png)\n\n---\n\n### 🎯 4️⃣ 看人下菜的“智能扫描决策”\nAI 会根据资产指纹:\n\n| 发现 | 自动推荐 |\n| --- | --- |\n| Spring | `-tags spring` |\n| WebLogic | `-tags weblogic` |\n| ThinkPHP | `-tags thinkphp` |\n| Struts2 | `-tags struts` |\n\n\n> ❌ 不再无脑全量扫 \n✅ 每一次扫描都是 **有脑子的精准打击**\n>\n\n---\n\n# 🧩 谁适合用?\n+ 🧑‍💻 安全小白:\n\n> 会说一句话就能用\n>\n\n+ 🛡️ SRC / 红队:\n\n> 批量资产 + 自动化挖洞 + 自动报告\n>\n\n+ 🤖 AI Agent 开发者:\n\n> 直接当「安全能力插件」\n>\n\n+ 🏗️ 平台开发者:\n\n> 可嵌入到攻防平台 / 资产平台 / SOC\n>\n\n---\n\n# 📦 项目结构(平台级架构)\n```bash\n.\n├── config/\n│ ├── __init__.py # ✅ 负责读取 yaml 并导出 settings 对象\n│ └── settings.yaml # ⭐ 全局配置(FOFA / AI / 系统)\n│\n├── core/ # 🧠 核心引擎层\n│ ├── ai.py # AI Agent 中枢(意图 / 反思 / 决策 / 总结)\n│ ├── client.py # FOFA API 封装\n│ ├── core.py # 主工作流调度器\n│ ├── excel.py # Excel 报告导出\n│ ├── handler.py # CLI / MCP 入口分发\n│ └── scanner.py # Nuclei 智能联动\n│\n├── utils/\n│ ├── helpers.py # 通用工具函数\n│ ├── logger.py # 日志系统\n│ └── printer.py # 终端富文本输出\n│\n├── fofamap.py # 🚀 CLI 主入口(一切从这里开始)\n├── mcp_server.py # 🔌 MCP Server(给 AI 调用)\n├── results/ # 📂 所有任务项目目录\n├── requirements.txt\n└── README.md\n```\n\n---\n\n# 🛠️ 安装\n## 1️⃣ 环境\n```bash\nPython >= 3.10\n```\n\n```bash\ngit clone https://github.com/asaotomo/FofaMap.git\ncd FofaMap\npip3 install -r requirements.txt\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950152421-2122be93-8a0d-471c-aa54-6a1506a7eb67.png)\n\n```bash\npython3 fofamap.py --help #查看工具用法\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/752c3b00-4306-429c-a29b-b6ae735b6b6a\" />\n\n\n---\n\n## 2️⃣ 初始化配置(✨ 向导模式)\n```bash\npython3 fofamap.py init\n```\n\n自动引导你填写:\n\n+ FOFA Email / Key\n+ 使用的 AI(DeepSeek / OpenAI / Ollama / LMStudio)\n+ 默认模型名称\n\n配置保存至:\n\n```bash\nconfig/settings.yaml\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950423887-143904ea-fc2c-435c-a0d6-4f3d6f853f36.png)\n\n---\n\n## 3️⃣ 配置 Nuclei(可选)\n如需漏洞扫描:\n\n+ 确保 `nuclei` 在 PATH 中\n\n```bash\nnuclei -version #输入此命令查看是否添加成功\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950503977-57d6011c-dd79-495d-9daf-3eb9a5f11093.png)\n\n+ 或下载nuclei二进制文件后直接放入项目根目录\n\n```bash\nhttps://github.com/projectdiscovery/nuclei/releases ## nuclei 扫描器官方下载地址,注意要下载对应自己操作系统版本的二进制文件\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950804043-97f52c4e-2aaa-4fb4-bb5a-41bc58d6285c.png)\n\n---\n\n# ⚙️ 配置文件详解(config/settings.yaml)\n```bash\n#====== 用户信息 (User Info) ======\nuserinfo:\n # [基础] FOFA 凭证\n email: \"your_email@example.com\"\n key: \"your_fofa_api_key\"\n \n # [进阶] AI 模型配置 (支持 DeepSeek/OpenAI/Ollama 等)\n deepseek_api_key: \"sk-xxxxxxxxxxxxxxxxxxxxxxxx\"\n \n # 场景 A: 使用官方 DeepSeek\n api_type: \"deepseek\"\n base_url: \"https://api.deepseek.com/v1\"\n model: \"deepseek-chat\"\n\n # 场景 B: 使用本地 Ollama (注释掉上方,启用下方)\n # api_type: \"ollama\"\n # base_url: \"http://localhost:11434/v1\"\n # model: \"qwen2.5:7b\"\n\n# ====== 搜索设置 (Search Settings) ======\nsearch:\n fields: \"host,protocol,ip,port,title,domain,country,icp\"\n size: 100\n full: false # 设为 true 可查询一年前的数据\n start_page: 1\n end_page: 5 # 自动爬取前 5 页\n\n# ====== 性能与输出 (System) ======\nsystem:\n logger: true\n sheet_merge: true\n concurrency: 15 # 建议根据网络状况调整 (10-50)\n export_format: \"xlsx\" # 支持 xlsx / csv\n output_dir: \"results\" # 默认输出目录\n```\n\n---\n\n# 💻 使用方法\n---\n\n# 🧙 模式一:交互式任务向导模式(✨ 新手 & 日常首选)\n💡 **什么参数都不用记,只要运行:**\n\n```plain\npython3 fofamap.py\n```\n\n或:\n\n```plain\npython fofamap.py\n```\n\n即可进入 **AI 驱动的交互式任务向导界面**:\n\n```plain\n________ ____ __ ___ \n / ____/ /_ __/ __/___ _ / |/ /___ _____ \n / /_ / __ \\/ / /_/ __ `/ / /|_/ / __ `/ __ \\ \n / __/ / /_/ / / __/ /_/ / / / / / /_/ / /_/ / \n/_/ \\____/_/_/ \\__,_/ /_/ /_/\\__,_/ .___/ \n /_/ v2.0 \n [ AI Powered & Interactive Wizard ] -- By Hx0 Team\n\n[!] 启动任务向导...\n? 请选择您要执行的操作:\n » 1. 🔮 AI 智能侦察 (自然语言 -> 自动决策)\n 2. 🔍 FOFA 标准查询 (语法输入)\n 3. 🖥️ Host 聚合查询 (IP/域名详情)\n 4. 📊 统计聚合查询 (数据分布分析)\n 5. 🖼️ Icon Hash 查询 (favicon 逆向)\n 6. 📁 批量文件查询 (TXT 批量指令)\n ---------------\n 0. 🚪 退出程序\n```\n\n---\n\n## 🎯 这个模式适合谁?\n+ ✅ 不想记命令参数的人\n+ ✅ 第一次使用的新手\n+ ✅ 日常使用 / 演示 / 培训 / 快速操作\n+ ✅ 所有“我只想点一下跑任务”的场景\n\n---\n\n## 🧠 向导模式能做什么?\n你可以通过方向键选择:\n\n### 1️⃣ 🔮 AI 智能侦察(⭐ 强烈推荐)\n直接输入一句话:\n\n```plain\n我收集一下美国哈佛大学的子域名网站,并扫描一下\n```\n\n系统将自动:\n\n+ AI 理解意图\n+ 自动生成 FOFA 语法\n+ 自动查询\n+ 自动反思(0 结果会重试)\n+ 自动判断是否扫描\n+ 自动生成扫描参数\n+ 自动生成报告\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951546443-9d44a9ad-6b35-44fb-91e3-ea109d596712.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951571098-29b92150-0196-4958-826b-ca23e43fe811.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767952132926-1739cb75-8448-4034-9861-6967af7ada0f.png)\n\n---\n\n### 2️⃣ 🔍 FOFA 标准查询\n使用FOFA查询语句查询数据\n\n```plain\napp=\"ThinkPHP\" && country=\"CN\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969525080-a73044c2-440e-4c72-a114-4965e6f7a454.png)\n\n---\n\n### 3️⃣ 🖥️ Host 聚合查询(AI 深度画像)\n根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```plain\n8.8.8.8 / baidu.com \n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969742560-30b321cd-3993-43aa-b22a-b09e55c7a2fe.png)\n\n---\n\n### 4️⃣ 📊 统计聚合查询(AI 态势分析)\n根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n```plain\napp=\"redis\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969913563-68bcdcb8-9107-41c3-8fe3-933e2e456d73.png)\n\n---\n\n### 5️⃣ 🖼️ Icon Hash 查询\n<font style=\"color:rgb(31, 35, 40);\">用户可通过填入任意一网站地址,</font>系统<font style=\"color:rgb(31, 35, 40);\">会自动获取该网站的favicon.ico图标文件,并计算其hash值,并查找与此图标相似的网站。</font>\n\n```plain\nhttps://www.bing.com\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969989542-9374fb72-3f71-40bb-83cd-16a298bc5ba0.png)\n\n---\n\n### 6️⃣ 📁 批量文件查询\n<font style=\"color:rgb(31, 35, 40);\">批量查询,用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,输入文件路径(若放在工具根目录可以直接输入文件名称)即可进行批量查询。</font>\n\n```plain\n114.114.114.114\nwww.baidu.com\napp=\"kafka\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970211247-9467dce6-257d-4f5c-ada0-aad859eff97d.png)\n\n# 🔮 模式二:经典模式( 老用户推荐)\n## 1️⃣ AI查询模式\n```bash\npython3 fofamap.py -ai \"帮我收集一下美国哈佛大学的子域名网站,并扫描一下\"\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/b879ea31-b048-4b68-a505-df304097bc97\" />\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/1e95b171-592b-49a7-b64f-c7a69fc562b0\" />\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/bf5c4740-b940-4254-aca5-791402950268\" />\n\n\n## 2️⃣ 基础查询\n如果用户想要使用fofa联合查询语句,例如:app=\"grafana\" && country=\"US\"。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\"ThinkPHP\\\" && country=\\\"CN\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n```bash\npython3 fofamap.py -q 'app=\"ThinkPHP\" && country=\"CN\"'\n```\n<img width=\"1440\" height=\"702\" alt=\"image\" src=\"https://github.com/user-attachments/assets/2b59ffde-fcb2-4c0b-ba48-c81af19e6142\" />\n\n## 3️⃣ Host 深度画像(AI 报告)\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n```bash\npython3 fofamap.py -hq 8.8.8.8\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/32a44671-f552-4a8f-a501-807006133923\" />\n\n## 4️⃣ 统计聚合(AI 态势解读)\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见FOFA API 官方文档\n```bash\npython3 fofamap.py -cq 'app=\"redis\"' -f country,org\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/526dd803-3e6a-4399-a8d3-a0f0c8b2cf21\" />\n\n---\n\n## 5️⃣ 图标 Hash 查询\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值,并去查找使用相同favicon.ico图标文件的网站。\n```bash\npython3 fofamap.py -ico https://www.bing.com\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/65fa09a3-44d2-4414-9e09-f02fbf5e9455\" />\n\n---\n\n## 6️⃣ 批量查询\n用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n```bash\npython3 fofamap.py -bq targets.txt\n```\n**targets.txt文件内容:**\n\n```plain\n8.8.8.8\nbaidu.com\nicp=\"京ICP备10036305号\"\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/67b3057b-e9eb-48cb-9f91-fb4aa2e408fb\" />\n\n## 7️⃣ 过滤查询\n| **特性** | **-i (--include)** | **-k (--key_word)** |\n| ------------ | ------------------------ | ------------------------------------ |\n| **筛选逻辑** | **过滤 (Filter)** | **搜索 (Search)** |\n| **处理阶段** | 第一层 (先执行) | 第二层 (后执行) |\n| **常用对象** | 状态码 | 筛选包含关键词的内容 |\n| **输入示例** | `\"200,301\"` (支持状态码) | `\"登录,后台\"` (支持多词) |\n| **目的** | **“筛选出对应状态码的查询结果”** | **“把查询结果中保护指定关键词数据找出来”** |\n\n\n如下命令:在 baidu.com 的所有资产中,保留 状态码为 200 (网页正常) 的结果,并进一步提取出包含 '文心' 或 '旅游' 关键词的目标。\n```bash\npython3 fofamap.py -q 'domain=\"baidu.com\"' -i \"200\" -k \"文心,旅游\"\n```\n<img width=\"1470\" height=\"655\" alt=\"image\" src=\"https://github.com/user-attachments/assets/709eb99e-b942-42ff-8eb7-3167230aeab3\" />\n\n## 8️⃣ 自定义导出格式与导出路径\n默认导出格式由 `config/settings.yaml` 中的 `system.export_format` 控制,也可以在命令行临时覆盖。\n\n导出为 CSV:\n\n```bash\npython3 fofamap.py -q 'app=\"grafana\" && country=\"US\"' --export-format csv\n```\n\n导出到自定义目录:\n\n```bash\npython3 fofamap.py -q 'app=\"nginx\"' --outdir ./exports\n```\n\n同时指定文件名和路径:\n\n```bash\npython3 fofamap.py -q 'domain=\"example.com\"' -o ./exports/example_assets.csv\n```\n\n说明:\n+ `--export-format` 支持 `xlsx` 和 `csv`\n+ `--outdir` 用于指定输出目录\n+ `-o/--outfile` 可直接传文件名,也可附带完整路径;若文件后缀为 `.csv` 或 `.xlsx`,程序会自动识别导出格式\n\n\n\n---\n\n# 🔌 模式三:MCP 服务(🔥 给 AI / Agent 用)\n### 1️⃣ 集成到 Cursor (最推荐,体验丝滑)\nCursor 对 MCP 的支持非常完善,配置好后,你可以直接在 Composer (Ctrl+I) 或 Chat (Ctrl+L) 中用自然语言调用工具。\n\n1. 打开 **Cursor Settings** (点击右上角齿轮)。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953701100-91d40367-76ae-4239-9cdb-e64c4b442251.png)\n\n2. 在左侧菜单找到 **Tools** **&** **MCP**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953756050-3947fa69-3f69-4e3f-9264-96147c13027d.png)\n\n3. 点击 **+ Add New MCP Server**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953462183-08f47ea0-6683-4f71-886c-fb645b92f9b8.png)\n\n4. 填写mcp.json配置信息:\n - **Name**: `fofamap-v2` (随便起)\n - **Type**: `command` (或者叫 Stdio)\n - **Command**: `你的Python解释器绝对路径(若写入环境变量可以直接填python)`\n * 例如:`python3.10`\n - **Args**: `你的脚本绝对路径`\n * 例如:`/Users/ka/Downloads/fofamap/fofa/mcp_server.py`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953312691-9b0133cf-fc4c-47d7-82d8-a2bf55d2efec.png)\n\n5. 点击 **Save**。\n - 此时你会看到一个 **绿色的圆点** 🟢,状态显示 `Connected`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953585044-97eb5e90-3a00-4ef7-9b83-9a1fa7b80397.png)\n\n - 如果显示红色,点击刷新图标,或者去 Cursor 的 `Output` -> `MCP Log` 或者是我们刚才修好的 `Log` 窗口看报错。\n\n**👉 如何使用:** 打开 Cursor Chat (Ctrl+L),直接输入:\n\n“帮我查一下 baidu.com 的资产信息,并检查是否有存活。” \n\nCursor 会自动分析意图,并在界面上显示 `Using tool: search_assets...`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953662133-8e369f5a-3d4b-499d-aed0-74094190fe0d.png)\n\n---\n\n### 2️⃣ 集成到 LM Studio (本地模型)\nLM Studio 0.3.0+ 版本开始支持 MCP。这允许你用本地的 DeepSeek 或 Llama 3 调用你的工具。\n\n1. 打开 **LM Studio**。\n2. 点击对话框中的 **MCP (插头图标)**。\n3. 点击**Install按钮** 。\n4. **选择Edit mcp.json**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953870043-013b0c77-5282-4125-b9b8-911084c2bc8c.png)\n\n5. 填写配置:\n - **Name**: `fofamap-v2`\n - **Command**: `你的Python解释器绝对路径`\n - **Args**: `你的脚本绝对路径` (注意:LM Studio 有时需要把 args 分开填,或者填在一个框里,视版本而定)。\n * _建议形式_: `[\"/Users/ka/.../mcp_server.py\"]`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954026399-f53295dc-ac1e-4101-9f54-dc87fd438ea5.png)\n\n6. 点击 **Save**。\n\n**👉 如何使用:**\n\n1. 去 **Chat** 界面。\n2. 加载一个支持 Tool Calling 的模型(推荐 `openai/gpt-oss-20b` 或 `Qwen 2.5 7B Instruct`,或者是 LM Studio 里的 DeepSeek R1/V3)。\n3. 在聊天框上方的 **Tools** 下拉菜单中,勾选 `mcp/fofamap-v2`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954105711-a5c74b58-4181-4f91-afcb-17b449bd6d89.png)\n\n4. 输入提示词:“帮我查一下Nginx在美国的分布情况···”\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954226754-f5f9b4b3-95b5-4690-bf08-a5279470dda5.png)\n\n---\n\n# ☢️ 漏洞扫描联动(Nuclei)\n在2.0版本中AI 会根据查询结果智能生成Nuclei漏洞扫描命令参数:\n\n```latex\n[AI] 推荐命令: nuclei -tags spring -severity critical,high\n\n> 🚀 执行\n> ✏️ 修改\n> 🚫 仅生成报告\n```\n\n---\n\n# 📂 结果输出结构\n```bash\nresults/\n└── domain__harvard_edu_____country__US_20260108_173107\n ├── batch_merge_20260108_173107.xlsx\n ├── nuclei_result_20260108_173107.txt\n ├── report_20260108_173107.md\n └── targets_20260108_173107.txt\n```\n\n如果使用 `--export-format csv`,对应的导出文件会变为 `.csv`;如果使用 `--outdir` 或带路径的 `--outfile`,结果会输出到你指定的目录。\n\n---\n\n# 🛡️ 免责声明\n+ 本工具仅面向**合法授权**的企业安全建设行为(如内部攻防演练、资产管理)。\n+ 在使用本工具进行检测时,您应确保该行为符合当地法律法规,并已取得目标所有者的授权。\n+ **禁止用于任何非法用途**。如您在使用本工具的过程中存在非法行为,您需自行承担相应后果,开发者不承担任何法律责任。\n\n---\n\n**FofaMap-V2.0由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**【打赏支持❤️】代码传情跨山海,点滴支持皆温暖✨**\n\n虽然代码完全开源,但每杯咖啡都能让我们走得更远 ☕️\n\n<img width=\"500\" height=\"400\" alt=\"打赏码\" src=\"https://github.com/user-attachments/assets/02868aed-357e-4740-983a-d5a8ea05bdbf\" />\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**【战队公众号】扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【战队知识星球】福利大放送,限时优惠-仅限前100名**\n\n<img width=\"318\" height=\"958\" alt=\"image\" src=\"https://github.com/user-attachments/assets/0cf90105-be7d-49ee-bcd2-b62434e2093a\" />\n\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n"}, "0e7e514898aced63c6b78a56366ffa778a058ff1": {"t": 1785748520.8472419, "n": 16462, "h": "58bc30ccab7c2782", "c": "# 🗺️ FofaMap v2.0 — Platinum Agent Edition\n> 🧠 **全网首个支持 MCP 协议 + AI 自我反思机制的红队资产测绘智能体** \nSelf-Reflecting AI Queries → MCP Protocol Integration → Intelligent Vulnerability Scanning\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://img.shields.io/badge/Python-3.10+-blue.svg)\n![](https://img.shields.io/badge/Version-2.0.0-blue.svg)\n![](https://img.shields.io/badge/AI-Self--Reflecting-blueviolet.svg)\n![](https://img.shields.io/badge/MCP-AI%20Ready-purple.svg)\n![](https://img.shields.io/badge/Nuclei-Integrated-orange.svg)\n![](https://img.shields.io/badge/DeepSeek-V3-red.svg)\n![](https://img.shields.io/badge/License-MIT-green.svg)\n---\n\n# ✨ 一句话介绍\n> ❌ 它不是 FOFA 工具 \n❌ 也不是 Nuclei 封装 \n✅ 它是:**一个可以被 AI 接管、会自己反思、会自己决策扫描策略的「全网资产测绘智能体」**\n\n目前fofamapv2.0版本已作为 Skill 上线 ClawHub 技能商城,您可通过以下命令安装,让您的 AI 助手(“龙虾”)也能使用资产测绘:\n\n```\nclawhub install fofamap\n```\n\n### \n>\n\n<img width=\"1024\" height=\"559\" alt=\"xcy\" src=\"https://github.com/user-attachments/assets/2acfd385-1578-48f6-a385-e44c6346ed05\" />\n\n\n---\n\n# 🚀 v2.0 是什么级别的升级?\n> FofaMap 从「资产查询工具」→ **进化为 AI Agent(智能体)**\n>\n\n### 🧠 1️⃣ 你只要说人话\n```bash\npython3 fofamap.py -ai \"帮我找一下bing.com所有的子域名,并扫描一下\"\n```\n\nAI 自动完成:\n\n+ 理解你的意图\n+ 生成 FOFA 语法\n+ 查询资产\n+ 若 0 结果 → 启动 **自我反思机制** 自动放宽条件重试\n+ 分析资产指纹\n+ 判断是否值得扫描\n+ 自动生成 Nuclei 扫描参数\n+ 询问你是否执行\n\n---\n\n### 🤖 2️⃣ 会“自我反思”的 AI(核心黑科技)\n> 不再出现:`0 Results`\n>\n\nAI 会自动:\n\n+ 判断:\n - 是否地区条件过严?\n - 是否关键词不合理?\n - 是否语法太死?\n+ 自动:\n - 放宽条件\n - 重写语法\n - 多策略重试\n+ 直到:**尽量给你产出结果**\n\n---\n\n### 🔌 3️⃣ 原生 MCP 支持(给 AI / Agent 用)\n> 支持:**Claude Desktop / Cursor / 自建 Agent**\n>\n\n你可以直接对 AI 说:\n\n> 「调用 FofaMap,帮我分析最近致远 OA 的风险态势」\n>\n\nAI 会:\n\n> 自动调用 FofaMap → 自动跑任务 → 自动总结报告\n>\n\n+ **Cursor调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949431600-3bfb4e1e-4283-4697-94d4-837aed2de331.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949509622-f814692f-82f6-4291-b5b6-ba334fdd76d4.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949697647-b2137289-2319-4ada-8094-eecfa88fe83a.png)\n\n+ **LM Stuido调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953068363-036d2e7a-5867-4937-8574-7f9c73f89f71.png)\n\n---\n\n### 🎯 4️⃣ 看人下菜的“智能扫描决策”\nAI 会根据资产指纹:\n\n| 发现 | 自动推荐 |\n| --- | --- |\n| Spring | `-tags spring` |\n| WebLogic | `-tags weblogic` |\n| ThinkPHP | `-tags thinkphp` |\n| Struts2 | `-tags struts` |\n\n\n> ❌ 不再无脑全量扫 \n✅ 每一次扫描都是 **有脑子的精准打击**\n>\n\n---\n\n# 🧩 谁适合用?\n+ 🧑‍💻 安全小白:\n\n> 会说一句话就能用\n>\n\n+ 🛡️ SRC / 红队:\n\n> 批量资产 + 自动化挖洞 + 自动报告\n>\n\n+ 🤖 AI Agent 开发者:\n\n> 直接当「安全能力插件」\n>\n\n+ 🏗️ 平台开发者:\n\n> 可嵌入到攻防平台 / 资产平台 / SOC\n>\n\n---\n\n# 📦 项目结构(平台级架构)\n```bash\n.\n├── config/\n│ ├── __init__.py # ✅ 负责读取 yaml 并导出 settings 对象\n│ └── settings.yaml # ⭐ 全局配置(FOFA / AI / 系统)\n│\n├── core/ # 🧠 核心引擎层\n│ ├── ai.py # AI Agent 中枢(意图 / 反思 / 决策 / 总结)\n│ ├── client.py # FOFA API 封装\n│ ├── core.py # 主工作流调度器\n│ ├── excel.py # Excel 报告导出\n│ ├── handler.py # CLI / MCP 入口分发\n│ └── scanner.py # Nuclei 智能联动\n│\n├── utils/\n│ ├── helpers.py # 通用工具函数\n│ ├── logger.py # 日志系统\n│ └── printer.py # 终端富文本输出\n│\n├── fofamap.py # 🚀 CLI 主入口(一切从这里开始)\n├── mcp_server.py # 🔌 MCP Server(给 AI 调用)\n├── results/ # 📂 所有任务项目目录\n├── requirements.txt\n└── README.md\n```\n\n---\n\n# 🛠️ 安装\n## 1️⃣ 环境\n```bash\nPython >= 3.10\n```\n\n```bash\ngit clone https://github.com/asaotomo/FofaMap.git\ncd FofaMap\npip3 install -r requirements.txt\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950152421-2122be93-8a0d-471c-aa54-6a1506a7eb67.png)\n\n```bash\npython3 fofamap.py --help #查看工具用法\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/752c3b00-4306-429c-a29b-b6ae735b6b6a\" />\n\n\n---\n\n## 2️⃣ 初始化配置(✨ 向导模式)\n```bash\npython3 fofamap.py init\n```\n\n自动引导你填写:\n\n+ FOFA Email / Key\n+ 使用的 AI(DeepSeek / OpenAI / Ollama / LMStudio)\n+ 默认模型名称\n\n配置保存至:\n\n```bash\nconfig/settings.yaml\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950423887-143904ea-fc2c-435c-a0d6-4f3d6f853f36.png)\n\n---\n\n## 3️⃣ 配置 Nuclei(可选)\n如需漏洞扫描:\n\n+ 确保 `nuclei` 在 PATH 中\n\n```bash\nnuclei -version #输入此命令查看是否添加成功\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950503977-57d6011c-dd79-495d-9daf-3eb9a5f11093.png)\n\n+ 或下载nuclei二进制文件后直接放入项目根目录\n\n```bash\nhttps://github.com/projectdiscovery/nuclei/releases ## nuclei 扫描器官方下载地址,注意要下载对应自己操作系统版本的二进制文件\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950804043-97f52c4e-2aaa-4fb4-bb5a-41bc58d6285c.png)\n\n---\n\n# ⚙️ 配置文件详解(config/settings.yaml)\n```bash\n#====== 用户信息 (User Info) ======\nuserinfo:\n # [基础] FOFA 凭证\n email: \"your_email@example.com\"\n key: \"your_fofa_api_key\"\n \n # [进阶] AI 模型配置 (支持 DeepSeek/OpenAI/Ollama 等)\n deepseek_api_key: \"sk-xxxxxxxxxxxxxxxxxxxxxxxx\"\n \n # 场景 A: 使用官方 DeepSeek\n api_type: \"deepseek\"\n base_url: \"https://api.deepseek.com/v1\"\n model: \"deepseek-chat\"\n\n # 场景 B: 使用本地 Ollama (注释掉上方,启用下方)\n # api_type: \"ollama\"\n # base_url: \"http://localhost:11434/v1\"\n # model: \"qwen2.5:7b\"\n\n# ====== 搜索设置 (Search Settings) ======\nsearch:\n fields: \"host,protocol,ip,port,title,domain,country,icp\"\n size: 100\n full: false # 设为 true 可查询一年前的数据\n start_page: 1\n end_page: 5 # 自动爬取前 5 页\n\n# ====== 性能与输出 (System) ======\nsystem:\n logger: true\n sheet_merge: true\n concurrency: 15 # 建议根据网络状况调整 (10-50)\n export_format: \"xlsx\" # 支持 xlsx / csv\n output_dir: \"results\" # 默认输出目录\n```\n\n---\n\n# 💻 使用方法\n---\n\n# 🧙 模式一:交互式任务向导模式(✨ 新手 & 日常首选)\n💡 **什么参数都不用记,只要运行:**\n\n```plain\npython3 fofamap.py\n```\n\n或:\n\n```plain\npython fofamap.py\n```\n\n即可进入 **AI 驱动的交互式任务向导界面**:\n\n```plain\n________ ____ __ ___ \n / ____/ /_ __/ __/___ _ / |/ /___ _____ \n / /_ / __ \\/ / /_/ __ `/ / /|_/ / __ `/ __ \\ \n / __/ / /_/ / / __/ /_/ / / / / / /_/ / /_/ / \n/_/ \\____/_/_/ \\__,_/ /_/ /_/\\__,_/ .___/ \n /_/ v2.0 \n [ AI Powered & Interactive Wizard ] -- By Hx0 Team\n\n[!] 启动任务向导...\n? 请选择您要执行的操作:\n » 1. 🔮 AI 智能侦察 (自然语言 -> 自动决策)\n 2. 🔍 FOFA 标准查询 (语法输入)\n 3. 🖥️ Host 聚合查询 (IP/域名详情)\n 4. 📊 统计聚合查询 (数据分布分析)\n 5. 🖼️ Icon Hash 查询 (favicon 逆向)\n 6. 📁 批量文件查询 (TXT 批量指令)\n ---------------\n 0. 🚪 退出程序\n```\n\n---\n\n## 🎯 这个模式适合谁?\n+ ✅ 不想记命令参数的人\n+ ✅ 第一次使用的新手\n+ ✅ 日常使用 / 演示 / 培训 / 快速操作\n+ ✅ 所有“我只想点一下跑任务”的场景\n\n---\n\n## 🧠 向导模式能做什么?\n你可以通过方向键选择:\n\n### 1️⃣ 🔮 AI 智能侦察(⭐ 强烈推荐)\n直接输入一句话:\n\n```plain\n我收集一下美国哈佛大学的子域名网站,并扫描一下\n```\n\n系统将自动:\n\n+ AI 理解意图\n+ 自动生成 FOFA 语法\n+ 自动查询\n+ 自动反思(0 结果会重试)\n+ 自动判断是否扫描\n+ 自动生成扫描参数\n+ 自动生成报告\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951546443-9d44a9ad-6b35-44fb-91e3-ea109d596712.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951571098-29b92150-0196-4958-826b-ca23e43fe811.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767952132926-1739cb75-8448-4034-9861-6967af7ada0f.png)\n\n---\n\n### 2️⃣ 🔍 FOFA 标准查询\n使用FOFA查询语句查询数据\n\n```plain\napp=\"ThinkPHP\" && country=\"CN\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969525080-a73044c2-440e-4c72-a114-4965e6f7a454.png)\n\n---\n\n### 3️⃣ 🖥️ Host 聚合查询(AI 深度画像)\n根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```plain\n8.8.8.8 / baidu.com \n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969742560-30b321cd-3993-43aa-b22a-b09e55c7a2fe.png)\n\n---\n\n### 4️⃣ 📊 统计聚合查询(AI 态势分析)\n根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n```plain\napp=\"redis\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969913563-68bcdcb8-9107-41c3-8fe3-933e2e456d73.png)\n\n---\n\n### 5️⃣ 🖼️ Icon Hash 查询\n<font style=\"color:rgb(31, 35, 40);\">用户可通过填入任意一网站地址,</font>系统<font style=\"color:rgb(31, 35, 40);\">会自动获取该网站的favicon.ico图标文件,并计算其hash值,并查找与此图标相似的网站。</font>\n\n```plain\nhttps://www.bing.com\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969989542-9374fb72-3f71-40bb-83cd-16a298bc5ba0.png)\n\n---\n\n### 6️⃣ 📁 批量文件查询\n<font style=\"color:rgb(31, 35, 40);\">批量查询,用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,输入文件路径(若放在工具根目录可以直接输入文件名称)即可进行批量查询。</font>\n\n```plain\n114.114.114.114\nwww.baidu.com\napp=\"kafka\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970211247-9467dce6-257d-4f5c-ada0-aad859eff97d.png)\n\n# 🔮 模式二:经典模式( 老用户推荐)\n## 1️⃣ AI查询模式\n```bash\npython3 fofamap.py -ai \"帮我收集一下美国哈佛大学的子域名网站,并扫描一下\"\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/b879ea31-b048-4b68-a505-df304097bc97\" />\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/1e95b171-592b-49a7-b64f-c7a69fc562b0\" />\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/bf5c4740-b940-4254-aca5-791402950268\" />\n\n\n## 2️⃣ 基础查询\n如果用户想要使用fofa联合查询语句,例如:app=\"grafana\" && country=\"US\"。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\"ThinkPHP\\\" && country=\\\"CN\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n```bash\npython3 fofamap.py -q 'app=\"ThinkPHP\" && country=\"CN\"'\n```\n<img width=\"1440\" height=\"702\" alt=\"image\" src=\"https://github.com/user-attachments/assets/2b59ffde-fcb2-4c0b-ba48-c81af19e6142\" />\n\n## 3️⃣ Host 深度画像(AI 报告)\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n```bash\npython3 fofamap.py -hq 8.8.8.8\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/32a44671-f552-4a8f-a501-807006133923\" />\n\n## 4️⃣ 统计聚合(AI 态势解读)\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见FOFA API 官方文档\n```bash\npython3 fofamap.py -cq 'app=\"redis\"' -f country,org\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/526dd803-3e6a-4399-a8d3-a0f0c8b2cf21\" />\n\n---\n\n## 5️⃣ 图标 Hash 查询\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值,并去查找使用相同favicon.ico图标文件的网站。\n```bash\npython3 fofamap.py -ico https://www.bing.com\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/65fa09a3-44d2-4414-9e09-f02fbf5e9455\" />\n\n---\n\n## 6️⃣ 批量查询\n用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n```bash\npython3 fofamap.py -bq targets.txt\n```\n**targets.txt文件内容:**\n\n```plain\n8.8.8.8\nbaidu.com\nicp=\"京ICP备10036305号\"\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/67b3057b-e9eb-48cb-9f91-fb4aa2e408fb\" />\n\n## 7️⃣ 过滤查询\n| **特性** | **-i (--include)** | **-k (--key_word)** |\n| ------------ | ------------------------ | ------------------------------------ |\n| **筛选逻辑** | **过滤 (Filter)** | **搜索 (Search)** |\n| **处理阶段** | 第一层 (先执行) | 第二层 (后执行) |\n| **常用对象** | 状态码 | 筛选包含关键词的内容 |\n| **输入示例** | `\"200,301\"` (支持状态码) | `\"登录,后台\"` (支持多词) |\n| **目的** | **“筛选出对应状态码的查询结果”** | **“把查询结果中保护指定关键词数据找出来”** |\n\n\n如下命令:在 baidu.com 的所有资产中,保留 状态码为 200 (网页正常) 的结果,并进一步提取出包含 '文心' 或 '旅游' 关键词的目标。\n```bash\npython3 fofamap.py -q 'domain=\"baidu.com\"' -i \"200\" -k \"文心,旅游\"\n```\n<img width=\"1470\" height=\"655\" alt=\"image\" src=\"https://github.com/user-attachments/assets/709eb99e-b942-42ff-8eb7-3167230aeab3\" />\n\n## 8️⃣ 自定义导出格式与导出路径\n默认导出格式由 `config/settings.yaml` 中的 `system.export_format` 控制,也可以在命令行临时覆盖。\n\n导出为 CSV:\n\n```bash\npython3 fofamap.py -q 'app=\"grafana\" && country=\"US\"' --export-format csv\n```\n\n导出到自定义目录:\n\n```bash\npython3 fofamap.py -q 'app=\"nginx\"' --outdir ./exports\n```\n\n同时指定文件名和路径:\n\n```bash\npython3 fofamap.py -q 'domain=\"example.com\"' -o ./exports/example_assets.csv\n```\n\n说明:\n+ `--export-format` 支持 `xlsx` 和 `csv`\n+ `--outdir` 用于指定输出目录\n+ `-o/--outfile` 可直接传文件名,也可附带完整路径;若文件后缀为 `.csv` 或 `.xlsx`,程序会自动识别导出格式\n\n\n\n---\n\n# 🔌 模式三:MCP 服务(🔥 给 AI / Agent 用)\n### 1️⃣ 集成到 Cursor (最推荐,体验丝滑)\nCursor 对 MCP 的支持非常完善,配置好后,你可以直接在 Composer (Ctrl+I) 或 Chat (Ctrl+L) 中用自然语言调用工具。\n\n1. 打开 **Cursor Settings** (点击右上角齿轮)。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953701100-91d40367-76ae-4239-9cdb-e64c4b442251.png)\n\n2. 在左侧菜单找到 **Tools** **&** **MCP**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953756050-3947fa69-3f69-4e3f-9264-96147c13027d.png)\n\n3. 点击 **+ Add New MCP Server**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953462183-08f47ea0-6683-4f71-886c-fb645b92f9b8.png)\n\n4. 填写mcp.json配置信息:\n - **Name**: `fofamap-v2` (随便起)\n - **Type**: `command` (或者叫 Stdio)\n - **Command**: `你的Python解释器绝对路径(若写入环境变量可以直接填python)`\n * 例如:`python3.10`\n - **Args**: `你的脚本绝对路径`\n * 例如:`/Users/ka/Downloads/fofamap/fofa/mcp_server.py`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953312691-9b0133cf-fc4c-47d7-82d8-a2bf55d2efec.png)\n\n5. 点击 **Save**。\n - 此时你会看到一个 **绿色的圆点** 🟢,状态显示 `Connected`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953585044-97eb5e90-3a00-4ef7-9b83-9a1fa7b80397.png)\n\n - 如果显示红色,点击刷新图标,或者去 Cursor 的 `Output` -> `MCP Log` 或者是我们刚才修好的 `Log` 窗口看报错。\n\n**👉 如何使用:** 打开 Cursor Chat (Ctrl+L),直接输入:\n\n“帮我查一下 baidu.com 的资产信息,并检查是否有存活。” \n\nCursor 会自动分析意图,并在界面上显示 `Using tool: search_assets...`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953662133-8e369f5a-3d4b-499d-aed0-74094190fe0d.png)\n\n---\n\n### 2️⃣ 集成到 LM Studio (本地模型)\nLM Studio 0.3.0+ 版本开始支持 MCP。这允许你用本地的 DeepSeek 或 Llama 3 调用你的工具。\n\n1. 打开 **LM Studio**。\n2. 点击对话框中的 **MCP (插头图标)**。\n3. 点击**Install按钮** 。\n4. **选择Edit mcp.json**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953870043-013b0c77-5282-4125-b9b8-911084c2bc8c.png)\n\n5. 填写配置:\n - **Name**: `fofamap-v2`\n - **Command**: `你的Python解释器绝对路径`\n - **Args**: `你的脚本绝对路径` (注意:LM Studio 有时需要把 args 分开填,或者填在一个框里,视版本而定)。\n * _建议形式_: `[\"/Users/ka/.../mcp_server.py\"]`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954026399-f53295dc-ac1e-4101-9f54-dc87fd438ea5.png)\n\n6. 点击 **Save**。\n\n**👉 如何使用:**\n\n1. 去 **Chat** 界面。\n2. 加载一个支持 Tool Calling 的模型(推荐 `openai/gpt-oss-20b` 或 `Qwen 2.5 7B Instruct`,或者是 LM Studio 里的 DeepSeek R1/V3)。\n3. 在聊天框上方的 **Tools** 下拉菜单中,勾选 `mcp/fofamap-v2`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954105711-a5c74b58-4181-4f91-afcb-17b449bd6d89.png)\n\n4. 输入提示词:“帮我查一下Nginx在美国的分布情况···”\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954226754-f5f9b4b3-95b5-4690-bf08-a5279470dda5.png)\n\n---\n\n# ☢️ 漏洞扫描联动(Nuclei)\n在2.0版本中AI 会根据查询结果智能生成Nuclei漏洞扫描命令参数:\n\n```latex\n[AI] 推荐命令: nuclei -tags spring -severity critical,high\n\n> 🚀 执行\n> ✏️ 修改\n> 🚫 仅生成报告\n```\n\n---\n\n# 📂 结果输出结构\n```bash\nresults/\n└── domain__harvard_edu_____country__US_20260108_173107\n ├── batch_merge_20260108_173107.xlsx\n ├── nuclei_result_20260108_173107.txt\n ├── report_20260108_173107.md\n └── targets_20260108_173107.txt\n```\n\n如果使用 `--export-format csv`,对应的导出文件会变为 `.csv`;如果使用 `--outdir` 或带路径的 `--outfile`,结果会输出到你指定的目录。\n\n---\n\n# 🛡️ 免责声明\n+ 本工具仅面向**合法授权**的企业安全建设行为(如内部攻防演练、资产管理)。\n+ 在使用本工具进行检测时,您应确保该行为符合当地法律法规,并已取得目标所有者的授权。\n+ **禁止用于任何非法用途**。如您在使用本工具的过程中存在非法行为,您需自行承担相应后果,开发者不承担任何法律责任。\n\n---\n\n**FofaMap-V2.0由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**【打赏支持❤️】代码传情跨山海,点滴支持皆温暖✨**\n\n虽然代码完全开源,但每杯咖啡都能让我们走得更远 ☕️\n\n<img width=\"500\" height=\"400\" alt=\"打赏码\" src=\"https://github.com/user-attachments/assets/02868aed-357e-4740-983a-d5a8ea05bdbf\" />\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**【战队公众号】扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【战队知识星球】福利大放送,限时优惠-仅限前100名**\n\n<img width=\"318\" height=\"958\" alt=\"image\" src=\"https://github.com/user-attachments/assets/0cf90105-be7d-49ee-bcd2-b62434e2093a\" />\n\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n"}, "a8e5893bba863fb1d1e796ae57ba63357de95336": {"t": 1785748522.0950942, "n": 16345, "h": "9f486525fb96af15", "c": "# 🗺️ FofaMap v2.0 — Platinum Agent Edition\n> 🧠 **全网首个支持 MCP 协议 + AI 自我反思机制的红队资产测绘智能体** \nSelf-Reflecting AI Queries → MCP Protocol Integration → Intelligent Vulnerability Scanning\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://img.shields.io/badge/Python-3.10+-blue.svg)\n![](https://img.shields.io/badge/Version-2.0.0-blue.svg)\n![](https://img.shields.io/badge/AI-Self--Reflecting-blueviolet.svg)\n![](https://img.shields.io/badge/MCP-AI%20Ready-purple.svg)\n![](https://img.shields.io/badge/Nuclei-Integrated-orange.svg)\n![](https://img.shields.io/badge/DeepSeek-V3-red.svg)\n![](https://img.shields.io/badge/License-MIT-green.svg)\n---\n\n# ✨ 一句话介绍\n> ❌ 它不是 FOFA 工具 \n❌ 也不是 Nuclei 封装 \n✅ 它是:**一个可以被 AI 接管、会自己反思、会自己决策扫描策略的「全网资产测绘智能体」**\n>\n\n<img width=\"1024\" height=\"559\" alt=\"xcy\" src=\"https://github.com/user-attachments/assets/2acfd385-1578-48f6-a385-e44c6346ed05\" />\n\n\n---\n\n# 🚀 v2.0 是什么级别的升级?\n> FofaMap 从「资产查询工具」→ **进化为 AI Agent(智能体)**\n>\n\n### 🧠 1️⃣ 你只要说人话\n```bash\npython3 fofamap.py -ai \"帮我找一下bing.com所有的子域名,并扫描一下\"\n```\n\nAI 自动完成:\n\n+ 理解你的意图\n+ 生成 FOFA 语法\n+ 查询资产\n+ 若 0 结果 → 启动 **自我反思机制** 自动放宽条件重试\n+ 分析资产指纹\n+ 判断是否值得扫描\n+ 自动生成 Nuclei 扫描参数\n+ 询问你是否执行\n\n---\n\n### 🤖 2️⃣ 会“自我反思”的 AI(核心黑科技)\n> 不再出现:`0 Results`\n>\n\nAI 会自动:\n\n+ 判断:\n - 是否地区条件过严?\n - 是否关键词不合理?\n - 是否语法太死?\n+ 自动:\n - 放宽条件\n - 重写语法\n - 多策略重试\n+ 直到:**尽量给你产出结果**\n\n---\n\n### 🔌 3️⃣ 原生 MCP 支持(给 AI / Agent 用)\n> 支持:**Claude Desktop / Cursor / 自建 Agent**\n>\n\n你可以直接对 AI 说:\n\n> 「调用 FofaMap,帮我分析最近致远 OA 的风险态势」\n>\n\nAI 会:\n\n> 自动调用 FofaMap → 自动跑任务 → 自动总结报告\n>\n\n+ **Cursor调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949431600-3bfb4e1e-4283-4697-94d4-837aed2de331.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949509622-f814692f-82f6-4291-b5b6-ba334fdd76d4.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949697647-b2137289-2319-4ada-8094-eecfa88fe83a.png)\n\n+ **LM Stuido调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953068363-036d2e7a-5867-4937-8574-7f9c73f89f71.png)\n\n---\n\n### 🎯 4️⃣ 看人下菜的“智能扫描决策”\nAI 会根据资产指纹:\n\n| 发现 | 自动推荐 |\n| --- | --- |\n| Spring | `-tags spring` |\n| WebLogic | `-tags weblogic` |\n| ThinkPHP | `-tags thinkphp` |\n| Struts2 | `-tags struts` |\n\n\n> ❌ 不再无脑全量扫 \n✅ 每一次扫描都是 **有脑子的精准打击**\n>\n\n---\n\n# 🧩 谁适合用?\n+ 🧑‍💻 安全小白:\n\n> 会说一句话就能用\n>\n\n+ 🛡️ SRC / 红队:\n\n> 批量资产 + 自动化挖洞 + 自动报告\n>\n\n+ 🤖 AI Agent 开发者:\n\n> 直接当「安全能力插件」\n>\n\n+ 🏗️ 平台开发者:\n\n> 可嵌入到攻防平台 / 资产平台 / SOC\n>\n\n---\n\n# 📦 项目结构(平台级架构)\n```bash\n.\n├── config/\n│ ├── __init__.py # ✅ 负责读取 yaml 并导出 settings 对象\n│ └── settings.yaml # ⭐ 全局配置(FOFA / AI / 系统)\n│\n├── core/ # 🧠 核心引擎层\n│ ├── ai.py # AI Agent 中枢(意图 / 反思 / 决策 / 总结)\n│ ├── client.py # FOFA API 封装\n│ ├── core.py # 主工作流调度器\n│ ├── excel.py # Excel 报告导出\n│ ├── handler.py # CLI / MCP 入口分发\n│ └── scanner.py # Nuclei 智能联动\n│\n├── utils/\n│ ├── helpers.py # 通用工具函数\n│ ├── logger.py # 日志系统\n│ └── printer.py # 终端富文本输出\n│\n├── fofamap.py # 🚀 CLI 主入口(一切从这里开始)\n├── mcp_server.py # 🔌 MCP Server(给 AI 调用)\n├── results/ # 📂 所有任务项目目录\n├── requirements.txt\n└── README.md\n```\n\n---\n\n# 🛠️ 安装\n## 1️⃣ 环境\n```bash\nPython >= 3.10\n```\n\n```bash\ngit clone https://github.com/asaotomo/FofaMap.git\ncd FofaMap\npip3 install -r requirements.txt\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950152421-2122be93-8a0d-471c-aa54-6a1506a7eb67.png)\n\n```bash\npython3 fofamap.py --help #查看工具用法\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/752c3b00-4306-429c-a29b-b6ae735b6b6a\" />\n\n\n---\n\n## 2️⃣ 初始化配置(✨ 向导模式)\n```bash\npython3 fofamap.py init\n```\n\n自动引导你填写:\n\n+ FOFA Email / Key\n+ 使用的 AI(DeepSeek / OpenAI / Ollama / LMStudio)\n+ 默认模型名称\n\n配置保存至:\n\n```bash\nconfig/settings.yaml\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950423887-143904ea-fc2c-435c-a0d6-4f3d6f853f36.png)\n\n---\n\n## 3️⃣ 配置 Nuclei(可选)\n如需漏洞扫描:\n\n+ 确保 `nuclei` 在 PATH 中\n\n```bash\nnuclei -version #输入此命令查看是否添加成功\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950503977-57d6011c-dd79-495d-9daf-3eb9a5f11093.png)\n\n+ 或下载nuclei二进制文件后直接放入项目根目录\n\n```bash\nhttps://github.com/projectdiscovery/nuclei/releases ## nuclei 扫描器官方下载地址,注意要下载对应自己操作系统版本的二进制文件\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950804043-97f52c4e-2aaa-4fb4-bb5a-41bc58d6285c.png)\n\n---\n\n# ⚙️ 配置文件详解(config/settings.yaml)\n```bash\n#====== 用户信息 (User Info) ======\nuserinfo:\n # [基础] FOFA 凭证\n email: \"your_email@example.com\"\n key: \"your_fofa_api_key\"\n \n # [进阶] AI 模型配置 (支持 DeepSeek/OpenAI/Ollama 等)\n deepseek_api_key: \"sk-xxxxxxxxxxxxxxxxxxxxxxxx\"\n \n # 场景 A: 使用官方 DeepSeek\n api_type: \"deepseek\"\n base_url: \"https://api.deepseek.com/v1\"\n model: \"deepseek-chat\"\n\n # 场景 B: 使用本地 Ollama (注释掉上方,启用下方)\n # api_type: \"ollama\"\n # base_url: \"http://localhost:11434/v1\"\n # model: \"qwen2.5:7b\"\n\n# ====== 搜索设置 (Search Settings) ======\nsearch:\n fields: \"host,protocol,ip,port,title,domain,country,icp\"\n size: 100\n full: false # 设为 true 可查询一年前的数据\n start_page: 1\n end_page: 5 # 自动爬取前 5 页\n\n# ====== 性能与输出 (System) ======\nsystem:\n logger: true\n sheet_merge: true\n concurrency: 15 # 建议根据网络状况调整 (10-50)\n export_format: \"xlsx\" # 支持 xlsx / csv\n output_dir: \"results\" # 默认输出目录\n```\n\n---\n\n# 💻 使用方法\n---\n\n# 🧙 模式一:交互式任务向导模式(✨ 新手 & 日常首选)\n💡 **什么参数都不用记,只要运行:**\n\n```plain\npython3 fofamap.py\n```\n\n或:\n\n```plain\npython fofamap.py\n```\n\n即可进入 **AI 驱动的交互式任务向导界面**:\n\n```plain\n________ ____ __ ___ \n / ____/ /_ __/ __/___ _ / |/ /___ _____ \n / /_ / __ \\/ / /_/ __ `/ / /|_/ / __ `/ __ \\ \n / __/ / /_/ / / __/ /_/ / / / / / /_/ / /_/ / \n/_/ \\____/_/_/ \\__,_/ /_/ /_/\\__,_/ .___/ \n /_/ v2.0 \n [ AI Powered & Interactive Wizard ] -- By Hx0 Team\n\n[!] 启动任务向导...\n? 请选择您要执行的操作:\n » 1. 🔮 AI 智能侦察 (自然语言 -> 自动决策)\n 2. 🔍 FOFA 标准查询 (语法输入)\n 3. 🖥️ Host 聚合查询 (IP/域名详情)\n 4. 📊 统计聚合查询 (数据分布分析)\n 5. 🖼️ Icon Hash 查询 (favicon 逆向)\n 6. 📁 批量文件查询 (TXT 批量指令)\n ---------------\n 0. 🚪 退出程序\n```\n\n---\n\n## 🎯 这个模式适合谁?\n+ ✅ 不想记命令参数的人\n+ ✅ 第一次使用的新手\n+ ✅ 日常使用 / 演示 / 培训 / 快速操作\n+ ✅ 所有“我只想点一下跑任务”的场景\n\n---\n\n## 🧠 向导模式能做什么?\n你可以通过方向键选择:\n\n### 1️⃣ 🔮 AI 智能侦察(⭐ 强烈推荐)\n直接输入一句话:\n\n```plain\n我收集一下美国哈佛大学的子域名网站,并扫描一下\n```\n\n系统将自动:\n\n+ AI 理解意图\n+ 自动生成 FOFA 语法\n+ 自动查询\n+ 自动反思(0 结果会重试)\n+ 自动判断是否扫描\n+ 自动生成扫描参数\n+ 自动生成报告\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951546443-9d44a9ad-6b35-44fb-91e3-ea109d596712.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951571098-29b92150-0196-4958-826b-ca23e43fe811.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767952132926-1739cb75-8448-4034-9861-6967af7ada0f.png)\n\n---\n\n### 2️⃣ 🔍 FOFA 标准查询\n使用FOFA查询语句查询数据\n\n```plain\napp=\"ThinkPHP\" && country=\"CN\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969525080-a73044c2-440e-4c72-a114-4965e6f7a454.png)\n\n---\n\n### 3️⃣ 🖥️ Host 聚合查询(AI 深度画像)\n根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```plain\n8.8.8.8 / baidu.com \n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969742560-30b321cd-3993-43aa-b22a-b09e55c7a2fe.png)\n\n---\n\n### 4️⃣ 📊 统计聚合查询(AI 态势分析)\n根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n```plain\napp=\"redis\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969913563-68bcdcb8-9107-41c3-8fe3-933e2e456d73.png)\n\n---\n\n### 5️⃣ 🖼️ Icon Hash 查询\n<font style=\"color:rgb(31, 35, 40);\">用户可通过填入任意一网站地址,</font>系统<font style=\"color:rgb(31, 35, 40);\">会自动获取该网站的favicon.ico图标文件,并计算其hash值,并查找与此图标相似的网站。</font>\n\n```plain\nhttps://www.bing.com\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969989542-9374fb72-3f71-40bb-83cd-16a298bc5ba0.png)\n\n---\n\n### 6️⃣ 📁 批量文件查询\n<font style=\"color:rgb(31, 35, 40);\">批量查询,用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,输入文件路径(若放在工具根目录可以直接输入文件名称)即可进行批量查询。</font>\n\n```plain\n114.114.114.114\nwww.baidu.com\napp=\"kafka\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970211247-9467dce6-257d-4f5c-ada0-aad859eff97d.png)\n\n# 🔮 模式二:经典模式( 老用户推荐)\n## 1️⃣ AI查询模式\n```bash\npython3 fofamap.py -ai \"帮我收集一下美国哈佛大学的子域名网站,并扫描一下\"\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/b879ea31-b048-4b68-a505-df304097bc97\" />\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/1e95b171-592b-49a7-b64f-c7a69fc562b0\" />\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/bf5c4740-b940-4254-aca5-791402950268\" />\n\n\n## 2️⃣ 基础查询\n如果用户想要使用fofa联合查询语句,例如:app=\"grafana\" && country=\"US\"。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\"ThinkPHP\\\" && country=\\\"CN\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n```bash\npython3 fofamap.py -q 'app=\"ThinkPHP\" && country=\"CN\"'\n```\n<img width=\"1440\" height=\"702\" alt=\"image\" src=\"https://github.com/user-attachments/assets/2b59ffde-fcb2-4c0b-ba48-c81af19e6142\" />\n\n## 3️⃣ Host 深度画像(AI 报告)\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n```bash\npython3 fofamap.py -hq 8.8.8.8\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/32a44671-f552-4a8f-a501-807006133923\" />\n\n## 4️⃣ 统计聚合(AI 态势解读)\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见FOFA API 官方文档\n```bash\npython3 fofamap.py -cq 'app=\"redis\"' -f country,org\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/526dd803-3e6a-4399-a8d3-a0f0c8b2cf21\" />\n\n---\n\n## 5️⃣ 图标 Hash 查询\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值,并去查找使用相同favicon.ico图标文件的网站。\n```bash\npython3 fofamap.py -ico https://www.bing.com\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/65fa09a3-44d2-4414-9e09-f02fbf5e9455\" />\n\n---\n\n## 6️⃣ 批量查询\n用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n```bash\npython3 fofamap.py -bq targets.txt\n```\n**targets.txt文件内容:**\n\n```plain\n8.8.8.8\nbaidu.com\nicp=\"京ICP备10036305号\"\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/67b3057b-e9eb-48cb-9f91-fb4aa2e408fb\" />\n\n## 7️⃣ 过滤查询\n| **特性** | **-i (--include)** | **-k (--key_word)** |\n| ------------ | ------------------------ | ------------------------------------ |\n| **筛选逻辑** | **过滤 (Filter)** | **搜索 (Search)** |\n| **处理阶段** | 第一层 (先执行) | 第二层 (后执行) |\n| **常用对象** | 状态码 | 筛选包含关键词的内容 |\n| **输入示例** | `\"200,301\"` (支持状态码) | `\"登录,后台\"` (支持多词) |\n| **目的** | **“筛选出对应状态码的查询结果”** | **“把查询结果中保护指定关键词数据找出来”** |\n\n\n如下命令:在 baidu.com 的所有资产中,保留 状态码为 200 (网页正常) 的结果,并进一步提取出包含 '文心' 或 '旅游' 关键词的目标。\n```bash\npython3 fofamap.py -q 'domain=\"baidu.com\"' -i \"200\" -k \"文心,旅游\"\n```\n<img width=\"1470\" height=\"655\" alt=\"image\" src=\"https://github.com/user-attachments/assets/709eb99e-b942-42ff-8eb7-3167230aeab3\" />\n\n## 8️⃣ 自定义导出格式与导出路径\n默认导出格式由 `config/settings.yaml` 中的 `system.export_format` 控制,也可以在命令行临时覆盖。\n\n导出为 CSV:\n\n```bash\npython3 fofamap.py -q 'app=\"grafana\" && country=\"US\"' --export-format csv\n```\n\n导出到自定义目录:\n\n```bash\npython3 fofamap.py -q 'app=\"nginx\"' --outdir ./exports\n```\n\n同时指定文件名和路径:\n\n```bash\npython3 fofamap.py -q 'domain=\"example.com\"' -o ./exports/example_assets.csv\n```\n\n说明:\n+ `--export-format` 支持 `xlsx` 和 `csv`\n+ `--outdir` 用于指定输出目录\n+ `-o/--outfile` 可直接传文件名,也可附带完整路径;若文件后缀为 `.csv` 或 `.xlsx`,程序会自动识别导出格式\n\n\n\n---\n\n# 🔌 模式三:MCP 服务(🔥 给 AI / Agent 用)\n### 1️⃣ 集成到 Cursor (最推荐,体验丝滑)\nCursor 对 MCP 的支持非常完善,配置好后,你可以直接在 Composer (Ctrl+I) 或 Chat (Ctrl+L) 中用自然语言调用工具。\n\n1. 打开 **Cursor Settings** (点击右上角齿轮)。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953701100-91d40367-76ae-4239-9cdb-e64c4b442251.png)\n\n2. 在左侧菜单找到 **Tools** **&** **MCP**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953756050-3947fa69-3f69-4e3f-9264-96147c13027d.png)\n\n3. 点击 **+ Add New MCP Server**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953462183-08f47ea0-6683-4f71-886c-fb645b92f9b8.png)\n\n4. 填写mcp.json配置信息:\n - **Name**: `fofamap-v2` (随便起)\n - **Type**: `command` (或者叫 Stdio)\n - **Command**: `你的Python解释器绝对路径(若写入环境变量可以直接填python)`\n * 例如:`python3.10`\n - **Args**: `你的脚本绝对路径`\n * 例如:`/Users/ka/Downloads/fofamap/fofa/mcp_server.py`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953312691-9b0133cf-fc4c-47d7-82d8-a2bf55d2efec.png)\n\n5. 点击 **Save**。\n - 此时你会看到一个 **绿色的圆点** 🟢,状态显示 `Connected`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953585044-97eb5e90-3a00-4ef7-9b83-9a1fa7b80397.png)\n\n - 如果显示红色,点击刷新图标,或者去 Cursor 的 `Output` -> `MCP Log` 或者是我们刚才修好的 `Log` 窗口看报错。\n\n**👉 如何使用:** 打开 Cursor Chat (Ctrl+L),直接输入:\n\n“帮我查一下 baidu.com 的资产信息,并检查是否有存活。” \n\nCursor 会自动分析意图,并在界面上显示 `Using tool: search_assets...`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953662133-8e369f5a-3d4b-499d-aed0-74094190fe0d.png)\n\n---\n\n### 2️⃣ 集成到 LM Studio (本地模型)\nLM Studio 0.3.0+ 版本开始支持 MCP。这允许你用本地的 DeepSeek 或 Llama 3 调用你的工具。\n\n1. 打开 **LM Studio**。\n2. 点击对话框中的 **MCP (插头图标)**。\n3. 点击**Install按钮** 。\n4. **选择Edit mcp.json**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953870043-013b0c77-5282-4125-b9b8-911084c2bc8c.png)\n\n5. 填写配置:\n - **Name**: `fofamap-v2`\n - **Command**: `你的Python解释器绝对路径`\n - **Args**: `你的脚本绝对路径` (注意:LM Studio 有时需要把 args 分开填,或者填在一个框里,视版本而定)。\n * _建议形式_: `[\"/Users/ka/.../mcp_server.py\"]`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954026399-f53295dc-ac1e-4101-9f54-dc87fd438ea5.png)\n\n6. 点击 **Save**。\n\n**👉 如何使用:**\n\n1. 去 **Chat** 界面。\n2. 加载一个支持 Tool Calling 的模型(推荐 `openai/gpt-oss-20b` 或 `Qwen 2.5 7B Instruct`,或者是 LM Studio 里的 DeepSeek R1/V3)。\n3. 在聊天框上方的 **Tools** 下拉菜单中,勾选 `mcp/fofamap-v2`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954105711-a5c74b58-4181-4f91-afcb-17b449bd6d89.png)\n\n4. 输入提示词:“帮我查一下Nginx在美国的分布情况···”\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954226754-f5f9b4b3-95b5-4690-bf08-a5279470dda5.png)\n\n---\n\n# ☢️ 漏洞扫描联动(Nuclei)\n在2.0版本中AI 会根据查询结果智能生成Nuclei漏洞扫描命令参数:\n\n```latex\n[AI] 推荐命令: nuclei -tags spring -severity critical,high\n\n> 🚀 执行\n> ✏️ 修改\n> 🚫 仅生成报告\n```\n\n---\n\n# 📂 结果输出结构\n```bash\nresults/\n└── domain__harvard_edu_____country__US_20260108_173107\n ├── batch_merge_20260108_173107.xlsx\n ├── nuclei_result_20260108_173107.txt\n ├── report_20260108_173107.md\n └── targets_20260108_173107.txt\n```\n\n如果使用 `--export-format csv`,对应的导出文件会变为 `.csv`;如果使用 `--outdir` 或带路径的 `--outfile`,结果会输出到你指定的目录。\n\n---\n\n# 🛡️ 免责声明\n+ 本工具仅面向**合法授权**的企业安全建设行为(如内部攻防演练、资产管理)。\n+ 在使用本工具进行检测时,您应确保该行为符合当地法律法规,并已取得目标所有者的授权。\n+ **禁止用于任何非法用途**。如您在使用本工具的过程中存在非法行为,您需自行承担相应后果,开发者不承担任何法律责任。\n\n---\n\n**FofaMap-V2.0由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**【打赏支持❤️】代码传情跨山海,点滴支持皆温暖✨**\n\n虽然代码完全开源,但每杯咖啡都能让我们走得更远 ☕️\n\n<img width=\"500\" height=\"400\" alt=\"打赏码\" src=\"https://github.com/user-attachments/assets/02868aed-357e-4740-983a-d5a8ea05bdbf\" />\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**【战队公众号】扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【战队知识星球】福利大放送,限时优惠-仅限前100名**\n\n<img width=\"318\" height=\"958\" alt=\"image\" src=\"https://github.com/user-attachments/assets/0cf90105-be7d-49ee-bcd2-b62434e2093a\" />\n\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n"}, "adae3a22673f39973d565ba6b2a6d85d933409fa": {"t": 1785748523.3432446, "n": 15668, "h": "d19b89e91496d65e", "c": "# 🗺️ FofaMap v2.0 — Platinum Agent Edition\n> 🧠 **全网首个支持 MCP 协议 + AI 自我反思机制的红队资产测绘智能体** \nSelf-Reflecting AI Queries → MCP Protocol Integration → Intelligent Vulnerability Scanning\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://img.shields.io/badge/Python-3.10+-blue.svg)\n![](https://img.shields.io/badge/Version-2.0.0-blue.svg)\n![](https://img.shields.io/badge/AI-Self--Reflecting-blueviolet.svg)\n![](https://img.shields.io/badge/MCP-AI%20Ready-purple.svg)\n![](https://img.shields.io/badge/Nuclei-Integrated-orange.svg)\n![](https://img.shields.io/badge/DeepSeek-V3-red.svg)\n![](https://img.shields.io/badge/License-MIT-green.svg)\n---\n\n# ✨ 一句话介绍\n> ❌ 它不是 FOFA 工具 \n❌ 也不是 Nuclei 封装 \n✅ 它是:**一个可以被 AI 接管、会自己反思、会自己决策扫描策略的「全网资产测绘智能体」**\n>\n\n<img width=\"1024\" height=\"559\" alt=\"xcy\" src=\"https://github.com/user-attachments/assets/2acfd385-1578-48f6-a385-e44c6346ed05\" />\n\n\n---\n\n# 🚀 v2.0 是什么级别的升级?\n> FofaMap 从「资产查询工具」→ **进化为 AI Agent(智能体)**\n>\n\n### 🧠 1️⃣ 你只要说人话\n```bash\npython3 fofamap.py -ai \"帮我找一下bing.com所有的子域名,并扫描一下\"\n```\n\nAI 自动完成:\n\n+ 理解你的意图\n+ 生成 FOFA 语法\n+ 查询资产\n+ 若 0 结果 → 启动 **自我反思机制** 自动放宽条件重试\n+ 分析资产指纹\n+ 判断是否值得扫描\n+ 自动生成 Nuclei 扫描参数\n+ 询问你是否执行\n\n---\n\n### 🤖 2️⃣ 会“自我反思”的 AI(核心黑科技)\n> 不再出现:`0 Results`\n>\n\nAI 会自动:\n\n+ 判断:\n - 是否地区条件过严?\n - 是否关键词不合理?\n - 是否语法太死?\n+ 自动:\n - 放宽条件\n - 重写语法\n - 多策略重试\n+ 直到:**尽量给你产出结果**\n\n---\n\n### 🔌 3️⃣ 原生 MCP 支持(给 AI / Agent 用)\n> 支持:**Claude Desktop / Cursor / 自建 Agent**\n>\n\n你可以直接对 AI 说:\n\n> 「调用 FofaMap,帮我分析最近致远 OA 的风险态势」\n>\n\nAI 会:\n\n> 自动调用 FofaMap → 自动跑任务 → 自动总结报告\n>\n\n+ **Cursor调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949431600-3bfb4e1e-4283-4697-94d4-837aed2de331.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949509622-f814692f-82f6-4291-b5b6-ba334fdd76d4.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949697647-b2137289-2319-4ada-8094-eecfa88fe83a.png)\n\n+ **LM Stuido调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953068363-036d2e7a-5867-4937-8574-7f9c73f89f71.png)\n\n---\n\n### 🎯 4️⃣ 看人下菜的“智能扫描决策”\nAI 会根据资产指纹:\n\n| 发现 | 自动推荐 |\n| --- | --- |\n| Spring | `-tags spring` |\n| WebLogic | `-tags weblogic` |\n| ThinkPHP | `-tags thinkphp` |\n| Struts2 | `-tags struts` |\n\n\n> ❌ 不再无脑全量扫 \n✅ 每一次扫描都是 **有脑子的精准打击**\n>\n\n---\n\n# 🧩 谁适合用?\n+ 🧑‍💻 安全小白:\n\n> 会说一句话就能用\n>\n\n+ 🛡️ SRC / 红队:\n\n> 批量资产 + 自动化挖洞 + 自动报告\n>\n\n+ 🤖 AI Agent 开发者:\n\n> 直接当「安全能力插件」\n>\n\n+ 🏗️ 平台开发者:\n\n> 可嵌入到攻防平台 / 资产平台 / SOC\n>\n\n---\n\n# 📦 项目结构(平台级架构)\n```bash\n.\n├── config/\n│ ├── __init__.py # ✅ 负责读取 yaml 并导出 settings 对象\n│ └── settings.yaml # ⭐ 全局配置(FOFA / AI / 系统)\n│\n├── core/ # 🧠 核心引擎层\n│ ├── ai.py # AI Agent 中枢(意图 / 反思 / 决策 / 总结)\n│ ├── client.py # FOFA API 封装\n│ ├── core.py # 主工作流调度器\n│ ├── excel.py # Excel 报告导出\n│ ├── handler.py # CLI / MCP 入口分发\n│ └── scanner.py # Nuclei 智能联动\n│\n├── utils/\n│ ├── helpers.py # 通用工具函数\n│ ├── logger.py # 日志系统\n│ └── printer.py # 终端富文本输出\n│\n├── fofamap.py # 🚀 CLI 主入口(一切从这里开始)\n├── mcp_server.py # 🔌 MCP Server(给 AI 调用)\n├── results/ # 📂 所有任务项目目录\n├── requirements.txt\n└── README.md\n```\n\n---\n\n# 🛠️ 安装\n## 1️⃣ 环境\n```bash\nPython >= 3.10\n```\n\n```bash\ngit clone https://github.com/asaotomo/FofaMap.git\ncd FofaMap\npip3 install -r requirements.txt\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950152421-2122be93-8a0d-471c-aa54-6a1506a7eb67.png)\n\n```bash\npython3 fofamap.py --help #查看工具用法\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/752c3b00-4306-429c-a29b-b6ae735b6b6a\" />\n\n\n---\n\n## 2️⃣ 初始化配置(✨ 向导模式)\n```bash\npython3 fofamap.py init\n```\n\n自动引导你填写:\n\n+ FOFA Email / Key\n+ 使用的 AI(DeepSeek / OpenAI / Ollama / LMStudio)\n+ 默认模型名称\n\n配置保存至:\n\n```bash\nconfig/settings.yaml\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950423887-143904ea-fc2c-435c-a0d6-4f3d6f853f36.png)\n\n---\n\n## 3️⃣ 配置 Nuclei(可选)\n如需漏洞扫描:\n\n+ 确保 `nuclei` 在 PATH 中\n\n```bash\nnuclei -version #输入此命令查看是否添加成功\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950503977-57d6011c-dd79-495d-9daf-3eb9a5f11093.png)\n\n+ 或下载nuclei二进制文件后直接放入项目根目录\n\n```bash\nhttps://github.com/projectdiscovery/nuclei/releases ## nuclei 扫描器官方下载地址,注意要下载对应自己操作系统版本的二进制文件\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950804043-97f52c4e-2aaa-4fb4-bb5a-41bc58d6285c.png)\n\n---\n\n# ⚙️ 配置文件详解(config/settings.yaml)\n```bash\n#====== 用户信息 (User Info) ======\nuserinfo:\n # [基础] FOFA 凭证\n email: \"your_email@example.com\"\n key: \"your_fofa_api_key\"\n \n # [进阶] AI 模型配置 (支持 DeepSeek/OpenAI/Ollama 等)\n deepseek_api_key: \"sk-xxxxxxxxxxxxxxxxxxxxxxxx\"\n \n # 场景 A: 使用官方 DeepSeek\n api_type: \"deepseek\"\n base_url: \"https://api.deepseek.com/v1\"\n model: \"deepseek-chat\"\n\n # 场景 B: 使用本地 Ollama (注释掉上方,启用下方)\n # api_type: \"ollama\"\n # base_url: \"http://localhost:11434/v1\"\n # model: \"qwen2.5:7b\"\n\n# ====== 搜索设置 (Search Settings) ======\nsearch:\n fields: \"host,protocol,ip,port,title,domain,country,icp\"\n size: 100\n full: false # 设为 true 可查询一年前的数据\n start_page: 1\n end_page: 5 # 自动爬取前 5 页\n\n# ====== 性能与输出 (System) ======\nsystem:\n logger: true\n sheet_merge: true\n concurrency: 15 # 建议根据网络状况调整 (10-50)\n```\n\n---\n\n# 💻 使用方法\n---\n\n# 🧙 模式一:交互式任务向导模式(✨ 新手 & 日常首选)\n💡 **什么参数都不用记,只要运行:**\n\n```plain\npython3 fofamap.py\n```\n\n或:\n\n```plain\npython fofamap.py\n```\n\n即可进入 **AI 驱动的交互式任务向导界面**:\n\n```plain\n________ ____ __ ___ \n / ____/ /_ __/ __/___ _ / |/ /___ _____ \n / /_ / __ \\/ / /_/ __ `/ / /|_/ / __ `/ __ \\ \n / __/ / /_/ / / __/ /_/ / / / / / /_/ / /_/ / \n/_/ \\____/_/_/ \\__,_/ /_/ /_/\\__,_/ .___/ \n /_/ v2.0 \n [ AI Powered & Interactive Wizard ] -- By Hx0 Team\n\n[!] 启动任务向导...\n? 请选择您要执行的操作:\n » 1. 🔮 AI 智能侦察 (自然语言 -> 自动决策)\n 2. 🔍 FOFA 标准查询 (语法输入)\n 3. 🖥️ Host 聚合查询 (IP/域名详情)\n 4. 📊 统计聚合查询 (数据分布分析)\n 5. 🖼️ Icon Hash 查询 (favicon 逆向)\n 6. 📁 批量文件查询 (TXT 批量指令)\n ---------------\n 0. 🚪 退出程序\n```\n\n---\n\n## 🎯 这个模式适合谁?\n+ ✅ 不想记命令参数的人\n+ ✅ 第一次使用的新手\n+ ✅ 日常使用 / 演示 / 培训 / 快速操作\n+ ✅ 所有“我只想点一下跑任务”的场景\n\n---\n\n## 🧠 向导模式能做什么?\n你可以通过方向键选择:\n\n### 1️⃣ 🔮 AI 智能侦察(⭐ 强烈推荐)\n直接输入一句话:\n\n```plain\n我收集一下美国哈佛大学的子域名网站,并扫描一下\n```\n\n系统将自动:\n\n+ AI 理解意图\n+ 自动生成 FOFA 语法\n+ 自动查询\n+ 自动反思(0 结果会重试)\n+ 自动判断是否扫描\n+ 自动生成扫描参数\n+ 自动生成报告\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951546443-9d44a9ad-6b35-44fb-91e3-ea109d596712.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951571098-29b92150-0196-4958-826b-ca23e43fe811.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767952132926-1739cb75-8448-4034-9861-6967af7ada0f.png)\n\n---\n\n### 2️⃣ 🔍 FOFA 标准查询\n使用FOFA查询语句查询数据\n\n```plain\napp=\"ThinkPHP\" && country=\"CN\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969525080-a73044c2-440e-4c72-a114-4965e6f7a454.png)\n\n---\n\n### 3️⃣ 🖥️ Host 聚合查询(AI 深度画像)\n根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```plain\n8.8.8.8 / baidu.com \n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969742560-30b321cd-3993-43aa-b22a-b09e55c7a2fe.png)\n\n---\n\n### 4️⃣ 📊 统计聚合查询(AI 态势分析)\n根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n```plain\napp=\"redis\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969913563-68bcdcb8-9107-41c3-8fe3-933e2e456d73.png)\n\n---\n\n### 5️⃣ 🖼️ Icon Hash 查询\n<font style=\"color:rgb(31, 35, 40);\">用户可通过填入任意一网站地址,</font>系统<font style=\"color:rgb(31, 35, 40);\">会自动获取该网站的favicon.ico图标文件,并计算其hash值,并查找与此图标相似的网站。</font>\n\n```plain\nhttps://www.bing.com\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969989542-9374fb72-3f71-40bb-83cd-16a298bc5ba0.png)\n\n---\n\n### 6️⃣ 📁 批量文件查询\n<font style=\"color:rgb(31, 35, 40);\">批量查询,用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,输入文件路径(若放在工具根目录可以直接输入文件名称)即可进行批量查询。</font>\n\n```plain\n114.114.114.114\nwww.baidu.com\napp=\"kafka\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970211247-9467dce6-257d-4f5c-ada0-aad859eff97d.png)\n\n# 🔮 模式二:经典模式( 老用户推荐)\n## 1️⃣ AI查询模式\n```bash\npython3 fofamap.py -ai \"帮我收集一下美国哈佛大学的子域名网站,并扫描一下\"\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/b879ea31-b048-4b68-a505-df304097bc97\" />\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/1e95b171-592b-49a7-b64f-c7a69fc562b0\" />\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/bf5c4740-b940-4254-aca5-791402950268\" />\n\n\n## 2️⃣ 基础查询\n如果用户想要使用fofa联合查询语句,例如:app=\"grafana\" && country=\"US\"。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\"ThinkPHP\\\" && country=\\\"CN\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n```bash\npython3 fofamap.py -q 'app=\"ThinkPHP\" && country=\"CN\"'\n```\n<img width=\"1440\" height=\"702\" alt=\"image\" src=\"https://github.com/user-attachments/assets/2b59ffde-fcb2-4c0b-ba48-c81af19e6142\" />\n\n## 3️⃣ Host 深度画像(AI 报告)\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n```bash\npython3 fofamap.py -hq 8.8.8.8\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/32a44671-f552-4a8f-a501-807006133923\" />\n\n## 4️⃣ 统计聚合(AI 态势解读)\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见FOFA API 官方文档\n```bash\npython3 fofamap.py -cq 'app=\"redis\"' -f country,org\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/526dd803-3e6a-4399-a8d3-a0f0c8b2cf21\" />\n\n---\n\n## 5️⃣ 图标 Hash 查询\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值,并去查找使用相同favicon.ico图标文件的网站。\n```bash\npython3 fofamap.py -ico https://www.bing.com\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/65fa09a3-44d2-4414-9e09-f02fbf5e9455\" />\n\n---\n\n## 6️⃣ 批量查询\n用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n```bash\npython3 fofamap.py -bq targets.txt\n```\n**targets.txt文件内容:**\n\n```plain\n8.8.8.8\nbaidu.com\nicp=\"京ICP备10036305号\"\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/67b3057b-e9eb-48cb-9f91-fb4aa2e408fb\" />\n\n## 7️⃣ 过滤查询\n| **特性** | **-i (--include)** | **-k (--key_word)** |\n| ------------ | ------------------------ | ------------------------------------ |\n| **筛选逻辑** | **过滤 (Filter)** | **搜索 (Search)** |\n| **处理阶段** | 第一层 (先执行) | 第二层 (后执行) |\n| **常用对象** | 状态码 | 筛选包含关键词的内容 |\n| **输入示例** | `\"200,301\"` (支持状态码) | `\"登录,后台\"` (支持多词) |\n| **目的** | **“筛选出对应状态码的查询结果”** | **“把查询结果中保护指定关键词数据找出来”** |\n\n\n如下命令:在 baidu.com 的所有资产中,保留 状态码为 200 (网页正常) 的结果,并进一步提取出包含 '文心' 或 '旅游' 关键词的目标。\n```bash\npython3 fofamap.py -q 'domain=\"baidu.com\"' -i \"200\" -k \"文心,旅游\"\n```\n<img width=\"1470\" height=\"655\" alt=\"image\" src=\"https://github.com/user-attachments/assets/709eb99e-b942-42ff-8eb7-3167230aeab3\" />\n\n\n\n---\n\n# 🔌 模式三:MCP 服务(🔥 给 AI / Agent 用)\n### 1️⃣ 集成到 Cursor (最推荐,体验丝滑)\nCursor 对 MCP 的支持非常完善,配置好后,你可以直接在 Composer (Ctrl+I) 或 Chat (Ctrl+L) 中用自然语言调用工具。\n\n1. 打开 **Cursor Settings** (点击右上角齿轮)。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953701100-91d40367-76ae-4239-9cdb-e64c4b442251.png)\n\n2. 在左侧菜单找到 **Tools** **&** **MCP**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953756050-3947fa69-3f69-4e3f-9264-96147c13027d.png)\n\n3. 点击 **+ Add New MCP Server**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953462183-08f47ea0-6683-4f71-886c-fb645b92f9b8.png)\n\n4. 填写mcp.json配置信息:\n - **Name**: `fofamap-v2` (随便起)\n - **Type**: `command` (或者叫 Stdio)\n - **Command**: `你的Python解释器绝对路径(若写入环境变量可以直接填python)`\n * 例如:`python3.10`\n - **Args**: `你的脚本绝对路径`\n * 例如:`/Users/ka/Downloads/fofamap/fofa/mcp_server.py`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953312691-9b0133cf-fc4c-47d7-82d8-a2bf55d2efec.png)\n\n5. 点击 **Save**。\n - 此时你会看到一个 **绿色的圆点** 🟢,状态显示 `Connected`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953585044-97eb5e90-3a00-4ef7-9b83-9a1fa7b80397.png)\n\n - 如果显示红色,点击刷新图标,或者去 Cursor 的 `Output` -> `MCP Log` 或者是我们刚才修好的 `Log` 窗口看报错。\n\n**👉 如何使用:** 打开 Cursor Chat (Ctrl+L),直接输入:\n\n“帮我查一下 baidu.com 的资产信息,并检查是否有存活。” \n\nCursor 会自动分析意图,并在界面上显示 `Using tool: search_assets...`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953662133-8e369f5a-3d4b-499d-aed0-74094190fe0d.png)\n\n---\n\n### 2️⃣ 集成到 LM Studio (本地模型)\nLM Studio 0.3.0+ 版本开始支持 MCP。这允许你用本地的 DeepSeek 或 Llama 3 调用你的工具。\n\n1. 打开 **LM Studio**。\n2. 点击对话框中的 **MCP (插头图标)**。\n3. 点击**Install按钮** 。\n4. **选择Edit mcp.json**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953870043-013b0c77-5282-4125-b9b8-911084c2bc8c.png)\n\n5. 填写配置:\n - **Name**: `fofamap-v2`\n - **Command**: `你的Python解释器绝对路径`\n - **Args**: `你的脚本绝对路径` (注意:LM Studio 有时需要把 args 分开填,或者填在一个框里,视版本而定)。\n * _建议形式_: `[\"/Users/ka/.../mcp_server.py\"]`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954026399-f53295dc-ac1e-4101-9f54-dc87fd438ea5.png)\n\n6. 点击 **Save**。\n\n**👉 如何使用:**\n\n1. 去 **Chat** 界面。\n2. 加载一个支持 Tool Calling 的模型(推荐 `openai/gpt-oss-20b` 或 `Qwen 2.5 7B Instruct`,或者是 LM Studio 里的 DeepSeek R1/V3)。\n3. 在聊天框上方的 **Tools** 下拉菜单中,勾选 `mcp/fofamap-v2`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954105711-a5c74b58-4181-4f91-afcb-17b449bd6d89.png)\n\n4. 输入提示词:“帮我查一下Nginx在美国的分布情况···”\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954226754-f5f9b4b3-95b5-4690-bf08-a5279470dda5.png)\n\n---\n\n# ☢️ 漏洞扫描联动(Nuclei)\n在2.0版本中AI 会根据查询结果智能生成Nuclei漏洞扫描命令参数:\n\n```latex\n[AI] 推荐命令: nuclei -tags spring -severity critical,high\n\n> 🚀 执行\n> ✏️ 修改\n> 🚫 仅生成报告\n```\n\n---\n\n# 📂 结果输出结构\n```bash\nresults/\n└── domain__harvard_edu_____country__US_20260108_173107\n ├── batch_merge_20260108_173107.xlsx\n ├── nuclei_result_20260108_173107.txt\n ├── report_20260108_173107.md\n └── targets_20260108_173107.txt\n```\n\n---\n\n# 🛡️ 免责声明\n+ 本工具仅面向**合法授权**的企业安全建设行为(如内部攻防演练、资产管理)。\n+ 在使用本工具进行检测时,您应确保该行为符合当地法律法规,并已取得目标所有者的授权。\n+ **禁止用于任何非法用途**。如您在使用本工具的过程中存在非法行为,您需自行承担相应后果,开发者不承担任何法律责任。\n\n---\n\n**FofaMap-V2.0由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**【打赏支持❤️】代码传情跨山海,点滴支持皆温暖✨**\n\n虽然代码完全开源,但每杯咖啡都能让我们走得更远 ☕️\n\n<img width=\"500\" height=\"400\" alt=\"打赏码\" src=\"https://github.com/user-attachments/assets/02868aed-357e-4740-983a-d5a8ea05bdbf\" />\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**【战队公众号】扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【战队知识星球】福利大放送,限时优惠-仅限前100名**\n\n<img width=\"318\" height=\"958\" alt=\"星球优惠券\" src=\"https://github.com/user-attachments/assets/ab5b2b9b-82b6-4668-94e1-9e5e3d055f9a\" />\n\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n"}, "a5af0c47a15bb705761b673492a017eaf20d41f2": {"t": 1785748524.5649998, "n": 15670, "h": "85a8f2bae4b0ba6f", "c": "# 🗺️ FofaMap v2.0 — Platinum Agent Edition\n> 🧠 **全网首个支持 MCP 协议 + AI 自我反思机制的红队资产测绘智能体** \nSelf-Reflecting AI Queries → MCP Protocol Integration → Intelligent Vulnerability Scanning\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://img.shields.io/badge/Python-3.10+-blue.svg)\n![](https://img.shields.io/badge/Version-2.0.0-blue.svg)\n![](https://img.shields.io/badge/AI-Self--Reflecting-blueviolet.svg)\n![](https://img.shields.io/badge/MCP-AI%20Ready-purple.svg)\n![](https://img.shields.io/badge/Nuclei-Integrated-orange.svg)\n![](https://img.shields.io/badge/DeepSeek-V3-red.svg)\n![](https://img.shields.io/badge/License-MIT-green.svg)\n---\n\n# ✨ 一句话介绍\n> ❌ 它不是 FOFA 工具 \n❌ 也不是 Nuclei 封装 \n✅ 它是:**一个可以被 AI 接管、会自己反思、会自己决策扫描策略的「全网资产测绘智能体」**\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970866287-2b0bc337-6e11-4708-a8d8-a6afe484d4b8.png)\n\n---\n\n# 🚀 v2.0 是什么级别的升级?\n> FofaMap 从「资产查询工具」→ **进化为 AI Agent(智能体)**\n>\n\n### 🧠 1️⃣ 你只要说人话\n```bash\npython3 fofamap.py -ai \"帮我找一下bing.com所有的子域名,并扫描一下\"\n```\n\nAI 自动完成:\n\n+ 理解你的意图\n+ 生成 FOFA 语法\n+ 查询资产\n+ 若 0 结果 → 启动 **自我反思机制** 自动放宽条件重试\n+ 分析资产指纹\n+ 判断是否值得扫描\n+ 自动生成 Nuclei 扫描参数\n+ 询问你是否执行\n\n---\n\n### 🤖 2️⃣ 会“自我反思”的 AI(核心黑科技)\n> 不再出现:`0 Results`\n>\n\nAI 会自动:\n\n+ 判断:\n - 是否地区条件过严?\n - 是否关键词不合理?\n - 是否语法太死?\n+ 自动:\n - 放宽条件\n - 重写语法\n - 多策略重试\n+ 直到:**尽量给你产出结果**\n\n---\n\n### 🔌 3️⃣ 原生 MCP 支持(给 AI / Agent 用)\n> 支持:**Claude Desktop / Cursor / 自建 Agent**\n>\n\n你可以直接对 AI 说:\n\n> 「调用 FofaMap,帮我分析最近致远 OA 的风险态势」\n>\n\nAI 会:\n\n> 自动调用 FofaMap → 自动跑任务 → 自动总结报告\n>\n\n+ **Cursor调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949431600-3bfb4e1e-4283-4697-94d4-837aed2de331.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949509622-f814692f-82f6-4291-b5b6-ba334fdd76d4.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949697647-b2137289-2319-4ada-8094-eecfa88fe83a.png)\n\n+ **LM Stuido调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953068363-036d2e7a-5867-4937-8574-7f9c73f89f71.png)\n\n---\n\n### 🎯 4️⃣ 看人下菜的“智能扫描决策”\nAI 会根据资产指纹:\n\n| 发现 | 自动推荐 |\n| --- | --- |\n| Spring | `-tags spring` |\n| WebLogic | `-tags weblogic` |\n| ThinkPHP | `-tags thinkphp` |\n| Struts2 | `-tags struts` |\n\n\n> ❌ 不再无脑全量扫 \n✅ 每一次扫描都是 **有脑子的精准打击**\n>\n\n---\n\n# 🧩 谁适合用?\n+ 🧑‍💻 安全小白:\n\n> 会说一句话就能用\n>\n\n+ 🛡️ SRC / 红队:\n\n> 批量资产 + 自动化挖洞 + 自动报告\n>\n\n+ 🤖 AI Agent 开发者:\n\n> 直接当「安全能力插件」\n>\n\n+ 🏗️ 平台开发者:\n\n> 可嵌入到攻防平台 / 资产平台 / SOC\n>\n\n---\n\n# 📦 项目结构(平台级架构)\n```bash\n.\n├── config/\n│ ├── __init__.py # ✅ 负责读取 yaml 并导出 settings 对象\n│ └── settings.yaml # ⭐ 全局配置(FOFA / AI / 系统)\n│\n├── core/ # 🧠 核心引擎层\n│ ├── ai.py # AI Agent 中枢(意图 / 反思 / 决策 / 总结)\n│ ├── client.py # FOFA API 封装\n│ ├── core.py # 主工作流调度器\n│ ├── excel.py # Excel 报告导出\n│ ├── handler.py # CLI / MCP 入口分发\n│ └── scanner.py # Nuclei 智能联动\n│\n├── utils/\n│ ├── helpers.py # 通用工具函数\n│ ├── logger.py # 日志系统\n│ └── printer.py # 终端富文本输出\n│\n├── fofamap.py # 🚀 CLI 主入口(一切从这里开始)\n├── mcp_server.py # 🔌 MCP Server(给 AI 调用)\n├── results/ # 📂 所有任务项目目录\n├── requirements.txt\n└── README.md\n```\n\n---\n\n# 🛠️ 安装\n## 1️⃣ 环境\n```bash\nPython >= 3.10\n```\n\n```bash\ngit clone https://github.com/asaotomo/FofaMap.git\ncd FofaMap\npip3 install -r requirements.txt\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950152421-2122be93-8a0d-471c-aa54-6a1506a7eb67.png)\n\n```bash\npython3 fofamap.py --help #查看工具用法\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/752c3b00-4306-429c-a29b-b6ae735b6b6a\" />\n\n\n---\n\n## 2️⃣ 初始化配置(✨ 向导模式)\n```bash\npython3 fofamap.py init\n```\n\n自动引导你填写:\n\n+ FOFA Email / Key\n+ 使用的 AI(DeepSeek / OpenAI / Ollama / LMStudio)\n+ 默认模型名称\n\n配置保存至:\n\n```bash\nconfig/settings.yaml\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950423887-143904ea-fc2c-435c-a0d6-4f3d6f853f36.png)\n\n---\n\n## 3️⃣ 配置 Nuclei(可选)\n如需漏洞扫描:\n\n+ 确保 `nuclei` 在 PATH 中\n\n```bash\nnuclei -version #输入此命令查看是否添加成功\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950503977-57d6011c-dd79-495d-9daf-3eb9a5f11093.png)\n\n+ 或下载nuclei二进制文件后直接放入项目根目录\n\n```bash\nhttps://github.com/projectdiscovery/nuclei/releases ## nuclei 扫描器官方下载地址,注意要下载对应自己操作系统版本的二进制文件\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950804043-97f52c4e-2aaa-4fb4-bb5a-41bc58d6285c.png)\n\n---\n\n# ⚙️ 配置文件详解(config/settings.yaml)\n```bash\n#====== 用户信息 (User Info) ======\nuserinfo:\n # [基础] FOFA 凭证\n email: \"your_email@example.com\"\n key: \"your_fofa_api_key\"\n \n # [进阶] AI 模型配置 (支持 DeepSeek/OpenAI/Ollama 等)\n deepseek_api_key: \"sk-xxxxxxxxxxxxxxxxxxxxxxxx\"\n \n # 场景 A: 使用官方 DeepSeek\n api_type: \"deepseek\"\n base_url: \"https://api.deepseek.com/v1\"\n model: \"deepseek-chat\"\n\n # 场景 B: 使用本地 Ollama (注释掉上方,启用下方)\n # api_type: \"ollama\"\n # base_url: \"http://localhost:11434/v1\"\n # model: \"qwen2.5:7b\"\n\n# ====== 搜索设置 (Search Settings) ======\nsearch:\n fields: \"host,protocol,ip,port,title,domain,country,icp\"\n size: 100\n full: false # 设为 true 可查询一年前的数据\n start_page: 1\n end_page: 5 # 自动爬取前 5 页\n\n# ====== 性能与输出 (System) ======\nsystem:\n logger: true\n sheet_merge: true\n concurrency: 15 # 建议根据网络状况调整 (10-50)\n```\n\n---\n\n# 💻 使用方法\n---\n\n# 🧙 模式一:交互式任务向导模式(✨ 新手 & 日常首选)\n💡 **什么参数都不用记,只要运行:**\n\n```plain\npython3 fofamap.py\n```\n\n或:\n\n```plain\npython fofamap.py\n```\n\n即可进入 **AI 驱动的交互式任务向导界面**:\n\n```plain\n________ ____ __ ___ \n / ____/ /_ __/ __/___ _ / |/ /___ _____ \n / /_ / __ \\/ / /_/ __ `/ / /|_/ / __ `/ __ \\ \n / __/ / /_/ / / __/ /_/ / / / / / /_/ / /_/ / \n/_/ \\____/_/_/ \\__,_/ /_/ /_/\\__,_/ .___/ \n /_/ v2.0 \n [ AI Powered & Interactive Wizard ] -- By Hx0 Team\n\n[!] 启动任务向导...\n? 请选择您要执行的操作:\n » 1. 🔮 AI 智能侦察 (自然语言 -> 自动决策)\n 2. 🔍 FOFA 标准查询 (语法输入)\n 3. 🖥️ Host 聚合查询 (IP/域名详情)\n 4. 📊 统计聚合查询 (数据分布分析)\n 5. 🖼️ Icon Hash 查询 (favicon 逆向)\n 6. 📁 批量文件查询 (TXT 批量指令)\n ---------------\n 0. 🚪 退出程序\n```\n\n---\n\n## 🎯 这个模式适合谁?\n+ ✅ 不想记命令参数的人\n+ ✅ 第一次使用的新手\n+ ✅ 日常使用 / 演示 / 培训 / 快速操作\n+ ✅ 所有“我只想点一下跑任务”的场景\n\n---\n\n## 🧠 向导模式能做什么?\n你可以通过方向键选择:\n\n### 1️⃣ 🔮 AI 智能侦察(⭐ 强烈推荐)\n直接输入一句话:\n\n```plain\n我收集一下美国哈佛大学的子域名网站,并扫描一下\n```\n\n系统将自动:\n\n+ AI 理解意图\n+ 自动生成 FOFA 语法\n+ 自动查询\n+ 自动反思(0 结果会重试)\n+ 自动判断是否扫描\n+ 自动生成扫描参数\n+ 自动生成报告\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951546443-9d44a9ad-6b35-44fb-91e3-ea109d596712.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951571098-29b92150-0196-4958-826b-ca23e43fe811.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767952132926-1739cb75-8448-4034-9861-6967af7ada0f.png)\n\n---\n\n### 2️⃣ 🔍 FOFA 标准查询\n使用FOFA查询语句查询数据\n\n```plain\napp=\"ThinkPHP\" && country=\"CN\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969525080-a73044c2-440e-4c72-a114-4965e6f7a454.png)\n\n---\n\n### 3️⃣ 🖥️ Host 聚合查询(AI 深度画像)\n根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```plain\n8.8.8.8 / baidu.com \n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969742560-30b321cd-3993-43aa-b22a-b09e55c7a2fe.png)\n\n---\n\n### 4️⃣ 📊 统计聚合查询(AI 态势分析)\n根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n```plain\napp=\"redis\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969913563-68bcdcb8-9107-41c3-8fe3-933e2e456d73.png)\n\n---\n\n### 5️⃣ 🖼️ Icon Hash 查询\n<font style=\"color:rgb(31, 35, 40);\">用户可通过填入任意一网站地址,</font>系统<font style=\"color:rgb(31, 35, 40);\">会自动获取该网站的favicon.ico图标文件,并计算其hash值,并查找与此图标相似的网站。</font>\n\n```plain\nhttps://www.bing.com\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969989542-9374fb72-3f71-40bb-83cd-16a298bc5ba0.png)\n\n---\n\n### 6️⃣ 📁 批量文件查询\n<font style=\"color:rgb(31, 35, 40);\">批量查询,用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,输入文件路径(若放在工具根目录可以直接输入文件名称)即可进行批量查询。</font>\n\n```plain\n114.114.114.114\nwww.baidu.com\napp=\"kafka\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970211247-9467dce6-257d-4f5c-ada0-aad859eff97d.png)\n\n# 🔮 模式二:经典模式( 老用户推荐)\n## 1️⃣ AI查询模式\n```bash\npython3 fofamap.py -ai \"帮我收集一下美国哈佛大学的子域名网站,并扫描一下\"\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/b879ea31-b048-4b68-a505-df304097bc97\" />\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/1e95b171-592b-49a7-b64f-c7a69fc562b0\" />\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/bf5c4740-b940-4254-aca5-791402950268\" />\n\n\n## 2️⃣ 基础查询\n如果用户想要使用fofa联合查询语句,例如:app=\"grafana\" && country=\"US\"。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\"ThinkPHP\\\" && country=\\\"CN\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n```bash\npython3 fofamap.py -q 'app=\"ThinkPHP\" && country=\"CN\"'\n```\n<img width=\"1440\" height=\"702\" alt=\"image\" src=\"https://github.com/user-attachments/assets/2b59ffde-fcb2-4c0b-ba48-c81af19e6142\" />\n\n## 3️⃣ Host 深度画像(AI 报告)\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n```bash\npython3 fofamap.py -hq 8.8.8.8\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/32a44671-f552-4a8f-a501-807006133923\" />\n\n## 4️⃣ 统计聚合(AI 态势解读)\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见FOFA API 官方文档\n```bash\npython3 fofamap.py -cq 'app=\"redis\"' -f country,org\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/526dd803-3e6a-4399-a8d3-a0f0c8b2cf21\" />\n\n---\n\n## 5️⃣ 图标 Hash 查询\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值,并去查找使用相同favicon.ico图标文件的网站。\n```bash\npython3 fofamap.py -ico https://www.bing.com\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/65fa09a3-44d2-4414-9e09-f02fbf5e9455\" />\n\n---\n\n## 6️⃣ 批量查询\n用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n```bash\npython3 fofamap.py -bq targets.txt\n```\n**targets.txt文件内容:**\n\n```plain\n8.8.8.8\nbaidu.com\nicp=\"京ICP备10036305号\"\n```\n<img alt=\"image\" src=\"https://github.com/user-attachments/assets/67b3057b-e9eb-48cb-9f91-fb4aa2e408fb\" />\n\n## 7️⃣ 过滤查询\n| **特性** | **-i (--include)** | **-k (--key_word)** |\n| ------------ | ------------------------ | ------------------------------------ |\n| **筛选逻辑** | **过滤 (Filter)** | **搜索 (Search)** |\n| **处理阶段** | 第一层 (先执行) | 第二层 (后执行) |\n| **常用对象** | 状态码 | 筛选包含关键词的内容 |\n| **输入示例** | `\"200,301\"` (支持状态码) | `\"登录,后台\"` (支持多词) |\n| **目的** | **“筛选出对应状态码的查询结果”** | **“把查询结果中保护指定关键词数据找出来”** |\n\n\n如下命令:在 baidu.com 的所有资产中,保留 状态码为 200 (网页正常) 的结果,并进一步提取出包含 '文心' 或 '旅游' 关键词的目标。\n```bash\npython3 fofamap.py -q 'domain=\"baidu.com\"' -i \"200\" -k \"文心,旅游\"\n```\n<img width=\"1470\" height=\"655\" alt=\"image\" src=\"https://github.com/user-attachments/assets/709eb99e-b942-42ff-8eb7-3167230aeab3\" />\n\n\n\n---\n\n# 🔌 模式三:MCP 服务(🔥 给 AI / Agent 用)\n### 1️⃣ 集成到 Cursor (最推荐,体验丝滑)\nCursor 对 MCP 的支持非常完善,配置好后,你可以直接在 Composer (Ctrl+I) 或 Chat (Ctrl+L) 中用自然语言调用工具。\n\n1. 打开 **Cursor Settings** (点击右上角齿轮)。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953701100-91d40367-76ae-4239-9cdb-e64c4b442251.png)\n\n2. 在左侧菜单找到 **Tools** **&** **MCP**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953756050-3947fa69-3f69-4e3f-9264-96147c13027d.png)\n\n3. 点击 **+ Add New MCP Server**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953462183-08f47ea0-6683-4f71-886c-fb645b92f9b8.png)\n\n4. 填写mcp.json配置信息:\n - **Name**: `fofamap-v2` (随便起)\n - **Type**: `command` (或者叫 Stdio)\n - **Command**: `你的Python解释器绝对路径(若写入环境变量可以直接填python)`\n * 例如:`python3.10`\n - **Args**: `你的脚本绝对路径`\n * 例如:`/Users/ka/Downloads/fofamap/fofa/mcp_server.py`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953312691-9b0133cf-fc4c-47d7-82d8-a2bf55d2efec.png)\n\n5. 点击 **Save**。\n - 此时你会看到一个 **绿色的圆点** 🟢,状态显示 `Connected`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953585044-97eb5e90-3a00-4ef7-9b83-9a1fa7b80397.png)\n\n - 如果显示红色,点击刷新图标,或者去 Cursor 的 `Output` -> `MCP Log` 或者是我们刚才修好的 `Log` 窗口看报错。\n\n**👉 如何使用:** 打开 Cursor Chat (Ctrl+L),直接输入:\n\n“帮我查一下 baidu.com 的资产信息,并检查是否有存活。” \n\nCursor 会自动分析意图,并在界面上显示 `Using tool: search_assets...`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953662133-8e369f5a-3d4b-499d-aed0-74094190fe0d.png)\n\n---\n\n### 2️⃣ 集成到 LM Studio (本地模型)\nLM Studio 0.3.0+ 版本开始支持 MCP。这允许你用本地的 DeepSeek 或 Llama 3 调用你的工具。\n\n1. 打开 **LM Studio**。\n2. 点击对话框中的 **MCP (插头图标)**。\n3. 点击**Install按钮** 。\n4. **选择Edit mcp.json**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953870043-013b0c77-5282-4125-b9b8-911084c2bc8c.png)\n\n5. 填写配置:\n - **Name**: `fofamap-v2`\n - **Command**: `你的Python解释器绝对路径`\n - **Args**: `你的脚本绝对路径` (注意:LM Studio 有时需要把 args 分开填,或者填在一个框里,视版本而定)。\n * _建议形式_: `[\"/Users/ka/.../mcp_server.py\"]`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954026399-f53295dc-ac1e-4101-9f54-dc87fd438ea5.png)\n\n6. 点击 **Save**。\n\n**👉 如何使用:**\n\n1. 去 **Chat** 界面。\n2. 加载一个支持 Tool Calling 的模型(推荐 `openai/gpt-oss-20b` 或 `Qwen 2.5 7B Instruct`,或者是 LM Studio 里的 DeepSeek R1/V3)。\n3. 在聊天框上方的 **Tools** 下拉菜单中,勾选 `mcp/fofamap-v2`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954105711-a5c74b58-4181-4f91-afcb-17b449bd6d89.png)\n\n4. 输入提示词:“帮我查一下Nginx在美国的分布情况···”\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954226754-f5f9b4b3-95b5-4690-bf08-a5279470dda5.png)\n\n---\n\n# ☢️ 漏洞扫描联动(Nuclei)\n在2.0版本中AI 会根据查询结果智能生成Nuclei漏洞扫描命令参数:\n\n```latex\n[AI] 推荐命令: nuclei -tags spring -severity critical,high\n\n> 🚀 执行\n> ✏️ 修改\n> 🚫 仅生成报告\n```\n\n---\n\n# 📂 结果输出结构\n```bash\nresults/\n└── domain__harvard_edu_____country__US_20260108_173107\n ├── batch_merge_20260108_173107.xlsx\n ├── nuclei_result_20260108_173107.txt\n ├── report_20260108_173107.md\n └── targets_20260108_173107.txt\n```\n\n---\n\n# 🛡️ 免责声明\n+ 本工具仅面向**合法授权**的企业安全建设行为(如内部攻防演练、资产管理)。\n+ 在使用本工具进行检测时,您应确保该行为符合当地法律法规,并已取得目标所有者的授权。\n+ **禁止用于任何非法用途**。如您在使用本工具的过程中存在非法行为,您需自行承担相应后果,开发者不承担任何法律责任。\n\n---\n\n**FofaMap-V2.0由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**【打赏支持❤️】代码传情跨山海,点滴支持皆温暖✨**\n\n虽然代码完全开源,但每杯咖啡都能让我们走得更远 ☕️\n\n<img width=\"500\" height=\"400\" alt=\"打赏码\" src=\"https://github.com/user-attachments/assets/02868aed-357e-4740-983a-d5a8ea05bdbf\" />\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**【战队公众号】扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【战队知识星球】福利大放送,限时优惠-仅限前100名**\n\n<img width=\"318\" height=\"958\" alt=\"星球优惠券\" src=\"https://github.com/user-attachments/assets/ab5b2b9b-82b6-4668-94e1-9e5e3d055f9a\" />\n\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n"}, "e340e1cbc16ba656dbb34167867c5bbf3b230e6a": {"t": 1785748525.6681266, "n": 13269, "h": "96f9f6945185dfd5", "c": "# 🗺️ FofaMap v2.0 — Platinum Agent Edition\n> 🧠 **全网首个支持 MCP 协议 + AI 自我反思机制的红队资产测绘智能体** \nSelf-Reflecting AI Queries → MCP Protocol Integration → Intelligent Vulnerability Scanning\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://img.shields.io/badge/Python-3.10+-blue.svg)\n![](https://img.shields.io/badge/Version-2.0.0-blue.svg)\n![](https://img.shields.io/badge/AI-Self--Reflecting-blueviolet.svg)\n![](https://img.shields.io/badge/MCP-AI%20Ready-purple.svg)\n![](https://img.shields.io/badge/Nuclei-Integrated-orange.svg)\n![](https://img.shields.io/badge/DeepSeek-V3-red.svg)\n![](https://img.shields.io/badge/License-MIT-green.svg)\n---\n\n# ✨ 一句话介绍\n> ❌ 它不是 FOFA 工具 \n❌ 也不是 Nuclei 封装 \n✅ 它是:**一个可以被 AI 接管、会自己反思、会自己决策扫描策略的「全网资产测绘智能体」**\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970866287-2b0bc337-6e11-4708-a8d8-a6afe484d4b8.png)\n\n---\n\n# 🚀 v2.0 是什么级别的升级?\n> FofaMap 从「资产查询工具」→ **进化为 AI Agent(智能体)**\n>\n\n### 🧠 1️⃣ 你只要说人话\n```bash\npython3 fofamap.py -ai \"帮我找一下bing.com所有的子域名,并扫描一下\"\n```\n\nAI 自动完成:\n\n+ 理解你的意图\n+ 生成 FOFA 语法\n+ 查询资产\n+ 若 0 结果 → 启动 **自我反思机制** 自动放宽条件重试\n+ 分析资产指纹\n+ 判断是否值得扫描\n+ 自动生成 Nuclei 扫描参数\n+ 询问你是否执行\n\n---\n\n### 🤖 2️⃣ 会“自我反思”的 AI(核心黑科技)\n> 不再出现:`0 Results`\n>\n\nAI 会自动:\n\n+ 判断:\n - 是否地区条件过严?\n - 是否关键词不合理?\n - 是否语法太死?\n+ 自动:\n - 放宽条件\n - 重写语法\n - 多策略重试\n+ 直到:**尽量给你产出结果**\n\n---\n\n### 🔌 3️⃣ 原生 MCP 支持(给 AI / Agent 用)\n> 支持:**Claude Desktop / Cursor / 自建 Agent**\n>\n\n你可以直接对 AI 说:\n\n> 「调用 FofaMap,帮我分析最近致远 OA 的风险态势」\n>\n\nAI 会:\n\n> 自动调用 FofaMap → 自动跑任务 → 自动总结报告\n>\n\n+ **Cursor调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949431600-3bfb4e1e-4283-4697-94d4-837aed2de331.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949509622-f814692f-82f6-4291-b5b6-ba334fdd76d4.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949697647-b2137289-2319-4ada-8094-eecfa88fe83a.png)\n\n+ **LM Stuido调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953068363-036d2e7a-5867-4937-8574-7f9c73f89f71.png)\n\n---\n\n### 🎯 4️⃣ 看人下菜的“智能扫描决策”\nAI 会根据资产指纹:\n\n| 发现 | 自动推荐 |\n| --- | --- |\n| Spring | `-tags spring` |\n| WebLogic | `-tags weblogic` |\n| ThinkPHP | `-tags thinkphp` |\n| Struts2 | `-tags struts` |\n\n\n> ❌ 不再无脑全量扫 \n✅ 每一次扫描都是 **有脑子的精准打击**\n>\n\n---\n\n# 🧩 谁适合用?\n+ 🧑‍💻 安全小白:\n\n> 会说一句话就能用\n>\n\n+ 🛡️ SRC / 红队:\n\n> 批量资产 + 自动化挖洞 + 自动报告\n>\n\n+ 🤖 AI Agent 开发者:\n\n> 直接当「安全能力插件」\n>\n\n+ 🏗️ 平台开发者:\n\n> 可嵌入到攻防平台 / 资产平台 / SOC\n>\n\n---\n\n# 📦 项目结构(平台级架构)\n```bash\n.\n├── config/\n│ ├── __init__.py # ✅ 负责读取 yaml 并导出 settings 对象\n│ └── settings.yaml # ⭐ 全局配置(FOFA / AI / 系统)\n│\n├── core/ # 🧠 核心引擎层\n│ ├── ai.py # AI Agent 中枢(意图 / 反思 / 决策 / 总结)\n│ ├── client.py # FOFA API 封装\n│ ├── core.py # 主工作流调度器\n│ ├── excel.py # Excel 报告导出\n│ ├── handler.py # CLI / MCP 入口分发\n│ └── scanner.py # Nuclei 智能联动\n│\n├── utils/\n│ ├── helpers.py # 通用工具函数\n│ ├── logger.py # 日志系统\n│ └── printer.py # 终端富文本输出\n│\n├── fofamap.py # 🚀 CLI 主入口(一切从这里开始)\n├── mcp_server.py # 🔌 MCP Server(给 AI 调用)\n├── results/ # 📂 所有任务项目目录\n├── requirements.txt\n└── README.md\n```\n\n---\n\n# 🛠️ 安装\n## 1️⃣ 环境\n```bash\nPython >= 3.10\n```\n\n```bash\ngit clone https://github.com/asaotomo/FofaMap.git\ncd FofaMap\npip3 install -r requirements.txt\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950152421-2122be93-8a0d-471c-aa54-6a1506a7eb67.png)\n\n```bash\npython3 fofamap.py --help #查看工具用法\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950323971-23495a54-8810-4f2b-8fc4-6dfe5ab655a9.png)\n\n---\n\n## 2️⃣ 初始化配置(✨ 向导模式)\n```bash\npython3 fofamap.py init\n```\n\n自动引导你填写:\n\n+ FOFA Email / Key\n+ 使用的 AI(DeepSeek / OpenAI / Ollama / LMStudio)\n+ 默认模型名称\n\n配置保存至:\n\n```bash\nconfig/settings.yaml\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950423887-143904ea-fc2c-435c-a0d6-4f3d6f853f36.png)\n\n---\n\n## 3️⃣ 配置 Nuclei(可选)\n如需漏洞扫描:\n\n+ 确保 `nuclei` 在 PATH 中\n\n```bash\nnuclei -version #输入此命令查看是否添加成功\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950503977-57d6011c-dd79-495d-9daf-3eb9a5f11093.png)\n\n+ 或下载nuclei二进制文件后直接放入项目根目录\n\n```bash\nhttps://github.com/projectdiscovery/nuclei/releases ## nuclei 扫描器官方下载地址,注意要下载对应自己操作系统版本的二进制文件\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950804043-97f52c4e-2aaa-4fb4-bb5a-41bc58d6285c.png)\n\n---\n\n# ⚙️ 配置文件详解(config/settings.yaml)\n```bash\n#====== 用户信息 (User Info) ======\nuserinfo:\n # [基础] FOFA 凭证\n email: \"your_email@example.com\"\n key: \"your_fofa_api_key\"\n \n # [进阶] AI 模型配置 (支持 DeepSeek/OpenAI/Ollama 等)\n deepseek_api_key: \"sk-xxxxxxxxxxxxxxxxxxxxxxxx\"\n \n # 场景 A: 使用官方 DeepSeek\n api_type: \"deepseek\"\n base_url: \"https://api.deepseek.com/v1\"\n model: \"deepseek-chat\"\n\n # 场景 B: 使用本地 Ollama (注释掉上方,启用下方)\n # api_type: \"ollama\"\n # base_url: \"http://localhost:11434/v1\"\n # model: \"qwen2.5:7b\"\n\n# ====== 搜索设置 (Search Settings) ======\nsearch:\n fields: \"host,protocol,ip,port,title,domain,country,icp\"\n size: 100\n full: false # 设为 true 可查询一年前的数据\n start_page: 1\n end_page: 5 # 自动爬取前 5 页\n\n# ====== 性能与输出 (System) ======\nsystem:\n logger: true\n sheet_merge: true\n concurrency: 15 # 建议根据网络状况调整 (10-50)\n```\n\n---\n\n# 💻 使用方法\n---\n\n# 🧙 模式一:交互式任务向导模式(✨ 新手 & 日常首选)\n💡 **什么参数都不用记,只要运行:**\n\n```plain\npython3 fofamap.py\n```\n\n或:\n\n```plain\npython fofamap.py\n```\n\n即可进入 **AI 驱动的交互式任务向导界面**:\n\n```plain\n________ ____ __ ___ \n / ____/ /_ __/ __/___ _ / |/ /___ _____ \n / /_ / __ \\/ / /_/ __ `/ / /|_/ / __ `/ __ \\ \n / __/ / /_/ / / __/ /_/ / / / / / /_/ / /_/ / \n/_/ \\____/_/_/ \\__,_/ /_/ /_/\\__,_/ .___/ \n /_/ v2.0 \n [ AI Powered & Interactive Wizard ] -- By Hx0 Team\n\n[!] 启动任务向导...\n? 请选择您要执行的操作:\n » 1. 🔮 AI 智能侦察 (自然语言 -> 自动决策)\n 2. 🔍 FOFA 标准查询 (语法输入)\n 3. 🖥️ Host 聚合查询 (IP/域名详情)\n 4. 📊 统计聚合查询 (数据分布分析)\n 5. 🖼️ Icon Hash 查询 (favicon 逆向)\n 6. 📁 批量文件查询 (TXT 批量指令)\n ---------------\n 0. 🚪 退出程序\n```\n\n---\n\n## 🎯 这个模式适合谁?\n+ ✅ 不想记命令参数的人\n+ ✅ 第一次使用的新手\n+ ✅ 日常使用 / 演示 / 培训 / 快速操作\n+ ✅ 所有“我只想点一下跑任务”的场景\n\n---\n\n## 🧠 向导模式能做什么?\n你可以通过方向键选择:\n\n### 1️⃣ 🔮 AI 智能侦察(⭐ 强烈推荐)\n直接输入一句话:\n\n```plain\n我收集一下美国哈佛大学的子域名网站,并扫描一下\n```\n\n系统将自动:\n\n+ AI 理解意图\n+ 自动生成 FOFA 语法\n+ 自动查询\n+ 自动反思(0 结果会重试)\n+ 自动判断是否扫描\n+ 自动生成扫描参数\n+ 自动生成报告\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951546443-9d44a9ad-6b35-44fb-91e3-ea109d596712.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951571098-29b92150-0196-4958-826b-ca23e43fe811.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767952132926-1739cb75-8448-4034-9861-6967af7ada0f.png)\n\n---\n\n### 2️⃣ 🔍 FOFA 标准查询\n使用FOFA查询语句查询数据\n\n```plain\napp=\"ThinkPHP\" && country=\"CN\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969525080-a73044c2-440e-4c72-a114-4965e6f7a454.png)\n\n---\n\n### 3️⃣ 🖥️ Host 聚合查询(AI 深度画像)\n根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```plain\n8.8.8.8 / baidu.com \n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969742560-30b321cd-3993-43aa-b22a-b09e55c7a2fe.png)\n\n---\n\n### 4️⃣ 📊 统计聚合查询(AI 态势分析)\n根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n```plain\napp=\"redis\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969913563-68bcdcb8-9107-41c3-8fe3-933e2e456d73.png)\n\n---\n\n### 5️⃣ 🖼️ Icon Hash 查询\n<font style=\"color:rgb(31, 35, 40);\">用户可通过填入任意一网站地址,</font>系统<font style=\"color:rgb(31, 35, 40);\">会自动获取该网站的favicon.ico图标文件,并计算其hash值,并查找与此图标相似的网站。</font>\n\n```plain\nhttps://www.bing.com\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969989542-9374fb72-3f71-40bb-83cd-16a298bc5ba0.png)\n\n---\n\n### 6️⃣ 📁 批量文件查询\n<font style=\"color:rgb(31, 35, 40);\">批量查询,用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,输入文件路径(若放在工具根目录可以直接输入文件名称)即可进行批量查询。</font>\n\n```plain\n114.114.114.114\nwww.baidu.com\napp=\"kafka\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970211247-9467dce6-257d-4f5c-ada0-aad859eff97d.png)\n\n# 🔮 模式二:经典模式( 老用户推荐)\n## 1️⃣ AI查询模式\n```bash\npython3 fofamap.py -ai \"帮我收集一下美国哈佛大学的子域名网站,并扫描一下\"\n```\n\n## 2️⃣ 基础查询\n```bash\npython3 fofamap.py -q 'app=\"ThinkPHP\" && country=\"CN\"'\n```\n\n## 3️⃣ Host 深度画像(AI 报告)\n```bash\npython3 fofamap.py -hq 8.8.8.8\n```\n\n## 4️⃣ 统计聚合(AI 态势解读)\n```bash\npython3 fofamap.py -cq 'app=\"redis\"' -f country,org\n```\n\n---\n\n## 5️⃣ 图标 Hash 查询\n```bash\npython3 fofamap.py -ico https://www.bing.com\n```\n\n---\n\n## 6️⃣ 批量查询\n```bash\npython3 fofamap.py -bq targets.txt\n```\n\n---\n\n# 🔌 模式三:MCP 服务(🔥 给 AI / Agent 用)\n### 1️⃣ 集成到 Cursor (最推荐,体验丝滑)\nCursor 对 MCP 的支持非常完善,配置好后,你可以直接在 Composer (Ctrl+I) 或 Chat (Ctrl+L) 中用自然语言调用工具。\n\n1. 打开 **Cursor Settings** (点击右上角齿轮)。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953701100-91d40367-76ae-4239-9cdb-e64c4b442251.png)\n\n2. 在左侧菜单找到 **Tools** **&** **MCP**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953756050-3947fa69-3f69-4e3f-9264-96147c13027d.png)\n\n3. 点击 **+ Add New MCP Server**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953462183-08f47ea0-6683-4f71-886c-fb645b92f9b8.png)\n\n4. 填写mcp.json配置信息:\n - **Name**: `fofamap-v2` (随便起)\n - **Type**: `command` (或者叫 Stdio)\n - **Command**: `你的Python解释器绝对路径(若写入环境变量可以直接填python)`\n * 例如:`python3.10`\n - **Args**: `你的脚本绝对路径`\n * 例如:`/Users/ka/Downloads/fofamap/fofa/mcp_server.py`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953312691-9b0133cf-fc4c-47d7-82d8-a2bf55d2efec.png)\n\n5. 点击 **Save**。\n - 此时你会看到一个 **绿色的圆点** 🟢,状态显示 `Connected`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953585044-97eb5e90-3a00-4ef7-9b83-9a1fa7b80397.png)\n\n - 如果显示红色,点击刷新图标,或者去 Cursor 的 `Output` -> `MCP Log` 或者是我们刚才修好的 `Log` 窗口看报错。\n\n**👉 如何使用:** 打开 Cursor Chat (Ctrl+L),直接输入:\n\n“帮我查一下 baidu.com 的资产信息,并检查是否有存活。” \n\nCursor 会自动分析意图,并在界面上显示 `Using tool: search_assets...`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953662133-8e369f5a-3d4b-499d-aed0-74094190fe0d.png)\n\n---\n\n### 2️⃣ 集成到 LM Studio (本地模型)\nLM Studio 0.3.0+ 版本开始支持 MCP。这允许你用本地的 DeepSeek 或 Llama 3 调用你的工具。\n\n1. 打开 **LM Studio**。\n2. 点击对话框中的 **MCP (插头图标)**。\n3. 点击**Install按钮** 。\n4. **选择Edit mcp.json**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953870043-013b0c77-5282-4125-b9b8-911084c2bc8c.png)\n\n5. 填写配置:\n - **Name**: `fofamap-v2`\n - **Command**: `你的Python解释器绝对路径`\n - **Args**: `你的脚本绝对路径` (注意:LM Studio 有时需要把 args 分开填,或者填在一个框里,视版本而定)。\n * _建议形式_: `[\"/Users/ka/.../mcp_server.py\"]`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954026399-f53295dc-ac1e-4101-9f54-dc87fd438ea5.png)\n\n6. 点击 **Save**。\n\n**👉 如何使用:**\n\n1. 去 **Chat** 界面。\n2. 加载一个支持 Tool Calling 的模型(推荐 `openai/gpt-oss-20b` 或 `Qwen 2.5 7B Instruct`,或者是 LM Studio 里的 DeepSeek R1/V3)。\n3. 在聊天框上方的 **Tools** 下拉菜单中,勾选 `mcp/fofamap-v2`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954105711-a5c74b58-4181-4f91-afcb-17b449bd6d89.png)\n\n4. 输入提示词:“帮我查一下Nginx在美国的分布情况···”\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954226754-f5f9b4b3-95b5-4690-bf08-a5279470dda5.png)\n\n---\n\n# ☢️ 漏洞扫描联动(Nuclei)\n在2.0版本中AI 会根据查询结果智能生成Nuclei漏洞扫描命令参数:\n\n```latex\n[AI] 推荐命令: nuclei -tags spring -severity critical,high\n\n> 🚀 执行\n> ✏️ 修改\n> 🚫 仅生成报告\n```\n\n---\n\n# 📂 结果输出结构\n```bash\nresults/\n└── domain__harvard_edu_____country__US_20260108_173107\n ├── batch_merge_20260108_173107.xlsx\n ├── nuclei_result_20260108_173107.txt\n ├── report_20260108_173107.md\n └── targets_20260108_173107.txt\n```\n\n---\n\n# 🛡️ 免责声明\n+ 本工具仅面向**合法授权**的企业安全建设行为(如内部攻防演练、资产管理)。\n+ 在使用本工具进行检测时,您应确保该行为符合当地法律法规,并已取得目标所有者的授权。\n+ **禁止用于任何非法用途**。如您在使用本工具的过程中存在非法行为,您需自行承担相应后果,开发者不承担任何法律责任。\n\n---\n\n**FofaMap-V2.0由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**【打赏支持❤️】代码传情跨山海,点滴支持皆温暖✨**\n\n虽然代码完全开源,但每杯咖啡都能让我们走得更远 ☕️\n\n<img width=\"500\" height=\"400\" alt=\"打赏码\" src=\"https://github.com/user-attachments/assets/02868aed-357e-4740-983a-d5a8ea05bdbf\" />\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**【战队公众号】扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【战队知识星球】福利大放送,限时优惠-仅限前100名**\n\n<img width=\"318\" height=\"958\" alt=\"星球优惠券\" src=\"https://github.com/user-attachments/assets/ab5b2b9b-82b6-4668-94e1-9e5e3d055f9a\" />\n\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n"}, "6180d2c58e5f84c49bc6396bad8645e95588aadb": {"t": 1785748526.823209, "n": 13277, "h": "87b7f9030e4d416f", "c": "# 🗺️ FofaMap v2.0 — Platinum Agent Edition\n> 🧠 **全网首个支持 MCP 协议 + AI 自我反思机制的红队资产测绘智能体** \nSelf-Reflecting AI Queries → MCP Protocol Integration → Intelligent Vulnerability Scanning\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://img.shields.io/badge/Python-3.10+-blue.svg)\n![](https://img.shields.io/badge/Version-2.0.0-blue.svg)\n![](https://img.shields.io/badge/AI-Self--Reflecting-blueviolet.svg)\n![](https://img.shields.io/badge/MCP-AI%20Ready-purple.svg)\n![](https://img.shields.io/badge/Nuclei-Integrated-orange.svg)\n![](https://img.shields.io/badge/DeepSeek-V3-red.svg)\n![](https://img.shields.io/badge/License-MIT-green.svg)\n---\n\n# ✨ 一句话介绍\n> ❌ 它不是 FOFA 工具 \n❌ 也不是 Nuclei 封装 \n✅ 它是:**一个可以被 AI 接管、会自己反思、会自己决策扫描策略的「全网资产测绘智能体」**\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970866287-2b0bc337-6e11-4708-a8d8-a6afe484d4b8.png)\n\n---\n\n# 🚀 v2.0 是什么级别的升级?\n> FofaMap 从「资产查询工具」→ **进化为 AI Agent(智能体)**\n>\n\n### 🧠 1️⃣ 你只要说人话\n```bash\npython3 fofamap.py -ai \"帮我找一下bing.com所有的子域名,并扫描一下\"\n```\n\nAI 自动完成:\n\n+ 理解你的意图\n+ 生成 FOFA 语法\n+ 查询资产\n+ 若 0 结果 → 启动 **自我反思机制** 自动放宽条件重试\n+ 分析资产指纹\n+ 判断是否值得扫描\n+ 自动生成 Nuclei 扫描参数\n+ 询问你是否执行\n\n---\n\n### 🤖 2️⃣ 会“自我反思”的 AI(核心黑科技)\n> 不再出现:`0 Results`\n>\n\nAI 会自动:\n\n+ 判断:\n - 是否地区条件过严?\n - 是否关键词不合理?\n - 是否语法太死?\n+ 自动:\n - 放宽条件\n - 重写语法\n - 多策略重试\n+ 直到:**尽量给你产出结果**\n\n---\n\n### 🔌 3️⃣ 原生 MCP 支持(给 AI / Agent 用)\n> 支持:**Claude Desktop / Cursor / 自建 Agent**\n>\n\n你可以直接对 AI 说:\n\n> 「调用 FofaMap,帮我分析最近致远 OA 的风险态势」\n>\n\nAI 会:\n\n> 自动调用 FofaMap → 自动跑任务 → 自动总结报告\n>\n\n+ **Cursor调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949431600-3bfb4e1e-4283-4697-94d4-837aed2de331.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949509622-f814692f-82f6-4291-b5b6-ba334fdd76d4.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949697647-b2137289-2319-4ada-8094-eecfa88fe83a.png)\n\n+ **LM Stuido调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953068363-036d2e7a-5867-4937-8574-7f9c73f89f71.png)\n\n---\n\n### 🎯 4️⃣ 看人下菜的“智能扫描决策”\nAI 会根据资产指纹:\n\n| 发现 | 自动推荐 |\n| --- | --- |\n| Spring | `-tags spring` |\n| WebLogic | `-tags weblogic` |\n| ThinkPHP | `-tags thinkphp` |\n| Struts2 | `-tags struts` |\n\n\n> ❌ 不再无脑全量扫 \n✅ 每一次扫描都是 **有脑子的精准打击**\n>\n\n---\n\n# 🧩 谁适合用?\n+ 🧑‍💻 安全小白:\n\n> 会说一句话就能用\n>\n\n+ 🛡️ SRC / 红队:\n\n> 批量资产 + 自动化挖洞 + 自动报告\n>\n\n+ 🤖 AI Agent 开发者:\n\n> 直接当「安全能力插件」\n>\n\n+ 🏗️ 平台开发者:\n\n> 可嵌入到攻防平台 / 资产平台 / SOC\n>\n\n---\n\n# 📦 项目结构(平台级架构)\n```bash\n.\n├── config/\n│ ├── __init__.py # ✅ 负责读取 yaml 并导出 settings 对象\n│ └── settings.yaml # ⭐ 全局配置(FOFA / AI / 系统)\n│\n├── core/ # 🧠 核心引擎层\n│ ├── ai.py # AI Agent 中枢(意图 / 反思 / 决策 / 总结)\n│ ├── client.py # FOFA API 封装\n│ ├── core.py # 主工作流调度器\n│ ├── excel.py # Excel 报告导出\n│ ├── handler.py # CLI / MCP 入口分发\n│ └── scanner.py # Nuclei 智能联动\n│\n├── utils/\n│ ├── helpers.py # 通用工具函数\n│ ├── logger.py # 日志系统\n│ └── printer.py # 终端富文本输出\n│\n├── fofamap.py # 🚀 CLI 主入口(一切从这里开始)\n├── mcp_server.py # 🔌 MCP Server(给 AI 调用)\n├── results/ # 📂 所有任务项目目录\n├── requirements.txt\n└── README.md\n```\n\n---\n\n# 🛠️ 安装\n## 1️⃣ 环境\n```bash\nPython >= 3.10\n```\n\n```bash\ngit clone https://github.com/asaotomo/FofaMap.git\ncd FofaMap\npip3 install -r requirements.txt\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950152421-2122be93-8a0d-471c-aa54-6a1506a7eb67.png)\n\n```bash\npython3 fofamap.py --help #查看工具用法\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950323971-23495a54-8810-4f2b-8fc4-6dfe5ab655a9.png)\n\n---\n\n## 2️⃣ 初始化配置(✨ 向导模式)\n```bash\npython3 fofamap.py init\n```\n\n自动引导你填写:\n\n+ FOFA Email / Key\n+ 使用的 AI(DeepSeek / OpenAI / Ollama / LMStudio)\n+ 默认模型名称\n\n配置保存至:\n\n```bash\nconfig/settings.yaml\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950423887-143904ea-fc2c-435c-a0d6-4f3d6f853f36.png)\n\n---\n\n## 3️⃣ 配置 Nuclei(可选)\n如需漏洞扫描:\n\n+ 确保 `nuclei` 在 PATH 中\n\n```bash\nnuclei -version #输入此命令查看是否添加成功\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950503977-57d6011c-dd79-495d-9daf-3eb9a5f11093.png)\n\n+ 或下载nuclei二进制文件后直接放入项目根目录\n\n```bash\nhttps://github.com/projectdiscovery/nuclei/releases ## nuclei 扫描器官方下载地址,注意要下载对应自己操作系统版本的二进制文件\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950804043-97f52c4e-2aaa-4fb4-bb5a-41bc58d6285c.png)\n\n---\n\n# ⚙️ 配置文件详解(config/settings.yaml)\n```bash\n#====== 用户信息 (User Info) ======\nuserinfo:\n # [基础] FOFA 凭证\n email: \"your_email@example.com\"\n key: \"your_fofa_api_key\"\n \n # [进阶] AI 模型配置 (支持 DeepSeek/OpenAI/Ollama 等)\n deepseek_api_key: \"sk-xxxxxxxxxxxxxxxxxxxxxxxx\"\n \n # 场景 A: 使用官方 DeepSeek\n api_type: \"deepseek\"\n base_url: \"https://api.deepseek.com/v1\"\n model: \"deepseek-chat\"\n\n # 场景 B: 使用本地 Ollama (注释掉上方,启用下方)\n # api_type: \"ollama\"\n # base_url: \"http://localhost:11434/v1\"\n # model: \"qwen2.5:7b\"\n\n# ====== 搜索设置 (Search Settings) ======\nsearch:\n fields: \"host,protocol,ip,port,title,domain,country,icp\"\n size: 100\n full: false # 设为 true 可查询一年前的数据\n start_page: 1\n end_page: 5 # 自动爬取前 5 页\n\n# ====== 性能与输出 (System) ======\nsystem:\n logger: true\n sheet_merge: true\n concurrency: 15 # 建议根据网络状况调整 (10-50)\n```\n\n---\n\n# 💻 使用方法\n---\n\n# 🧙 模式一:交互式任务向导模式(✨ 新手 & 日常首选)\n💡 **什么参数都不用记,只要运行:**\n\n```plain\npython3 fofamap.py\n```\n\n或:\n\n```plain\npython fofamap.py\n```\n\n即可进入 **AI 驱动的交互式任务向导界面**:\n\n```plain\n________ ____ __ ___ \n / ____/ /_ __/ __/___ _ / |/ /___ _____ \n / /_ / __ \\/ / /_/ __ `/ / /|_/ / __ `/ __ \\ \n / __/ / /_/ / / __/ /_/ / / / / / /_/ / /_/ / \n/_/ \\____/_/_/ \\__,_/ /_/ /_/\\__,_/ .___/ \n /_/ v2.0 \n [ AI Powered & Interactive Wizard ] -- By Hx0 Team\n\n[!] 启动任务向导...\n? 请选择您要执行的操作:\n » 1. 🔮 AI 智能侦察 (自然语言 -> 自动决策)\n 2. 🔍 FOFA 标准查询 (语法输入)\n 3. 🖥️ Host 聚合查询 (IP/域名详情)\n 4. 📊 统计聚合查询 (数据分布分析)\n 5. 🖼️ Icon Hash 查询 (favicon 逆向)\n 6. 📁 批量文件查询 (TXT 批量指令)\n ---------------\n 0. 🚪 退出程序\n```\n\n---\n\n## 🎯 这个模式适合谁?\n+ ✅ 不想记命令参数的人\n+ ✅ 第一次使用的新手\n+ ✅ 日常使用 / 演示 / 培训 / 快速操作\n+ ✅ 所有“我只想点一下跑任务”的场景\n\n---\n\n## 🧠 向导模式能做什么?\n你可以通过方向键选择:\n\n### 1️⃣ 🔮 AI 智能侦察(⭐ 强烈推荐)\n直接输入一句话:\n\n```plain\n我收集一下美国哈佛大学的子域名网站,并扫描一下\n```\n\n系统将自动:\n\n+ AI 理解意图\n+ 自动生成 FOFA 语法\n+ 自动查询\n+ 自动反思(0 结果会重试)\n+ 自动判断是否扫描\n+ 自动生成扫描参数\n+ 自动生成报告\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951546443-9d44a9ad-6b35-44fb-91e3-ea109d596712.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951571098-29b92150-0196-4958-826b-ca23e43fe811.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767952132926-1739cb75-8448-4034-9861-6967af7ada0f.png)\n\n---\n\n### 2️⃣ 🔍 FOFA 标准查询\n使用FOFA查询语句查询数据\n\n```plain\napp=\"ThinkPHP\" && country=\"CN\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969525080-a73044c2-440e-4c72-a114-4965e6f7a454.png)\n\n---\n\n### 3️⃣ 🖥️ Host 聚合查询(AI 深度画像)\n根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```plain\n8.8.8.8 / baidu.com \n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969742560-30b321cd-3993-43aa-b22a-b09e55c7a2fe.png)\n\n---\n\n### 4️⃣ 📊 统计聚合查询(AI 态势分析)\n根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n```plain\napp=\"redis\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969913563-68bcdcb8-9107-41c3-8fe3-933e2e456d73.png)\n\n---\n\n### 5️⃣ 🖼️ Icon Hash 查询\n<font style=\"color:rgb(31, 35, 40);\">用户可通过填入任意一网站地址,</font>系统<font style=\"color:rgb(31, 35, 40);\">会自动获取该网站的favicon.ico图标文件,并计算其hash值,并查找与此图标相似的网站。</font>\n\n```plain\nhttps://www.bing.com\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969989542-9374fb72-3f71-40bb-83cd-16a298bc5ba0.png)\n\n---\n\n### 6️⃣ 📁 批量文件查询\n<font style=\"color:rgb(31, 35, 40);\">批量查询,用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,输入文件路径(若放在工具根目录可以直接输入文件名称)即可进行批量查询。</font>\n\n```plain\n114.114.114.114\nwww.baidu.com\napp=\"kafka\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970211247-9467dce6-257d-4f5c-ada0-aad859eff97d.png)\n\n# 🔮 模式二:经典模式( 老用户推荐)\n## 1️⃣ AI查询模式\n```bash\npython3 fofamap.py -ai \"帮我收集一下美国哈佛大学的子域名网站,并扫描一下\"\n```\n\n## 2️⃣ 基础查询\n```bash\npython3 fofamap.py -q 'app=\"ThinkPHP\" && country=\"CN\"'\n```\n\n## 3️⃣ Host 深度画像(AI 报告)\n```bash\npython3 fofamap.py -hq 8.8.8.8\n```\n\n## 4️⃣ 统计聚合(AI 态势解读)\n```bash\npython3 fofamap.py -cq 'app=\"redis\"' -f country,org\n```\n\n---\n\n## 5️⃣ 图标 Hash 查询\n```bash\npython3 fofamap.py -ico https://www.bing.com\n```\n\n---\n\n## 6️⃣ 批量查询\n```bash\npython3 fofamap.py -bq targets.txt\n```\n\n---\n\n# 🔌 模式三:MCP 服务(🔥 给 AI / Agent 用)\n### 1️⃣ 集成到 Cursor (最推荐,体验丝滑)\nCursor 对 MCP 的支持非常完善,配置好后,你可以直接在 Composer (Ctrl+I) 或 Chat (Ctrl+L) 中用自然语言调用工具。\n\n1. 打开 **Cursor Settings** (点击右上角齿轮)。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953701100-91d40367-76ae-4239-9cdb-e64c4b442251.png)\n\n2. 在左侧菜单找到 **Tools** **&** **MCP**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953756050-3947fa69-3f69-4e3f-9264-96147c13027d.png)\n\n3. 点击 **+ Add New MCP Server**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953462183-08f47ea0-6683-4f71-886c-fb645b92f9b8.png)\n\n4. 填写mcp.json配置信息:\n - **Name**: `fofamap-v2` (随便起)\n - **Type**: `command` (或者叫 Stdio)\n - **Command**: `你的Python解释器绝对路径(若写入环境变量可以直接填python)`\n * 例如:`python3.10`\n - **Args**: `你的脚本绝对路径`\n * 例如:`/Users/ka/Downloads/fofamap/fofa/mcp_server.py`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953312691-9b0133cf-fc4c-47d7-82d8-a2bf55d2efec.png)\n\n5. 点击 **Save**。\n - 此时你会看到一个 **绿色的圆点** 🟢,状态显示 `Connected`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953585044-97eb5e90-3a00-4ef7-9b83-9a1fa7b80397.png)\n\n - 如果显示红色,点击刷新图标,或者去 Cursor 的 `Output` -> `MCP Log` 或者是我们刚才修好的 `Log` 窗口看报错。\n\n**👉**** 如何使用:** 打开 Cursor Chat (Ctrl+L),直接输入:\n\n“帮我查一下 baidu.com 的资产信息,并检查是否有存活。” \n\nCursor 会自动分析意图,并在界面上显示 `Using tool: search_assets...`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953662133-8e369f5a-3d4b-499d-aed0-74094190fe0d.png)\n\n---\n\n### 2️⃣ 集成到 LM Studio (本地模型)\nLM Studio 0.3.0+ 版本开始支持 MCP。这允许你用本地的 DeepSeek 或 Llama 3 调用你的工具。\n\n1. 打开 **LM Studio**。\n2. 点击对话框中的 **MCP (插头图标)**。\n3. 点击**Install按钮** 。\n4. **选择Edit mcp.json**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953870043-013b0c77-5282-4125-b9b8-911084c2bc8c.png)\n\n5. 填写配置:\n - **Name**: `fofamap-v2`\n - **Command**: `你的Python解释器绝对路径`\n - **Args**: `你的脚本绝对路径` (注意:LM Studio 有时需要把 args 分开填,或者填在一个框里,视版本而定)。\n * _建议形式_: `[\"/Users/ka/.../mcp_server.py\"]`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954026399-f53295dc-ac1e-4101-9f54-dc87fd438ea5.png)\n\n6. 点击 **Save**。\n\n**👉**** 如何使用:**\n\n1. 去 **Chat** 界面。\n2. 加载一个支持 Tool Calling 的模型(推荐 `openai/gpt-oss-20b` 或 `Qwen 2.5 7B Instruct`,或者是 LM Studio 里的 DeepSeek R1/V3)。\n3. 在聊天框上方的 **Tools** 下拉菜单中,勾选 `mcp/fofamap-v2`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954105711-a5c74b58-4181-4f91-afcb-17b449bd6d89.png)\n\n4. 输入提示词:“帮我查一下Nginx在美国的分布情况···”\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954226754-f5f9b4b3-95b5-4690-bf08-a5279470dda5.png)\n\n---\n\n# ☢️ 漏洞扫描联动(Nuclei)\n在2.0版本中AI 会根据查询结果智能生成Nuclei漏洞扫描命令参数:\n\n```latex\n[AI] 推荐命令: nuclei -tags spring -severity critical,high\n\n> 🚀 执行\n> ✏️ 修改\n> 🚫 仅生成报告\n```\n\n---\n\n# 📂 结果输出结构\n```bash\nresults/\n└── domain__harvard_edu_____country__US_20260108_173107\n ├── batch_merge_20260108_173107.xlsx\n ├── nuclei_result_20260108_173107.txt\n ├── report_20260108_173107.md\n └── targets_20260108_173107.txt\n```\n\n---\n\n# 🛡️ 免责声明\n+ 本工具仅面向**合法授权**的企业安全建设行为(如内部攻防演练、资产管理)。\n+ 在使用本工具进行检测时,您应确保该行为符合当地法律法规,并已取得目标所有者的授权。\n+ **禁止用于任何非法用途**。如您在使用本工具的过程中存在非法行为,您需自行承担相应后果,开发者不承担任何法律责任。\n\n---\n\n**FofaMap-V2.0由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**【打赏支持❤️】代码传情跨山海,点滴支持皆温暖✨**\n\n虽然代码完全开源,但每杯咖啡都能让我们走得更远 ☕️\n\n<img width=\"500\" height=\"400\" alt=\"打赏码\" src=\"https://github.com/user-attachments/assets/02868aed-357e-4740-983a-d5a8ea05bdbf\" />\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**【战队公众号】扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【战队知识星球】福利大放送,限时优惠-仅限前100名**\n\n<img width=\"318\" height=\"958\" alt=\"星球优惠券\" src=\"https://github.com/user-attachments/assets/ab5b2b9b-82b6-4668-94e1-9e5e3d055f9a\" />\n\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n"}, "35a0cd28cc1b3953e71da7961d7aab871d7caa0c": {"t": 1785748527.9662805, "n": 13227, "h": "e83a274460a240ea", "c": "# 🗺️ FofaMap v2.0 — Platinum Agent Edition\n> 🧠 **全网首个支持 MCP 协议 + AI 自我反思机制的红队资产测绘智能体** \nSelf-Reflecting AI Queries → MCP Protocol Integration → Intelligent Vulnerability Scanning\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://img.shields.io/badge/Python-3.10+-blue.svg)\n![](https://img.shields.io/badge/Version-2.0.0-blue.svg)\n![](https://img.shields.io/badge/AI-Self--Reflecting-blueviolet.svg)\n![](https://img.shields.io/badge/MCP-AI%20Ready-purple.svg)\n![](https://img.shields.io/badge/Nuclei-Integrated-orange.svg)\n![](https://img.shields.io/badge/DeepSeek-V3-red.svg)\n![](https://img.shields.io/badge/License-MIT-green.svg)\n---\n\n# ✨ 一句话介绍\n> ❌ 它不是 FOFA 工具 \n❌ 也不是 Nuclei 封装 \n✅ 它是:**一个可以被 AI 接管、会自己反思、会自己决策扫描策略的「全网资产测绘智能体」**\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970866287-2b0bc337-6e11-4708-a8d8-a6afe484d4b8.png)\n\n---\n\n# 🚀 v2.0 是什么级别的升级?\n> FofaMap 从「资产查询工具」→ **进化为 AI Agent(智能体)**\n>\n\n### 🧠 1️⃣ 你只要说人话\n```bash\npython3 fofamap.py -ai \"帮我找一下bing.com所有的子域名,并扫描一下\"\n```\n\nAI 自动完成:\n\n+ 理解你的意图\n+ 生成 FOFA 语法\n+ 查询资产\n+ 若 0 结果 → 启动 **自我反思机制** 自动放宽条件重试\n+ 分析资产指纹\n+ 判断是否值得扫描\n+ 自动生成 Nuclei 扫描参数\n+ 询问你是否执行\n\n---\n\n### 🤖 2️⃣ 会“自我反思”的 AI(核心黑科技)\n> 不再出现:`0 Results`\n>\n\nAI 会自动:\n\n+ 判断:\n - 是否地区条件过严?\n - 是否关键词不合理?\n - 是否语法太死?\n+ 自动:\n - 放宽条件\n - 重写语法\n - 多策略重试\n+ 直到:**尽量给你产出结果**\n\n---\n\n### 🔌 3️⃣ 原生 MCP 支持(给 AI / Agent 用)\n> 支持:**Claude Desktop / Cursor / 自建 Agent**\n>\n\n你可以直接对 AI 说:\n\n> 「调用 FofaMap,帮我分析最近致远 OA 的风险态势」\n>\n\nAI 会:\n\n> 自动调用 FofaMap → 自动跑任务 → 自动总结报告\n>\n\n+ **Cursor调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949431600-3bfb4e1e-4283-4697-94d4-837aed2de331.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949509622-f814692f-82f6-4291-b5b6-ba334fdd76d4.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949697647-b2137289-2319-4ada-8094-eecfa88fe83a.png)\n\n+ **LM Stuido调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953068363-036d2e7a-5867-4937-8574-7f9c73f89f71.png)\n\n---\n\n### 🎯 4️⃣ 看人下菜的“智能扫描决策”\nAI 会根据资产指纹:\n\n| 发现 | 自动推荐 |\n| --- | --- |\n| Spring | `-tags spring` |\n| WebLogic | `-tags weblogic` |\n| ThinkPHP | `-tags thinkphp` |\n| Struts2 | `-tags struts` |\n\n\n> ❌ 不再无脑全量扫 \n✅ 每一次扫描都是 **有脑子的精准打击**\n>\n\n---\n\n# 🧩 谁适合用?\n+ 🧑‍💻 安全小白:\n\n> 会说一句话就能用\n>\n\n+ 🛡️ SRC / 红队:\n\n> 批量资产 + 自动化挖洞 + 自动报告\n>\n\n+ 🤖 AI Agent 开发者:\n\n> 直接当「安全能力插件」\n>\n\n+ 🏗️ 平台开发者:\n\n> 可嵌入到攻防平台 / 资产平台 / SOC\n>\n\n---\n\n# 📦 项目结构(平台级架构)\n```bash\n.\n├── config/\n│ ├── __init__.py # ✅ 负责读取 yaml 并导出 settings 对象\n│ └── settings.yaml # ⭐ 全局配置(FOFA / AI / 系统)\n│\n├── core/ # 🧠 核心引擎层\n│ ├── ai.py # AI Agent 中枢(意图 / 反思 / 决策 / 总结)\n│ ├── client.py # FOFA API 封装\n│ ├── core.py # 主工作流调度器\n│ ├── excel.py # Excel 报告导出\n│ ├── handler.py # CLI / MCP 入口分发\n│ └── scanner.py # Nuclei 智能联动\n│\n├── utils/\n│ ├── helpers.py # 通用工具函数\n│ ├── logger.py # 日志系统\n│ └── printer.py # 终端富文本输出\n│\n├── fofamap.py # 🚀 CLI 主入口(一切从这里开始)\n├── mcp_server.py # 🔌 MCP Server(给 AI 调用)\n├── results/ # 📂 所有任务项目目录\n├── requirements.txt\n└── README.md\n```\n\n---\n\n# 🛠️ 安装\n## 1️⃣ 环境\n```bash\nPython >= 3.10\n```\n\n```bash\ngit clone https://github.com/asaotomo/FofaMap.git\ncd FofaMap\npip3 install -r requirements.txt\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950152421-2122be93-8a0d-471c-aa54-6a1506a7eb67.png)\n\n```bash\npython3 fofamap.py --help #查看工具用法\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950323971-23495a54-8810-4f2b-8fc4-6dfe5ab655a9.png)\n\n---\n\n## 2️⃣ 初始化配置(✨ 向导模式)\n```bash\npython3 fofamap.py init\n```\n\n自动引导你填写:\n\n+ FOFA Email / Key\n+ 使用的 AI(DeepSeek / OpenAI / Ollama / LMStudio)\n+ 默认模型名称\n\n配置保存至:\n\n```bash\nconfig/settings.yaml\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950423887-143904ea-fc2c-435c-a0d6-4f3d6f853f36.png)\n\n---\n\n## 3️⃣ 配置 Nuclei(可选)\n如需漏洞扫描:\n\n+ 确保 `nuclei` 在 PATH 中\n\n```bash\nnuclei -version #输入此命令查看是否添加成功\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950503977-57d6011c-dd79-495d-9daf-3eb9a5f11093.png)\n\n+ 或下载nuclei二进制文件后直接放入项目根目录\n\n```bash\nhttps://github.com/projectdiscovery/nuclei/releases ## nuclei 扫描器官方下载地址,注意要下载对应自己操作系统版本的二进制文件\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950804043-97f52c4e-2aaa-4fb4-bb5a-41bc58d6285c.png)\n\n---\n\n# ⚙️ 配置文件详解(config/settings.yaml)\n```bash\n#====== 用户信息 (User Info) ======\nuserinfo:\n # [基础] FOFA 凭证\n email: \"your_email@example.com\"\n key: \"your_fofa_api_key\"\n \n # [进阶] AI 模型配置 (支持 DeepSeek/OpenAI/Ollama 等)\n deepseek_api_key: \"sk-xxxxxxxxxxxxxxxxxxxxxxxx\"\n \n # 场景 A: 使用官方 DeepSeek\n api_type: \"deepseek\"\n base_url: \"https://api.deepseek.com/v1\"\n model: \"deepseek-chat\"\n\n # 场景 B: 使用本地 Ollama (注释掉上方,启用下方)\n # api_type: \"ollama\"\n # base_url: \"http://localhost:11434/v1\"\n # model: \"qwen2.5:7b\"\n\n# ====== 搜索设置 (Search Settings) ======\nsearch:\n fields: \"host,protocol,ip,port,title,domain,country,icp\"\n size: 100\n full: false # 设为 true 可查询一年前的数据\n start_page: 1\n end_page: 5 # 自动爬取前 5 页\n\n# ====== 性能与输出 (System) ======\nsystem:\n logger: true\n sheet_merge: true\n concurrency: 15 # 建议根据网络状况调整 (10-50)\n```\n\n---\n\n# 💻 使用方法\n---\n\n# 🧙 模式一:交互式任务向导模式(✨ 新手 & 日常首选)\n💡 **什么参数都不用记,只要运行:**\n\n```plain\npython3 fofamap.py\n```\n\n或:\n\n```plain\npython fofamap.py\n```\n\n即可进入 **AI 驱动的交互式任务向导界面**:\n\n```plain\n________ ____ __ ___ \n / ____/ /_ __/ __/___ _ / |/ /___ _____ \n / /_ / __ \\/ / /_/ __ `/ / /|_/ / __ `/ __ \\ \n / __/ / /_/ / / __/ /_/ / / / / / /_/ / /_/ / \n/_/ \\____/_/_/ \\__,_/ /_/ /_/\\__,_/ .___/ \n /_/ v2.0 \n [ AI Powered & Interactive Wizard ] -- By Hx0 Team\n\n[!] 启动任务向导...\n? 请选择您要执行的操作:\n » 1. 🔮 AI 智能侦察 (自然语言 -> 自动决策)\n 2. 🔍 FOFA 标准查询 (语法输入)\n 3. 🖥️ Host 聚合查询 (IP/域名详情)\n 4. 📊 统计聚合查询 (数据分布分析)\n 5. 🖼️ Icon Hash 查询 (favicon 逆向)\n 6. 📁 批量文件查询 (TXT 批量指令)\n ---------------\n 0. 🚪 退出程序\n```\n\n---\n\n## 🎯 这个模式适合谁?\n+ ✅ 不想记命令参数的人\n+ ✅ 第一次使用的新手\n+ ✅ 日常使用 / 演示 / 培训 / 快速操作\n+ ✅ 所有“我只想点一下跑任务”的场景\n\n---\n\n## 🧠 向导模式能做什么?\n你可以通过方向键选择:\n\n### 1️⃣ 🔮 AI 智能侦察(⭐ 强烈推荐)\n直接输入一句话:\n\n```plain\n我收集一下美国哈佛大学的子域名网站,并扫描一下\n```\n\n系统将自动:\n\n+ AI 理解意图\n+ 自动生成 FOFA 语法\n+ 自动查询\n+ 自动反思(0 结果会重试)\n+ 自动判断是否扫描\n+ 自动生成扫描参数\n+ 自动生成报告\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951546443-9d44a9ad-6b35-44fb-91e3-ea109d596712.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951571098-29b92150-0196-4958-826b-ca23e43fe811.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767952132926-1739cb75-8448-4034-9861-6967af7ada0f.png)\n\n---\n\n### 2️⃣ 🔍 FOFA 标准查询\n使用FOFA查询语句查询数据\n\n```plain\napp=\"ThinkPHP\" && country=\"CN\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969525080-a73044c2-440e-4c72-a114-4965e6f7a454.png)\n\n---\n\n### 3️⃣ 🖥️ Host 聚合查询(AI 深度画像)\n根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```plain\n8.8.8.8 / baidu.com \n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969742560-30b321cd-3993-43aa-b22a-b09e55c7a2fe.png)\n\n---\n\n### 4️⃣ 📊 统计聚合查询(AI 态势分析)\n根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n```plain\napp=\"redis\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969913563-68bcdcb8-9107-41c3-8fe3-933e2e456d73.png)\n\n---\n\n### 5️⃣ 🖼️ Icon Hash 查询\n<font style=\"color:rgb(31, 35, 40);\">用户可通过填入任意一网站地址,</font>系统<font style=\"color:rgb(31, 35, 40);\">会自动获取该网站的favicon.ico图标文件,并计算其hash值,并查找与此图标相似的网站。</font>\n\n```plain\nhttps://www.bing.com\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969989542-9374fb72-3f71-40bb-83cd-16a298bc5ba0.png)\n\n---\n\n### 6️⃣ 📁 批量文件查询\n<font style=\"color:rgb(31, 35, 40);\">批量查询,用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,输入文件路径即可进行批量查询。</font>\n\n```plain\n114.114.114.114\nwww.baidu.com\napp=\"kafka\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970211247-9467dce6-257d-4f5c-ada0-aad859eff97d.png)\n\n# 🔮 模式二:经典模式( 老用户推荐)\n## 1️⃣ AI查询模式\n```bash\npython3 fofamap.py -ai \"帮我收集一下美国哈佛大学的子域名网站,并扫描一下\"\n```\n\n## 2️⃣ 基础查询\n```bash\npython3 fofamap.py -q 'app=\"ThinkPHP\" && country=\"CN\"'\n```\n\n## 3️⃣ Host 深度画像(AI 报告)\n```bash\npython3 fofamap.py -hq 8.8.8.8\n```\n\n## 4️⃣ 统计聚合(AI 态势解读)\n```bash\npython3 fofamap.py -cq 'app=\"redis\"' -f country,org\n```\n\n---\n\n## 5️⃣ 图标 Hash 查询\n```bash\npython fofamap.py -ico https://www.bing.com\n```\n\n---\n\n## 6️⃣ 批量查询\n```bash\npython fofamap.py -bq targets.txt\n```\n\n---\n\n# 🔌 模式三:MCP 服务(🔥 给 AI / Agent 用)\n### 1️⃣ 集成到 Cursor (最推荐,体验丝滑)\nCursor 对 MCP 的支持非常完善,配置好后,你可以直接在 Composer (Ctrl+I) 或 Chat (Ctrl+L) 中用自然语言调用工具。\n\n1. 打开 **Cursor Settings** (点击右上角齿轮)。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953701100-91d40367-76ae-4239-9cdb-e64c4b442251.png)\n\n2. 在左侧菜单找到 **Tools** **&** **MCP**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953756050-3947fa69-3f69-4e3f-9264-96147c13027d.png)\n\n3. 点击 **+ Add New MCP Server**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953462183-08f47ea0-6683-4f71-886c-fb645b92f9b8.png)\n\n4. 填写mcp.json配置信息:\n - **Name**: `fofamap-v2` (随便起)\n - **Type**: `command` (或者叫 Stdio)\n - **Command**: `你的Python解释器绝对路径(若写入环境变量可以直接填python)`\n * 例如:`python3.10`\n - **Args**: `你的脚本绝对路径`\n * 例如:`/Users/ka/Downloads/fofamap/fofa/mcp_server.py`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953312691-9b0133cf-fc4c-47d7-82d8-a2bf55d2efec.png)\n\n5. 点击 **Save**。\n - 此时你会看到一个 **绿色的圆点** 🟢,状态显示 `Connected`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953585044-97eb5e90-3a00-4ef7-9b83-9a1fa7b80397.png)\n\n - 如果显示红色,点击刷新图标,或者去 Cursor 的 `Output` -> `MCP Log` 或者是我们刚才修好的 `Log` 窗口看报错。\n\n**👉**** 如何使用:** 打开 Cursor Chat (Ctrl+L),直接输入:\n\n“帮我查一下 baidu.com 的资产信息,并检查是否有存活。” \n\nCursor 会自动分析意图,并在界面上显示 `Using tool: search_assets...`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953662133-8e369f5a-3d4b-499d-aed0-74094190fe0d.png)\n\n---\n\n### 2️⃣ 集成到 LM Studio (本地模型)\nLM Studio 0.3.0+ 版本开始支持 MCP。这允许你用本地的 DeepSeek 或 Llama 3 调用你的工具。\n\n1. 打开 **LM Studio**。\n2. 点击对话框中的 **MCP (插头图标)**。\n3. 点击**Install按钮** 。\n4. **选择Edit mcp.json**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953870043-013b0c77-5282-4125-b9b8-911084c2bc8c.png)\n\n5. 填写配置:\n - **Name**: `fofamap-v2`\n - **Command**: `你的Python解释器绝对路径`\n - **Args**: `你的脚本绝对路径` (注意:LM Studio 有时需要把 args 分开填,或者填在一个框里,视版本而定)。\n * _建议形式_: `[\"/Users/ka/.../mcp_server.py\"]`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954026399-f53295dc-ac1e-4101-9f54-dc87fd438ea5.png)\n\n6. 点击 **Save**。\n\n**👉**** 如何使用:**\n\n1. 去 **Chat** 界面。\n2. 加载一个支持 Tool Calling 的模型(推荐 `openai/gpt-oss-20b` 或 `Qwen 2.5 7B Instruct`,或者是 LM Studio 里的 DeepSeek R1/V3)。\n3. 在聊天框上方的 **Tools** 下拉菜单中,勾选 `mcp/fofamap-v2`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954105711-a5c74b58-4181-4f91-afcb-17b449bd6d89.png)\n\n4. 输入提示词:“帮我查一下Nginx在美国的分布情况···”\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954226754-f5f9b4b3-95b5-4690-bf08-a5279470dda5.png)\n\n---\n\n# ☢️ 漏洞扫描联动(Nuclei)\n在2.0版本中AI 会根据查询结果智能生成Nuclei漏洞扫描命令参数:\n\n```latex\n[AI] 推荐命令: nuclei -tags spring -severity critical,high\n\n> 🚀 执行\n> ✏️ 修改\n> 🚫 仅生成报告\n```\n\n---\n\n# 📂 结果输出结构\n```bash\nresults/\n└── domain__harvard_edu_____country__US_20260108_173107\n ├── batch_merge_20260108_173107.xlsx\n ├── nuclei_result_20260108_173107.txt\n ├── report_20260108_173107.md\n └── targets_20260108_173107.txt\n```\n\n---\n\n# 🛡️ 免责声明\n+ 本工具仅面向**合法授权**的企业安全建设行为(如内部攻防演练、资产管理)。\n+ 在使用本工具进行检测时,您应确保该行为符合当地法律法规,并已取得目标所有者的授权。\n+ **禁止用于任何非法用途**。如您在使用本工具的过程中存在非法行为,您需自行承担相应后果,开发者不承担任何法律责任。\n\n---\n\n**FofaMap-V2.0由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**【打赏支持❤️】代码传情跨山海,点滴支持皆温暖✨**\n\n虽然代码完全开源,但每杯咖啡都能让我们走得更远 ☕️\n\n<img width=\"500\" height=\"400\" alt=\"打赏码\" src=\"https://github.com/user-attachments/assets/02868aed-357e-4740-983a-d5a8ea05bdbf\" />\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**【战队公众号】扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【战队知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://github.com/user-attachments/assets/94849d79-bcac-4a43-9221-3e2718225cb6\">\n\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n"}, "856779714d8b2fbd9d2a6f876e5b372ef9204454": {"t": 1785748529.0821326, "n": 13168, "h": "e8735753d09312b8", "c": "# 🗺️ FofaMap v2.0 — Platinum Agent Edition\n> 🧠 **全网首个支持 MCP 协议 + AI 自我反思机制的红队资产测绘智能体** \nSelf-Reflecting AI Queries → MCP Protocol Integration → Intelligent Vulnerability Scanning\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://img.shields.io/badge/Python-3.10+-blue.svg)\n![](https://img.shields.io/badge/Version-2.0.0-blue.svg)\n![](https://img.shields.io/badge/AI-Self--Reflecting-blueviolet.svg)\n![](https://img.shields.io/badge/MCP-AI%20Ready-purple.svg)\n![](https://img.shields.io/badge/Nuclei-Integrated-orange.svg)\n![](https://img.shields.io/badge/DeepSeek-V3-red.svg)\n![](https://img.shields.io/badge/License-MIT-green.svg)\n---\n\n# ✨ 一句话介绍\n> ❌ 它不是 FOFA 工具 \n❌ 也不是 Nuclei 封装 \n✅ 它是:**一个可以被 AI 接管、会自己反思、会自己决策扫描策略的「全网资产测绘智能体」**\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970866287-2b0bc337-6e11-4708-a8d8-a6afe484d4b8.png)\n\n---\n\n# 🚀 v2.0 是什么级别的升级?\n> FofaMap 从「资产查询工具」→ **进化为 AI Agent(智能体)**\n>\n\n### 🧠 1️⃣ 你只要说人话\n```bash\npython3 fofamap.py -ai \"帮我找一下bing.com所有的子域名,并扫描一下\"\n```\n\nAI 自动完成:\n\n+ 理解你的意图\n+ 生成 FOFA 语法\n+ 查询资产\n+ 若 0 结果 → 启动 **自我反思机制** 自动放宽条件重试\n+ 分析资产指纹\n+ 判断是否值得扫描\n+ 自动生成 Nuclei 扫描参数\n+ 询问你是否执行\n\n---\n\n### 🤖 2️⃣ 会“自我反思”的 AI(核心黑科技)\n> 不再出现:`0 Results`\n>\n\nAI 会自动:\n\n+ 判断:\n - 是否地区条件过严?\n - 是否关键词不合理?\n - 是否语法太死?\n+ 自动:\n - 放宽条件\n - 重写语法\n - 多策略重试\n+ 直到:**尽量给你产出结果**\n\n---\n\n### 🔌 3️⃣ 原生 MCP 支持(给 AI / Agent 用)\n> 支持:**Claude Desktop / Cursor / 自建 Agent**\n>\n\n你可以直接对 AI 说:\n\n> 「调用 FofaMap,帮我分析最近致远 OA 的风险态势」\n>\n\nAI 会:\n\n> 自动调用 FofaMap → 自动跑任务 → 自动总结报告\n>\n\n+ **Cursor调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949431600-3bfb4e1e-4283-4697-94d4-837aed2de331.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949509622-f814692f-82f6-4291-b5b6-ba334fdd76d4.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949697647-b2137289-2319-4ada-8094-eecfa88fe83a.png)\n\n+ **LM Stuido调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953068363-036d2e7a-5867-4937-8574-7f9c73f89f71.png)\n\n---\n\n### 🎯 4️⃣ 看人下菜的“智能扫描决策”\nAI 会根据资产指纹:\n\n| 发现 | 自动推荐 |\n| --- | --- |\n| Spring | `-tags spring` |\n| WebLogic | `-tags weblogic` |\n| ThinkPHP | `-tags thinkphp` |\n| Struts2 | `-tags struts` |\n\n\n> ❌ 不再无脑全量扫 \n✅ 每一次扫描都是 **有脑子的精准打击**\n>\n\n---\n\n# 🧩 谁适合用?\n+ 🧑‍💻 安全小白:\n\n> 会说一句话就能用\n>\n\n+ 🛡️ SRC / 红队:\n\n> 批量资产 + 自动化挖洞 + 自动报告\n>\n\n+ 🤖 AI Agent 开发者:\n\n> 直接当「安全能力插件」\n>\n\n+ 🏗️ 平台开发者:\n\n> 可嵌入到攻防平台 / 资产平台 / SOC\n>\n\n---\n\n# 📦 项目结构(平台级架构)\n```bash\n.\n├── config/\n│ └── settings.yaml # ⭐ 全局配置(FOFA / AI / 系统)\n│\n├── core/ # 🧠 核心引擎层\n│ ├── ai.py # AI Agent 中枢(意图 / 反思 / 决策 / 总结)\n│ ├── client.py # FOFA API 封装\n│ ├── core.py # 主工作流调度器\n│ ├── excel.py # Excel 报告导出\n│ ├── handler.py # CLI / MCP 入口分发\n│ └── scanner.py # Nuclei 智能联动\n│\n├── utils/\n│ ├── helpers.py # 通用工具函数\n│ ├── logger.py # 日志系统\n│ └── printer.py # 终端富文本输出\n│\n├── fofamap.py # 🚀 CLI 主入口(一切从这里开始)\n├── mcp_server.py # 🔌 MCP Server(给 AI 调用)\n├── results/ # 📂 所有任务项目目录\n├── requirements.txt\n└── README.md\n```\n\n---\n\n# 🛠️ 安装\n## 1️⃣ 环境\n```bash\nPython >= 3.10\n```\n\n```bash\ngit clone https://github.com/asaotomo/FofaMap.git\ncd FofaMap\npip3 install -r requirements.txt\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950152421-2122be93-8a0d-471c-aa54-6a1506a7eb67.png)\n\n```bash\npython3 fofamap.py --help #查看工具用法\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950323971-23495a54-8810-4f2b-8fc4-6dfe5ab655a9.png)\n\n---\n\n## 2️⃣ 初始化配置(✨ 向导模式)\n```bash\npython3 fofamap.py init\n```\n\n自动引导你填写:\n\n+ FOFA Email / Key\n+ 使用的 AI(DeepSeek / OpenAI / Ollama / LMStudio)\n+ 默认模型名称\n\n配置保存至:\n\n```bash\nconfig/settings.yaml\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950423887-143904ea-fc2c-435c-a0d6-4f3d6f853f36.png)\n\n---\n\n## 3️⃣ 配置 Nuclei(可选)\n如需漏洞扫描:\n\n+ 确保 `nuclei` 在 PATH 中\n\n```bash\nnuclei -version #输入此命令查看是否添加成功\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950503977-57d6011c-dd79-495d-9daf-3eb9a5f11093.png)\n\n+ 或下载nuclei二进制文件后直接放入项目根目录\n\n```bash\nhttps://github.com/projectdiscovery/nuclei/releases ## nuclei 扫描器官方下载地址,注意要下载对应自己操作系统版本的二进制文件\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950804043-97f52c4e-2aaa-4fb4-bb5a-41bc58d6285c.png)\n\n---\n\n# ⚙️ 配置文件详解(config/settings.yaml)\n```bash\n#====== 用户信息 (User Info) ======\nuserinfo:\n # [基础] FOFA 凭证\n email: \"your_email@example.com\"\n key: \"your_fofa_api_key\"\n \n # [进阶] AI 模型配置 (支持 DeepSeek/OpenAI/Ollama 等)\n deepseek_api_key: \"sk-xxxxxxxxxxxxxxxxxxxxxxxx\"\n \n # 场景 A: 使用官方 DeepSeek\n api_type: \"deepseek\"\n base_url: \"https://api.deepseek.com/v1\"\n model: \"deepseek-chat\"\n\n # 场景 B: 使用本地 Ollama (注释掉上方,启用下方)\n # api_type: \"ollama\"\n # base_url: \"http://localhost:11434/v1\"\n # model: \"qwen2.5:7b\"\n\n# ====== 搜索设置 (Search Settings) ======\nsearch:\n fields: \"host,protocol,ip,port,title,domain,country,icp\"\n size: 100\n full: false # 设为 true 可查询一年前的数据\n start_page: 1\n end_page: 5 # 自动爬取前 5 页\n\n# ====== 性能与输出 (System) ======\nsystem:\n logger: true\n sheet_merge: true\n concurrency: 15 # 建议根据网络状况调整 (10-50)\n```\n\n---\n\n# 💻 使用方法\n---\n\n# 🧙 模式一:交互式任务向导模式(✨ 新手 & 日常首选)\n💡 **什么参数都不用记,只要运行:**\n\n```plain\npython3 fofamap.py\n```\n\n或:\n\n```plain\npython fofamap.py\n```\n\n即可进入 **AI 驱动的交互式任务向导界面**:\n\n```plain\n________ ____ __ ___ \n / ____/ /_ __/ __/___ _ / |/ /___ _____ \n / /_ / __ \\/ / /_/ __ `/ / /|_/ / __ `/ __ \\ \n / __/ / /_/ / / __/ /_/ / / / / / /_/ / /_/ / \n/_/ \\____/_/_/ \\__,_/ /_/ /_/\\__,_/ .___/ \n /_/ v2.0 \n [ AI Powered & Interactive Wizard ] -- By Hx0 Team\n\n[!] 启动任务向导...\n? 请选择您要执行的操作:\n » 1. 🔮 AI 智能侦察 (自然语言 -> 自动决策)\n 2. 🔍 FOFA 标准查询 (语法输入)\n 3. 🖥️ Host 聚合查询 (IP/域名详情)\n 4. 📊 统计聚合查询 (数据分布分析)\n 5. 🖼️ Icon Hash 查询 (favicon 逆向)\n 6. 📁 批量文件查询 (TXT 批量指令)\n ---------------\n 0. 🚪 退出程序\n```\n\n---\n\n## 🎯 这个模式适合谁?\n+ ✅ 不想记命令参数的人\n+ ✅ 第一次使用的新手\n+ ✅ 日常使用 / 演示 / 培训 / 快速操作\n+ ✅ 所有“我只想点一下跑任务”的场景\n\n---\n\n## 🧠 向导模式能做什么?\n你可以通过方向键选择:\n\n### 1️⃣ 🔮 AI 智能侦察(⭐ 强烈推荐)\n直接输入一句话:\n\n```plain\n我收集一下美国哈佛大学的子域名网站,并扫描一下\n```\n\n系统将自动:\n\n+ AI 理解意图\n+ 自动生成 FOFA 语法\n+ 自动查询\n+ 自动反思(0 结果会重试)\n+ 自动判断是否扫描\n+ 自动生成扫描参数\n+ 自动生成报告\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951546443-9d44a9ad-6b35-44fb-91e3-ea109d596712.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951571098-29b92150-0196-4958-826b-ca23e43fe811.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767952132926-1739cb75-8448-4034-9861-6967af7ada0f.png)\n\n---\n\n### 2️⃣ 🔍 FOFA 标准查询\n使用FOFA查询语句查询数据\n\n```plain\napp=\"ThinkPHP\" && country=\"CN\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969525080-a73044c2-440e-4c72-a114-4965e6f7a454.png)\n\n---\n\n### 3️⃣ 🖥️ Host 聚合查询(AI 深度画像)\n根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```plain\n8.8.8.8 / baidu.com \n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969742560-30b321cd-3993-43aa-b22a-b09e55c7a2fe.png)\n\n---\n\n### 4️⃣ 📊 统计聚合查询(AI 态势分析)\n根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n```plain\napp=\"redis\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969913563-68bcdcb8-9107-41c3-8fe3-933e2e456d73.png)\n\n---\n\n### 5️⃣ 🖼️ Icon Hash 查询\n<font style=\"color:rgb(31, 35, 40);\">用户可通过填入任意一网站地址,</font>系统<font style=\"color:rgb(31, 35, 40);\">会自动获取该网站的favicon.ico图标文件,并计算其hash值,并查找与此图标相似的网站。</font>\n\n```plain\nhttps://www.bing.com\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969989542-9374fb72-3f71-40bb-83cd-16a298bc5ba0.png)\n\n---\n\n### 6️⃣ 📁 批量文件查询\n<font style=\"color:rgb(31, 35, 40);\">批量查询,用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,输入文件路径即可进行批量查询。</font>\n\n```plain\n114.114.114.114\nwww.baidu.com\napp=\"kafka\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970211247-9467dce6-257d-4f5c-ada0-aad859eff97d.png)\n\n# 🔮 模式二:经典模式( 老用户推荐)\n## 1️⃣ AI查询模式\n```bash\npython3 fofamap.py -ai \"帮我收集一下美国哈佛大学的子域名网站,并扫描一下\"\n```\n\n## 2️⃣ 基础查询\n```bash\npython3 fofamap.py -q 'app=\"ThinkPHP\" && country=\"CN\"'\n```\n\n## 3️⃣ Host 深度画像(AI 报告)\n```bash\npython3 fofamap.py -hq 8.8.8.8\n```\n\n## 4️⃣ 统计聚合(AI 态势解读)\n```bash\npython3 fofamap.py -cq 'app=\"redis\"' -f country,org\n```\n\n---\n\n## 5️⃣ 图标 Hash 查询\n```bash\npython fofamap.py -ico https://www.bing.com\n```\n\n---\n\n## 6️⃣ 批量查询\n```bash\npython fofamap.py -bq targets.txt\n```\n\n---\n\n# 🔌 模式三:MCP 服务(🔥 给 AI / Agent 用)\n### 1️⃣ 集成到 Cursor (最推荐,体验丝滑)\nCursor 对 MCP 的支持非常完善,配置好后,你可以直接在 Composer (Ctrl+I) 或 Chat (Ctrl+L) 中用自然语言调用工具。\n\n1. 打开 **Cursor Settings** (点击右上角齿轮)。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953701100-91d40367-76ae-4239-9cdb-e64c4b442251.png)\n\n2. 在左侧菜单找到 **Tools** **&** **MCP**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953756050-3947fa69-3f69-4e3f-9264-96147c13027d.png)\n\n3. 点击 **+ Add New MCP Server**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953462183-08f47ea0-6683-4f71-886c-fb645b92f9b8.png)\n\n4. 填写mcp.json配置信息:\n - **Name**: `fofamap-v2` (随便起)\n - **Type**: `command` (或者叫 Stdio)\n - **Command**: `你的Python解释器绝对路径(若写入环境变量可以直接填python)`\n * 例如:`python3.10`\n - **Args**: `你的脚本绝对路径`\n * 例如:`/Users/ka/Downloads/fofamap/fofa/mcp_server.py`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953312691-9b0133cf-fc4c-47d7-82d8-a2bf55d2efec.png)\n\n5. 点击 **Save**。\n - 此时你会看到一个 **绿色的圆点** 🟢,状态显示 `Connected`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953585044-97eb5e90-3a00-4ef7-9b83-9a1fa7b80397.png)\n\n - 如果显示红色,点击刷新图标,或者去 Cursor 的 `Output` -> `MCP Log` 或者是我们刚才修好的 `Log` 窗口看报错。\n\n**👉**** 如何使用:** 打开 Cursor Chat (Ctrl+L),直接输入:\n\n“帮我查一下 baidu.com 的资产信息,并检查是否有存活。” \n\nCursor 会自动分析意图,并在界面上显示 `Using tool: search_assets...`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953662133-8e369f5a-3d4b-499d-aed0-74094190fe0d.png)\n\n---\n\n### 2️⃣ 集成到 LM Studio (本地模型)\nLM Studio 0.3.0+ 版本开始支持 MCP。这允许你用本地的 DeepSeek 或 Llama 3 调用你的工具。\n\n1. 打开 **LM Studio**。\n2. 点击对话框中的 **MCP (插头图标)**。\n3. 点击**Install按钮** 。\n4. **选择Edit mcp.json**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953870043-013b0c77-5282-4125-b9b8-911084c2bc8c.png)\n\n5. 填写配置:\n - **Name**: `fofamap-v2`\n - **Command**: `你的Python解释器绝对路径`\n - **Args**: `你的脚本绝对路径` (注意:LM Studio 有时需要把 args 分开填,或者填在一个框里,视版本而定)。\n * _建议形式_: `[\"/Users/ka/.../mcp_server.py\"]`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954026399-f53295dc-ac1e-4101-9f54-dc87fd438ea5.png)\n\n6. 点击 **Save**。\n\n**👉**** 如何使用:**\n\n1. 去 **Chat** 界面。\n2. 加载一个支持 Tool Calling 的模型(推荐 `openai/gpt-oss-20b` 或 `Qwen 2.5 7B Instruct`,或者是 LM Studio 里的 DeepSeek R1/V3)。\n3. 在聊天框上方的 **Tools** 下拉菜单中,勾选 `mcp/fofamap-v2`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954105711-a5c74b58-4181-4f91-afcb-17b449bd6d89.png)\n\n4. 输入提示词:“帮我查一下Nginx在美国的分布情况···”\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954226754-f5f9b4b3-95b5-4690-bf08-a5279470dda5.png)\n\n---\n\n# ☢️ 漏洞扫描联动(Nuclei)\n在2.0版本中AI 会根据查询结果智能生成Nuclei漏洞扫描命令参数:\n\n```latex\n[AI] 推荐命令: nuclei -tags spring -severity critical,high\n\n> 🚀 执行\n> ✏️ 修改\n> 🚫 仅生成报告\n```\n\n---\n\n# 📂 结果输出结构\n```bash\nresults/\n└── domain__harvard_edu_____country__US_20260108_173107\n ├── batch_merge_20260108_173107.xlsx\n ├── nuclei_result_20260108_173107.txt\n ├── report_20260108_173107.md\n └── targets_20260108_173107.txt\n```\n\n---\n\n# 🛡️ 免责声明\n+ 本工具仅面向**合法授权**的企业安全建设行为(如内部攻防演练、资产管理)。\n+ 在使用本工具进行检测时,您应确保该行为符合当地法律法规,并已取得目标所有者的授权。\n+ **禁止用于任何非法用途**。如您在使用本工具的过程中存在非法行为,您需自行承担相应后果,开发者不承担任何法律责任。\n\n---\n\n**FofaMap-V2.0由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**【打赏支持❤️】代码传情跨山海,点滴支持皆温暖✨**\n\n虽然代码完全开源,但每杯咖啡都能让我们走得更远 ☕️\n\n<img width=\"500\" height=\"400\" alt=\"打赏码\" src=\"https://github.com/user-attachments/assets/02868aed-357e-4740-983a-d5a8ea05bdbf\" />\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**【战队公众号】扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【战队知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://github.com/user-attachments/assets/94849d79-bcac-4a43-9221-3e2718225cb6\">\n\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n"}, "68462373a487cdb0f304904d6bab106ffff444a2": {"t": 1785748530.2264059, "n": 13085, "h": "da07d962a189dce5", "c": "# 🗺️ FofaMap v2.0 — Platinum Agent Edition\n> 🧠 **全网首个支持 MCP 协议 + AI 自我反思机制的红队资产测绘智能体** \nSelf-Reflecting AI Queries → MCP Protocol Integration → Intelligent Vulnerability Scanning\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://img.shields.io/badge/Python-3.10+-blue.svg)<!-- 这是一张图片,ocr 内容为: -->\n![](https://img.shields.io/badge/License-MIT-green.svg)<!-- 这是一张图片,ocr 内容为: -->\n![](https://img.shields.io/badge/MCP-AI%20Ready-purple.svg)<!-- 这是一张图片,ocr 内容为: -->\n![](https://img.shields.io/badge/Nuclei-Integrated-orange.svg)<!-- 这是一张图片,ocr 内容为: -->\n\n---\n\n# ✨ 一句话介绍\n> ❌ 它不是 FOFA 工具 \n❌ 也不是 Nuclei 封装 \n✅ 它是:**一个可以被 AI 接管、会自己反思、会自己决策扫描策略的「全网资产测绘智能体」**\n>\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970866287-2b0bc337-6e11-4708-a8d8-a6afe484d4b8.png)\n\n---\n\n# 🚀 v2.0 是什么级别的升级?\n> FofaMap 从「资产查询工具」→ **进化为 AI Agent(智能体)**\n>\n\n### 🧠 1️⃣ 你只要说人话\n```bash\npython3 fofamap.py -ai \"帮我找一下bing.com所有的子域名,并扫描一下\"\n```\n\nAI 自动完成:\n\n+ 理解你的意图\n+ 生成 FOFA 语法\n+ 查询资产\n+ 若 0 结果 → 启动 **自我反思机制** 自动放宽条件重试\n+ 分析资产指纹\n+ 判断是否值得扫描\n+ 自动生成 Nuclei 扫描参数\n+ 询问你是否执行\n\n---\n\n### 🤖 2️⃣ 会“自我反思”的 AI(核心黑科技)\n> 不再出现:`0 Results`\n>\n\nAI 会自动:\n\n+ 判断:\n - 是否地区条件过严?\n - 是否关键词不合理?\n - 是否语法太死?\n+ 自动:\n - 放宽条件\n - 重写语法\n - 多策略重试\n+ 直到:**尽量给你产出结果**\n\n---\n\n### 🔌 3️⃣ 原生 MCP 支持(给 AI / Agent 用)\n> 支持:**Claude Desktop / Cursor / 自建 Agent**\n>\n\n你可以直接对 AI 说:\n\n> 「调用 FofaMap,帮我分析最近致远 OA 的风险态势」\n>\n\nAI 会:\n\n> 自动调用 FofaMap → 自动跑任务 → 自动总结报告\n>\n\n+ **Cursor调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949431600-3bfb4e1e-4283-4697-94d4-837aed2de331.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949509622-f814692f-82f6-4291-b5b6-ba334fdd76d4.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767949697647-b2137289-2319-4ada-8094-eecfa88fe83a.png)\n\n+ **LM Stuido调用效果**\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953068363-036d2e7a-5867-4937-8574-7f9c73f89f71.png)\n\n---\n\n### 🎯 4️⃣ 看人下菜的“智能扫描决策”\nAI 会根据资产指纹:\n\n| 发现 | 自动推荐 |\n| --- | --- |\n| Spring | `-tags spring` |\n| WebLogic | `-tags weblogic` |\n| ThinkPHP | `-tags thinkphp` |\n| Struts2 | `-tags struts` |\n\n\n> ❌ 不再无脑全量扫 \n✅ 每一次扫描都是 **有脑子的精准打击**\n>\n\n---\n\n# 🧩 谁适合用?\n+ 🧑‍💻 安全小白:\n\n> 会说一句话就能用\n>\n\n+ 🛡️ SRC / 红队:\n\n> 批量资产 + 自动化挖洞 + 自动报告\n>\n\n+ 🤖 AI Agent 开发者:\n\n> 直接当「安全能力插件」\n>\n\n+ 🏗️ 平台开发者:\n\n> 可嵌入到攻防平台 / 资产平台 / SOC\n>\n\n---\n\n# 📦 项目结构(平台级架构)\n```bash\n.\n├── config/\n│ └── settings.yaml # ⭐ 全局配置(FOFA / AI / 系统)\n│\n├── core/ # 🧠 核心引擎层\n│ ├── ai.py # AI Agent 中枢(意图 / 反思 / 决策 / 总结)\n│ ├── client.py # FOFA API 封装\n│ ├── core.py # 主工作流调度器\n│ ├── excel.py # Excel 报告导出\n│ ├── handler.py # CLI / MCP 入口分发\n│ └── scanner.py # Nuclei 智能联动\n│\n├── utils/\n│ ├── helpers.py # 通用工具函数\n│ ├── logger.py # 日志系统\n│ └── printer.py # 终端富文本输出\n│\n├── fofamap.py # 🚀 CLI 主入口(一切从这里开始)\n├── mcp_server.py # 🔌 MCP Server(给 AI 调用)\n├── results/ # 📂 所有任务项目目录\n├── requirements.txt\n└── README.md\n```\n\n---\n\n# 🛠️ 安装\n## 1️⃣ 环境\n```bash\nPython >= 3.10\n```\n\n```bash\ngit clone https://github.com/asaotomo/FofaMap.git\ncd FofaMap\npip3 install -r requirements.txt\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950152421-2122be93-8a0d-471c-aa54-6a1506a7eb67.png)\n\n```bash\npython3 fofamap.py --help #查看工具用法\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950323971-23495a54-8810-4f2b-8fc4-6dfe5ab655a9.png)\n\n---\n\n## 2️⃣ 初始化配置(✨ 向导模式)\n```bash\npython3 fofamap.py init\n```\n\n自动引导你填写:\n\n+ FOFA Email / Key\n+ 使用的 AI(DeepSeek / OpenAI / Ollama / LMStudio)\n+ 默认模型名称\n\n配置保存至:\n\n```bash\nconfig/settings.yaml\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950423887-143904ea-fc2c-435c-a0d6-4f3d6f853f36.png)\n\n---\n\n## 3️⃣ 配置 Nuclei(可选)\n如需漏洞扫描:\n\n+ 确保 `nuclei` 在 PATH 中\n\n```bash\nnuclei -version #输入此命令查看是否添加成功\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950503977-57d6011c-dd79-495d-9daf-3eb9a5f11093.png)\n\n+ 或下载nuclei二进制文件后直接放入项目根目录\n\n```bash\nhttps://github.com/projectdiscovery/nuclei/releases ## nuclei 扫描器官方下载地址,注意要下载对应自己操作系统版本的二进制文件\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767950804043-97f52c4e-2aaa-4fb4-bb5a-41bc58d6285c.png)\n\n---\n\n# ⚙️ 配置文件详解(config/settings.yaml)\n```bash\n#====== 用户信息 (User Info) ======\nuserinfo:\n # [基础] FOFA 凭证\n email: \"your_email@example.com\"\n key: \"your_fofa_api_key\"\n \n # [进阶] AI 模型配置 (支持 DeepSeek/OpenAI/Ollama 等)\n deepseek_api_key: \"sk-xxxxxxxxxxxxxxxxxxxxxxxx\"\n \n # 场景 A: 使用官方 DeepSeek\n api_type: \"deepseek\"\n base_url: \"https://api.deepseek.com/v1\"\n model: \"deepseek-chat\"\n\n # 场景 B: 使用本地 Ollama (注释掉上方,启用下方)\n # api_type: \"ollama\"\n # base_url: \"http://localhost:11434/v1\"\n # model: \"qwen2.5:7b\"\n\n# ====== 搜索设置 (Search Settings) ======\nsearch:\n fields: \"host,protocol,ip,port,title,domain,country,icp\"\n size: 100\n full: false # 设为 true 可查询一年前的数据\n start_page: 1\n end_page: 5 # 自动爬取前 5 页\n\n# ====== 性能与输出 (System) ======\nsystem:\n logger: true\n sheet_merge: true\n concurrency: 15 # 建议根据网络状况调整 (10-50)\n```\n\n---\n\n# 💻 使用方法\n---\n\n# 🧙 模式一:交互式任务向导模式(✨ 新手 & 日常首选)\n💡 **什么参数都不用记,只要运行:**\n\n```plain\npython3 fofamap.py\n```\n\n或:\n\n```plain\npython fofamap.py\n```\n\n即可进入 **AI 驱动的交互式任务向导界面**:\n\n```plain\n________ ____ __ ___ \n / ____/ /_ __/ __/___ _ / |/ /___ _____ \n / /_ / __ \\/ / /_/ __ `/ / /|_/ / __ `/ __ \\ \n / __/ / /_/ / / __/ /_/ / / / / / /_/ / /_/ / \n/_/ \\____/_/_/ \\__,_/ /_/ /_/\\__,_/ .___/ \n /_/ v2.0 \n [ AI Powered & Interactive Wizard ] -- By Hx0 Team\n\n[!] 启动任务向导...\n? 请选择您要执行的操作:\n » 1. 🔮 AI 智能侦察 (自然语言 -> 自动决策)\n 2. 🔍 FOFA 标准查询 (语法输入)\n 3. 🖥️ Host 聚合查询 (IP/域名详情)\n 4. 📊 统计聚合查询 (数据分布分析)\n 5. 🖼️ Icon Hash 查询 (favicon 逆向)\n 6. 📁 批量文件查询 (TXT 批量指令)\n ---------------\n 0. 🚪 退出程序\n```\n\n---\n\n## 🎯 这个模式适合谁?\n+ ✅ 不想记命令参数的人\n+ ✅ 第一次使用的新手\n+ ✅ 日常使用 / 演示 / 培训 / 快速操作\n+ ✅ 所有“我只想点一下跑任务”的场景\n\n---\n\n## 🧠 向导模式能做什么?\n你可以通过方向键选择:\n\n### 1️⃣ 🔮 AI 智能侦察(⭐ 强烈推荐)\n直接输入一句话:\n\n```plain\n我收集一下美国哈佛大学的子域名网站,并扫描一下\n```\n\n系统将自动:\n\n+ AI 理解意图\n+ 自动生成 FOFA 语法\n+ 自动查询\n+ 自动反思(0 结果会重试)\n+ 自动判断是否扫描\n+ 自动生成扫描参数\n+ 自动生成报告\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951546443-9d44a9ad-6b35-44fb-91e3-ea109d596712.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767951571098-29b92150-0196-4958-826b-ca23e43fe811.png)\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767952132926-1739cb75-8448-4034-9861-6967af7ada0f.png)\n\n---\n\n### 2️⃣ 🔍 FOFA 标准查询\n使用FOFA查询语句查询数据\n\n```plain\napp=\"ThinkPHP\" && country=\"CN\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969525080-a73044c2-440e-4c72-a114-4965e6f7a454.png)\n\n---\n\n### 3️⃣ 🖥️ Host 聚合查询(AI 深度画像)\n根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```plain\n8.8.8.8 / baidu.com \n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969742560-30b321cd-3993-43aa-b22a-b09e55c7a2fe.png)\n\n---\n\n### 4️⃣ 📊 统计聚合查询(AI 态势分析)\n根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n```plain\napp=\"redis\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969913563-68bcdcb8-9107-41c3-8fe3-933e2e456d73.png)\n\n---\n\n### 5️⃣ 🖼️ Icon Hash 查询\n<font style=\"color:rgb(31, 35, 40);\">用户可通过填入任意一网站地址,</font>系统<font style=\"color:rgb(31, 35, 40);\">会自动获取该网站的favicon.ico图标文件,并计算其hash值,并查找与此图标相似的网站。</font>\n\n```plain\nhttps://www.bing.com\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767969989542-9374fb72-3f71-40bb-83cd-16a298bc5ba0.png)\n\n---\n\n### 6️⃣ 📁 批量文件查询\n<font style=\"color:rgb(31, 35, 40);\">批量查询,用户可新建一个记事本文件,如targets.txt,然后将准备查询的fofa语句写入其中,输入文件路径即可进行批量查询。</font>\n\n```plain\n114.114.114.114\nwww.baidu.com\napp=\"kafka\"\n```\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767970211247-9467dce6-257d-4f5c-ada0-aad859eff97d.png)\n\n# 🔮 模式二:经典模式( 老用户推荐)\n## 1️⃣ AI查询模式\n```bash\npython3 fofamap.py -ai \"帮我收集一下美国哈佛大学的子域名网站,并扫描一下\"\n```\n\n## 2️⃣ 基础查询\n```bash\npython3 fofamap.py -q 'app=\"ThinkPHP\" && country=\"CN\"'\n```\n\n## 3️⃣ Host 深度画像(AI 报告)\n```bash\npython3 fofamap.py -hq 8.8.8.8\n```\n\n## 4️⃣ 统计聚合(AI 态势解读)\n```bash\npython3 fofamap.py -cq 'app=\"redis\"' -f country,org\n```\n\n---\n\n## 5️⃣ 图标 Hash 查询\n```bash\npython fofamap.py -ico https://www.bing.com\n```\n\n---\n\n## 6️⃣ 批量查询\n```bash\npython fofamap.py -bq targets.txt\n```\n\n---\n\n# 🔌 模式三:MCP 服务(🔥 给 AI / Agent 用)\n### 1️⃣ 集成到 Cursor (最推荐,体验丝滑)\nCursor 对 MCP 的支持非常完善,配置好后,你可以直接在 Composer (Ctrl+I) 或 Chat (Ctrl+L) 中用自然语言调用工具。\n\n1. 打开 **Cursor Settings** (点击右上角齿轮)。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953701100-91d40367-76ae-4239-9cdb-e64c4b442251.png)\n\n2. 在左侧菜单找到 **Tools** **&** **MCP**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953756050-3947fa69-3f69-4e3f-9264-96147c13027d.png)\n\n3. 点击 **+ Add New MCP Server**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953462183-08f47ea0-6683-4f71-886c-fb645b92f9b8.png)\n\n4. 填写mcp.json配置信息:\n - **Name**: `fofamap-v2` (随便起)\n - **Type**: `command` (或者叫 Stdio)\n - **Command**: `你的Python解释器绝对路径(若写入环境变量可以直接填python)`\n * 例如:`python3.10`\n - **Args**: `你的脚本绝对路径`\n * 例如:`/Users/ka/Downloads/fofamap/fofa/mcp_server.py`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953312691-9b0133cf-fc4c-47d7-82d8-a2bf55d2efec.png)\n\n5. 点击 **Save**。\n - 此时你会看到一个 **绿色的圆点** 🟢,状态显示 `Connected`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953585044-97eb5e90-3a00-4ef7-9b83-9a1fa7b80397.png)\n\n - 如果显示红色,点击刷新图标,或者去 Cursor 的 `Output` -> `MCP Log` 或者是我们刚才修好的 `Log` 窗口看报错。\n\n**👉**** 如何使用:** 打开 Cursor Chat (Ctrl+L),直接输入:\n\n“帮我查一下 baidu.com 的资产信息,并检查是否有存活。” \n\nCursor 会自动分析意图,并在界面上显示 `Using tool: search_assets...`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953662133-8e369f5a-3d4b-499d-aed0-74094190fe0d.png)\n\n---\n\n### 2️⃣ 集成到 LM Studio (本地模型)\nLM Studio 0.3.0+ 版本开始支持 MCP。这允许你用本地的 DeepSeek 或 Llama 3 调用你的工具。\n\n1. 打开 **LM Studio**。\n2. 点击对话框中的 **MCP (插头图标)**。\n3. 点击**Install按钮** 。\n4. **选择Edit mcp.json**。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767953870043-013b0c77-5282-4125-b9b8-911084c2bc8c.png)\n\n5. 填写配置:\n - **Name**: `fofamap-v2`\n - **Command**: `你的Python解释器绝对路径`\n - **Args**: `你的脚本绝对路径` (注意:LM Studio 有时需要把 args 分开填,或者填在一个框里,视版本而定)。\n * _建议形式_: `[\"/Users/ka/.../mcp_server.py\"]`\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954026399-f53295dc-ac1e-4101-9f54-dc87fd438ea5.png)\n\n6. 点击 **Save**。\n\n**👉**** 如何使用:**\n\n1. 去 **Chat** 界面。\n2. 加载一个支持 Tool Calling 的模型(推荐 `openai/gpt-oss-20b` 或 `Qwen 2.5 7B Instruct`,或者是 LM Studio 里的 DeepSeek R1/V3)。\n3. 在聊天框上方的 **Tools** 下拉菜单中,勾选 `mcp/fofamap-v2`。\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954105711-a5c74b58-4181-4f91-afcb-17b449bd6d89.png)\n\n4. 输入提示词:“帮我查一下Nginx在美国的分布情况···”\n\n<!-- 这是一张图片,ocr 内容为: -->\n![](https://cdn.nlark.com/yuque/0/2026/png/12839102/1767954226754-f5f9b4b3-95b5-4690-bf08-a5279470dda5.png)\n\n---\n\n# ☢️ 漏洞扫描联动(Nuclei)\n在2.0版本中AI 会根据查询结果智能生成Nuclei漏洞扫描命令参数:\n\n```latex\n[AI] 推荐命令: nuclei -tags spring -severity critical,high\n\n> 🚀 执行\n> ✏️ 修改\n> 🚫 仅生成报告\n```\n\n---\n\n# 📂 结果输出结构\n```bash\nresults/\n└── domain__harvard_edu_____country__US_20260108_173107\n ├── batch_merge_20260108_173107.xlsx\n ├── nuclei_result_20260108_173107.txt\n ├── report_20260108_173107.md\n └── targets_20260108_173107.txt\n```\n\n---\n\n# 🛡️ 免责声明\n+ 本工具仅面向**合法授权**的企业安全建设行为(如内部攻防演练、资产管理)。\n+ 在使用本工具进行检测时,您应确保该行为符合当地法律法规,并已取得目标所有者的授权。\n+ **禁止用于任何非法用途**。如您在使用本工具的过程中存在非法行为,您需自行承担相应后果,开发者不承担任何法律责任。\n\n---\n\n**FofaMap-V2.0由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**【打赏支持❤️】代码传情跨山海,点滴支持皆温暖✨**\n\n虽然代码完全开源,但每杯咖啡都能让我们走得更远 ☕️\n\n<img width=\"500\" height=\"400\" alt=\"打赏码\" src=\"https://github.com/user-attachments/assets/02868aed-357e-4740-983a-d5a8ea05bdbf\" />\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**【战队公众号】扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【战队知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://github.com/user-attachments/assets/94849d79-bcac-4a43-9221-3e2718225cb6\">\n\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n"}, "34332977997e49790c2ddf6e5d95e7a2c9e66e43": {"t": 1785748532.5334141, "n": 13137, "h": "0a17a230e9d1cc01", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[excel]\n#当sheet_merge设置为on时,批量查询结果将汇聚到一个文件的多个sheet进行输出,设置为false时,每个查询结果将单独作为一个文件进行输出\nsheet_merge = on\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n\n[fast_check]#网站存活检测(Beta)\n#网站存活检测开关,默认开启,开启后系统会对查询到的网站目标进行快速存活性检测\ncheck_alive = on\n#设置检测爬虫的超时时间\ntimeout = 5\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fastcheck.py ##网站存活检测类(引入协程)\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**网站存活检测功能(Beta):**\n\n用户可以在fofa.ini文件中修改fast_check模块下的check_alive值,当check_alive为on时,系统将会开启网站存活检测功能,该功能会对用户查询到的数据进行智能识别,筛选出开启http或https协议的网站,并对这些网站进行存活检测,生成检测结果。该功能可以帮助用户快速识别查询到的网站是否可以进行正常访问。\n\n\n```\n$ python3 fofamap.py -q 'title=\"Grafana\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/226097116-849b9d6c-3b17-48c7-8714-8f5f022ec0b9.png\">\n\n\n如上图,在开启fast_check功能后,输出结果会增加Http Status Code一列,该列内容是本机访问对应网站时,服务器返回的状态码,我们可以通过该状态码,判定本机是否可以正常访问查询到的网站,建议将timeout值(默认为5s),超时时间设置越大,系统返回到结果将会越精准。\n\n此外我们可通过-i参数筛选出指定的HTTP响应状态码,若要筛选多个状态码可用逗号隔开,如-i 200,403,500。\n\n```\n$ python3 fofamap.py -q 'app=\"Tomcat\"' -i 200,403\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232236835-c1e6205f-965b-48f3-af1b-42fa99f43f37.png\">\n\n上图,我们通过-i参数,筛选出了含有Tomcat应用的网站中网站响应状态码为200和403的网站信息。\n\n(PS:1.该功能目前为测试功能,在Python版本低于3.10的平台上运行可能会输出一些报错信息,但不影响总体结果的输出;2.该功能默认为关闭状态,需要启用该功能,请在fofa.ini文件中将check_alive的值由off改为on。)\n\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n当然!目前最新版也支持将所有任务查询结果整合到一个文件夹中。\n\n![image](https://github.com/asaotomo/FofaMap/assets/67818638/f6422434-186b-40d7-9a5b-250c4af517ed)\n\n\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1370\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/233833195-269c205e-83d7-4e8d-bf72-f04c90df6083.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.-kw,关键词筛选匹配** \n\n我们可以通过-kw参数对fofamap查询到的数据进行关键词筛选匹配,并输出【关键词匹配结果.xlsx】表。该功能特别推荐在进行批量查询时使用,可以快速将我们指定的包含关键词内容的数据整合到一张汇总表中,方便我们快速定位到特定的资产。\n\n例如:我们使用(-kw \"php,登录\")筛选出查询结果中包含\"php或登录\"的数据。\n\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' -kw \"php,登录\"\n```\n\n我们可以看到系统输出的内容为汇总之后的包含\"php或登录\"关键词的数据。\n\n<img width=\"1284\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232302814-29130f6e-a4ef-4489-bda2-b8566702f9c6.png\">\n\nPS: 1.-kw命令之后所跟的关键词不区分大小写。 2.需要匹配多个关键词时请使用英文逗号(,)隔开。\n\n**11.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**【打赏支持❤️】代码传情跨山海,点滴支持皆温暖✨**\n\n虽然代码完全开源,但每杯咖啡都能让我们走得更远 ☕️\n\n<img width=\"500\" height=\"400\" alt=\"打赏码\" src=\"https://github.com/user-attachments/assets/02868aed-357e-4740-983a-d5a8ea05bdbf\" />\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**【战队公众号】扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【战队知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://github.com/user-attachments/assets/94849d79-bcac-4a43-9221-3e2718225cb6\">\n\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 修复生成的sheet表格名称不能存在特殊字符的问题。\n\n[+] 优化系统输出逻辑。\n\n[+] 增加批量查询结果整合输出为一个文件的选项。\n\n[+] 增加域名查询结果自动输出xlsx文件。\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加网站存活检测功能(Beta),并支持从输出结果中筛选出自定义的HTTP响应状态码。\n\n[+] 增加关键词筛选匹配功能,可针对查询结果进行自定义关键词筛选,并将匹配结果汇总输出。\n\n[+] 增加Host聚合查询结果自动输出Excel表格。\n\n[+] 修复fastcheck模块中的存在的一些BUG,并在每次请求时增加了随机User-Agent。\n\n[+] 增加对输出文件名中的特殊字符过滤功能,避免因xlsx文件名中包含特殊字符而导致文件生成失败。(特别感谢用户OKVVbin提出的问题)\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "9b88f1265449341a87d38b7ebf45dfe4fd35dc51": {"t": 1785748533.7146215, "n": 12940, "h": "1e33c124d224e0db", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[excel]\n#当sheet_merge设置为on时,批量查询结果将汇聚到一个文件的多个sheet进行输出,设置为false时,每个查询结果将单独作为一个文件进行输出\nsheet_merge = on\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n\n[fast_check]#网站存活检测(Beta)\n#网站存活检测开关,默认开启,开启后系统会对查询到的网站目标进行快速存活性检测\ncheck_alive = on\n#设置检测爬虫的超时时间\ntimeout = 5\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fastcheck.py ##网站存活检测类(引入协程)\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**网站存活检测功能(Beta):**\n\n用户可以在fofa.ini文件中修改fast_check模块下的check_alive值,当check_alive为on时,系统将会开启网站存活检测功能,该功能会对用户查询到的数据进行智能识别,筛选出开启http或https协议的网站,并对这些网站进行存活检测,生成检测结果。该功能可以帮助用户快速识别查询到的网站是否可以进行正常访问。\n\n\n```\n$ python3 fofamap.py -q 'title=\"Grafana\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/226097116-849b9d6c-3b17-48c7-8714-8f5f022ec0b9.png\">\n\n\n如上图,在开启fast_check功能后,输出结果会增加Http Status Code一列,该列内容是本机访问对应网站时,服务器返回的状态码,我们可以通过该状态码,判定本机是否可以正常访问查询到的网站,建议将timeout值(默认为5s),超时时间设置越大,系统返回到结果将会越精准。\n\n此外我们可通过-i参数筛选出指定的HTTP响应状态码,若要筛选多个状态码可用逗号隔开,如-i 200,403,500。\n\n```\n$ python3 fofamap.py -q 'app=\"Tomcat\"' -i 200,403\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232236835-c1e6205f-965b-48f3-af1b-42fa99f43f37.png\">\n\n上图,我们通过-i参数,筛选出了含有Tomcat应用的网站中网站响应状态码为200和403的网站信息。\n\n(PS:1.该功能目前为测试功能,在Python版本低于3.10的平台上运行可能会输出一些报错信息,但不影响总体结果的输出;2.该功能默认为关闭状态,需要启用该功能,请在fofa.ini文件中将check_alive的值由off改为on。)\n\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n当然!目前最新版也支持将所有任务查询结果整合到一个文件夹中。\n\n![image](https://github.com/asaotomo/FofaMap/assets/67818638/f6422434-186b-40d7-9a5b-250c4af517ed)\n\n\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1370\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/233833195-269c205e-83d7-4e8d-bf72-f04c90df6083.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.-kw,关键词筛选匹配** \n\n我们可以通过-kw参数对fofamap查询到的数据进行关键词筛选匹配,并输出【关键词匹配结果.xlsx】表。该功能特别推荐在进行批量查询时使用,可以快速将我们指定的包含关键词内容的数据整合到一张汇总表中,方便我们快速定位到特定的资产。\n\n例如:我们使用(-kw \"php,登录\")筛选出查询结果中包含\"php或登录\"的数据。\n\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' -kw \"php,登录\"\n```\n\n我们可以看到系统输出的内容为汇总之后的包含\"php或登录\"关键词的数据。\n\n<img width=\"1284\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232302814-29130f6e-a4ef-4489-bda2-b8566702f9c6.png\">\n\nPS: 1.-kw命令之后所跟的关键词不区分大小写。 2.需要匹配多个关键词时请使用英文逗号(,)隔开。\n\n**11.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://github.com/user-attachments/assets/94849d79-bcac-4a43-9221-3e2718225cb6\">\n\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 修复生成的sheet表格名称不能存在特殊字符的问题。\n\n[+] 优化系统输出逻辑。\n\n[+] 增加批量查询结果整合输出为一个文件的选项。\n\n[+] 增加域名查询结果自动输出xlsx文件。\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加网站存活检测功能(Beta),并支持从输出结果中筛选出自定义的HTTP响应状态码。\n\n[+] 增加关键词筛选匹配功能,可针对查询结果进行自定义关键词筛选,并将匹配结果汇总输出。\n\n[+] 增加Host聚合查询结果自动输出Excel表格。\n\n[+] 修复fastcheck模块中的存在的一些BUG,并在每次请求时增加了随机User-Agent。\n\n[+] 增加对输出文件名中的特殊字符过滤功能,避免因xlsx文件名中包含特殊字符而导致文件生成失败。(特别感谢用户OKVVbin提出的问题)\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "70b8054ccefa1c4fe2bb14a60ecf2b4420c4ba85": {"t": 1785748534.9516459, "n": 12952, "h": "5cb6114a00a74362", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[excel]\n#当sheet_merge设置为on时,批量查询结果将汇聚到一个文件的多个sheet进行输出,设置为false时,每个查询结果将单独作为一个文件进行输出\nsheet_merge = on\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n\n[fast_check]#网站存活检测(Beta)\n#网站存活检测开关,默认开启,开启后系统会对查询到的网站目标进行快速存活性检测\ncheck_alive = on\n#设置检测爬虫的超时时间\ntimeout = 5\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fastcheck.py ##网站存活检测类(引入协程)\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**网站存活检测功能(Beta):**\n\n用户可以在fofa.ini文件中修改fast_check模块下的check_alive值,当check_alive为on时,系统将会开启网站存活检测功能,该功能会对用户查询到的数据进行智能识别,筛选出开启http或https协议的网站,并对这些网站进行存活检测,生成检测结果。该功能可以帮助用户快速识别查询到的网站是否可以进行正常访问。\n\n\n```\n$ python3 fofamap.py -q 'title=\"Grafana\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/226097116-849b9d6c-3b17-48c7-8714-8f5f022ec0b9.png\">\n\n\n如上图,在开启fast_check功能后,输出结果会增加Http Status Code一列,该列内容是本机访问对应网站时,服务器返回的状态码,我们可以通过该状态码,判定本机是否可以正常访问查询到的网站,建议将timeout值(默认为5s),超时时间设置越大,系统返回到结果将会越精准。\n\n此外我们可通过-i参数筛选出指定的HTTP响应状态码,若要筛选多个状态码可用逗号隔开,如-i 200,403,500。\n\n```\n$ python3 fofamap.py -q 'app=\"Tomcat\"' -i 200,403\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232236835-c1e6205f-965b-48f3-af1b-42fa99f43f37.png\">\n\n上图,我们通过-i参数,筛选出了含有Tomcat应用的网站中网站响应状态码为200和403的网站信息。\n\n(PS:1.该功能目前为测试功能,在Python版本低于3.10的平台上运行可能会输出一些报错信息,但不影响总体结果的输出;2.该功能默认为关闭状态,需要启用该功能,请在fofa.ini文件中将check_alive的值由off改为on。)\n\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n当然!目前最新版也支持将所有任务查询结果整合到一个文件夹中。\n\n![image](https://github.com/asaotomo/FofaMap/assets/67818638/f6422434-186b-40d7-9a5b-250c4af517ed)\n\n\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1370\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/233833195-269c205e-83d7-4e8d-bf72-f04c90df6083.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.-kw,关键词筛选匹配** \n\n我们可以通过-kw参数对fofamap查询到的数据进行关键词筛选匹配,并输出【关键词匹配结果.xlsx】表。该功能特别推荐在进行批量查询时使用,可以快速将我们指定的包含关键词内容的数据整合到一张汇总表中,方便我们快速定位到特定的资产。\n\n例如:我们使用(-kw \"php,登录\")筛选出查询结果中包含\"php或登录\"的数据。\n\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' -kw \"php,登录\"\n```\n\n我们可以看到系统输出的内容为汇总之后的包含\"php或登录\"关键词的数据。\n\n<img width=\"1284\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232302814-29130f6e-a4ef-4489-bda2-b8566702f9c6.png\">\n\nPS: 1.-kw命令之后所跟的关键词不区分大小写。 2.需要匹配多个关键词时请使用英文逗号(,)隔开。\n\n**11.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://github.com/asaotomo/ZipCracker/assets/67818638/659b508c-12ad-47a9-8df5-f2c36403c02b\">\n\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 修复生成的sheet表格名称不能存在特殊字符的问题。\n\n[+] 优化系统输出逻辑。\n\n[+] 增加批量查询结果整合输出为一个文件的选项。\n\n[+] 增加域名查询结果自动输出xlsx文件。\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加网站存活检测功能(Beta),并支持从输出结果中筛选出自定义的HTTP响应状态码。\n\n[+] 增加关键词筛选匹配功能,可针对查询结果进行自定义关键词筛选,并将匹配结果汇总输出。\n\n[+] 增加Host聚合查询结果自动输出Excel表格。\n\n[+] 修复fastcheck模块中的存在的一些BUG,并在每次请求时增加了随机User-Agent。\n\n[+] 增加对输出文件名中的特殊字符过滤功能,避免因xlsx文件名中包含特殊字符而导致文件生成失败。(特别感谢用户OKVVbin提出的问题)\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "2bf28cb79e01799c39a7705d7b5a846c0199ef78": {"t": 1785748536.2230132, "n": 12949, "h": "cffc0ab9ea3296bc", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[excel]\n#当sheet_merge设置为on时,批量查询结果将汇聚到一个文件的多个sheet进行输出,设置为false时,每个查询结果将单独作为一个文件进行输出\nsheet_merge = on\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n\n[fast_check]#网站存活检测(Beta)\n#网站存活检测开关,默认开启,开启后系统会对查询到的网站目标进行快速存活性检测\ncheck_alive = on\n#设置检测爬虫的超时时间\ntimeout = 5\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fastcheck.py ##网站存活检测类(引入协程)\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**网站存活检测功能(Beta):**\n\n用户可以在fofa.ini文件中修改fast_check模块下的check_alive值,当check_alive为on时,系统将会开启网站存活检测功能,该功能会对用户查询到的数据进行智能识别,筛选出开启http或https协议的网站,并对这些网站进行存活检测,生成检测结果。该功能可以帮助用户快速识别查询到的网站是否可以进行正常访问。\n\n\n```\n$ python3 fofamap.py -q 'title=\"Grafana\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/226097116-849b9d6c-3b17-48c7-8714-8f5f022ec0b9.png\">\n\n\n如上图,在开启fast_check功能后,输出结果会增加Http Status Code一列,该列内容是本机访问对应网站时,服务器返回的状态码,我们可以通过该状态码,判定本机是否可以正常访问查询到的网站,建议将timeout值(默认为5s),超时时间设置越大,系统返回到结果将会越精准。\n\n此外我们可通过-i参数筛选出指定的HTTP响应状态码,若要筛选多个状态码可用逗号隔开,如-i 200,403,500。\n\n```\n$ python3 fofamap.py -q 'app=\"Tomcat\"' -i 200,403\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232236835-c1e6205f-965b-48f3-af1b-42fa99f43f37.png\">\n\n上图,我们通过-i参数,筛选出了含有Tomcat应用的网站中网站响应状态码为200和403的网站信息。\n\n(PS:1.该功能目前为测试功能,在Python版本低于3.10的平台上运行可能会输出一些报错信息,但不影响总体结果的输出;2.该功能默认为关闭状态,需要启用该功能,请在fofa.ini文件中将check_alive的值由off改为on。)\n\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n当然!目前最新版也支持将所有任务查询结果整合到一个文件夹中。\n\n![image](https://github.com/asaotomo/FofaMap/assets/67818638/f6422434-186b-40d7-9a5b-250c4af517ed)\n\n\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1370\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/233833195-269c205e-83d7-4e8d-bf72-f04c90df6083.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.-kw,关键词筛选匹配** \n\n我们可以通过-kw参数对fofamap查询到的数据进行关键词筛选匹配,并输出【关键词匹配结果.xlsx】表。该功能特别推荐在进行批量查询时使用,可以快速将我们指定的包含关键词内容的数据整合到一张汇总表中,方便我们快速定位到特定的资产。\n\n例如:我们使用(-kw \"php,登录\")筛选出查询结果中包含\"php或登录\"的数据。\n\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' -kw \"php,登录\"\n```\n\n我们可以看到系统输出的内容为汇总之后的包含\"php或登录\"关键词的数据。\n\n<img width=\"1284\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232302814-29130f6e-a4ef-4489-bda2-b8566702f9c6.png\">\n\nPS: 1.-kw命令之后所跟的关键词不区分大小写。 2.需要匹配多个关键词时请使用英文逗号(,)隔开。\n\n**11.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://github.com/asaotomo/FofaMap/assets/67818638/94612a4c-9d38-4833-9aa1-35b9bd8028d1\">\n\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 修复生成的sheet表格名称不能存在特殊字符的问题。\n\n[+] 优化系统输出逻辑。\n\n[+] 增加批量查询结果整合输出为一个文件的选项。\n\n[+] 增加域名查询结果自动输出xlsx文件。\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加网站存活检测功能(Beta),并支持从输出结果中筛选出自定义的HTTP响应状态码。\n\n[+] 增加关键词筛选匹配功能,可针对查询结果进行自定义关键词筛选,并将匹配结果汇总输出。\n\n[+] 增加Host聚合查询结果自动输出Excel表格。\n\n[+] 修复fastcheck模块中的存在的一些BUG,并在每次请求时增加了随机User-Agent。\n\n[+] 增加对输出文件名中的特殊字符过滤功能,避免因xlsx文件名中包含特殊字符而导致文件生成失败。(特别感谢用户OKVVbin提出的问题)\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "7811cc5baedf39518a9cf3c3dcffcf950508acd1": {"t": 1785748537.4679656, "n": 12961, "h": "90cb44eb711e9a66", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[excel]\n#当sheet_merge设置为on时,批量查询结果将汇聚到一个文件的多个sheet进行输出,设置为false时,每个查询结果将单独作为一个文件进行输出\nsheet_merge = on\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n\n[fast_check]#网站存活检测(Beta)\n#网站存活检测开关,默认开启,开启后系统会对查询到的网站目标进行快速存活性检测\ncheck_alive = on\n#设置检测爬虫的超时时间\ntimeout = 5\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fastcheck.py ##网站存活检测类(引入协程)\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**网站存活检测功能(Beta):**\n\n用户可以在fofa.ini文件中修改fast_check模块下的check_alive值,当check_alive为on时,系统将会开启网站存活检测功能,该功能会对用户查询到的数据进行智能识别,筛选出开启http或https协议的网站,并对这些网站进行存活检测,生成检测结果。该功能可以帮助用户快速识别查询到的网站是否可以进行正常访问。\n\n\n```\n$ python3 fofamap.py -q 'title=\"Grafana\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/226097116-849b9d6c-3b17-48c7-8714-8f5f022ec0b9.png\">\n\n\n如上图,在开启fast_check功能后,输出结果会增加Http Status Code一列,该列内容是本机访问对应网站时,服务器返回的状态码,我们可以通过该状态码,判定本机是否可以正常访问查询到的网站,建议将timeout值(默认为5s),超时时间设置越大,系统返回到结果将会越精准。\n\n此外我们可通过-i参数筛选出指定的HTTP响应状态码,若要筛选多个状态码可用逗号隔开,如-i 200,403,500。\n\n```\n$ python3 fofamap.py -q 'app=\"Tomcat\"' -i 200,403\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232236835-c1e6205f-965b-48f3-af1b-42fa99f43f37.png\">\n\n上图,我们通过-i参数,筛选出了含有Tomcat应用的网站中网站响应状态码为200和403的网站信息。\n\n(PS:1.该功能目前为测试功能,在Python版本低于3.10的平台上运行可能会输出一些报错信息,但不影响总体结果的输出;2.该功能默认为关闭状态,需要启用该功能,请在fofa.ini文件中将check_alive的值由off改为on。)\n\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n当然!目前最新版也支持将所有任务查询结果整合到一个文件夹中。\n\n![image](https://github.com/asaotomo/FofaMap/assets/67818638/f6422434-186b-40d7-9a5b-250c4af517ed)\n\n\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1370\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/233833195-269c205e-83d7-4e8d-bf72-f04c90df6083.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.-kw,关键词筛选匹配** \n\n我们可以通过-kw参数对fofamap查询到的数据进行关键词筛选匹配,并输出【关键词匹配结果.xlsx】表。该功能特别推荐在进行批量查询时使用,可以快速将我们指定的包含关键词内容的数据整合到一张汇总表中,方便我们快速定位到特定的资产。\n\n例如:我们使用(-kw \"php,登录\")筛选出查询结果中包含\"php或登录\"的数据。\n\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' -kw \"php,登录\"\n```\n\n我们可以看到系统输出的内容为汇总之后的包含\"php或登录\"关键词的数据。\n\n<img width=\"1284\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232302814-29130f6e-a4ef-4489-bda2-b8566702f9c6.png\">\n\nPS: 1.-kw命令之后所跟的关键词不区分大小写。 2.需要匹配多个关键词时请使用英文逗号(,)隔开。\n\n**11.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543877-95b791f0-c677-4019-bb6e-504eefd8164e.png\">\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 修复生成的sheet表格名称不能存在特殊字符的问题。\n\n[+] 优化系统输出逻辑。\n\n[+] 增加批量查询结果整合输出为一个文件的选项。\n\n[+] 增加域名查询结果自动输出xlsx文件。\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加网站存活检测功能(Beta),并支持从输出结果中筛选出自定义的HTTP响应状态码。\n\n[+] 增加关键词筛选匹配功能,可针对查询结果进行自定义关键词筛选,并将匹配结果汇总输出。\n\n[+] 增加Host聚合查询结果自动输出Excel表格。\n\n[+] 修复fastcheck模块中的存在的一些BUG,并在每次请求时增加了随机User-Agent。\n\n[+] 增加对输出文件名中的特殊字符过滤功能,避免因xlsx文件名中包含特殊字符而导致文件生成失败。(特别感谢用户OKVVbin提出的问题)\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "fc5ee7ce78257972117fd8dad96e843ac44842cd": {"t": 1785748538.63986, "n": 12929, "h": "dc2cbcda159715f7", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[excel]\n#当sheet_merge设置为on时,批量查询结果将汇聚到一个文件的多个sheet进行输出,设置为false时,每个查询结果将单独作为一个文件进行输出\nsheet_merge = on\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n\n[fast_check]#网站存活检测(Beta)\n#网站存活检测开关,默认开启,开启后系统会对查询到的网站目标进行快速存活性检测\ncheck_alive = on\n#设置检测爬虫的超时时间\ntimeout = 5\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fastcheck.py ##网站存活检测类(引入协程)\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**网站存活检测功能(Beta):**\n\n用户可以在fofa.ini文件中修改fast_check模块下的check_alive值,当check_alive为on时,系统将会开启网站存活检测功能,该功能会对用户查询到的数据进行智能识别,筛选出开启http或https协议的网站,并对这些网站进行存活检测,生成检测结果。该功能可以帮助用户快速识别查询到的网站是否可以进行正常访问。\n\n\n```\n$ python3 fofamap.py -q 'title=\"Grafana\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/226097116-849b9d6c-3b17-48c7-8714-8f5f022ec0b9.png\">\n\n\n如上图,在开启fast_check功能后,输出结果会增加Http Status Code一列,该列内容是本机访问对应网站时,服务器返回的状态码,我们可以通过该状态码,判定本机是否可以正常访问查询到的网站,建议将timeout值(默认为5s),超时时间设置越大,系统返回到结果将会越精准。\n\n此外我们可通过-i参数筛选出指定的HTTP响应状态码,若要筛选多个状态码可用逗号隔开,如-i 200,403,500。\n\n```\n$ python3 fofamap.py -q 'app=\"Tomcat\"' -i 200,403\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232236835-c1e6205f-965b-48f3-af1b-42fa99f43f37.png\">\n\n上图,我们通过-i参数,筛选出了含有Tomcat应用的网站中网站响应状态码为200和403的网站信息。\n\n(PS:1.该功能目前为测试功能,在Python版本低于3.10的平台上运行可能会输出一些报错信息,但不影响总体结果的输出;2.该功能默认为关闭状态,需要启用该功能,请在fofa.ini文件中将check_alive的值由off改为on。)\n\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n当然!目前最新版也支持将所有任务查询结果整合到一个文件夹中。\n\n![image](https://github.com/asaotomo/FofaMap/assets/67818638/f6422434-186b-40d7-9a5b-250c4af517ed)\n\n\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1370\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/233833195-269c205e-83d7-4e8d-bf72-f04c90df6083.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.-kw,关键词筛选匹配** \n\n我们可以通过-kw参数对fofamap查询到的数据进行关键词筛选匹配,并输出【关键词匹配结果.xlsx】表。该功能特别推荐在进行批量查询时使用,可以快速将我们指定的包含关键词内容的数据整合到一张汇总表中,方便我们快速定位到特定的资产。\n\n例如:我们使用(-kw \"php,登录\")筛选出查询结果中包含\"php或登录\"的数据。\n\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' -kw \"php,登录\"\n```\n\n我们可以看到系统输出的内容为汇总之后的包含\"php或登录\"关键词的数据。\n\n<img width=\"1284\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232302814-29130f6e-a4ef-4489-bda2-b8566702f9c6.png\">\n\nPS: 1.-kw命令之后所跟的关键词不区分大小写。 2.需要匹配多个关键词时请使用英文逗号(,)隔开。\n\n**11.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543877-95b791f0-c677-4019-bb6e-504eefd8164e.png\">\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 优化系统输出逻辑。\n\n[+] 增加批量查询结果整合输出为一个文件的选项。\n\n[+] 增加域名查询结果自动输出xlsx文件。\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加网站存活检测功能(Beta),并支持从输出结果中筛选出自定义的HTTP响应状态码。\n\n[+] 增加关键词筛选匹配功能,可针对查询结果进行自定义关键词筛选,并将匹配结果汇总输出。\n\n[+] 增加Host聚合查询结果自动输出Excel表格。\n\n[+] 修复fastcheck模块中的存在的一些BUG,并在每次请求时增加了随机User-Agent。\n\n[+] 增加对输出文件名中的特殊字符过滤功能,避免因xlsx文件名中包含特殊字符而导致文件生成失败。(特别感谢用户OKVVbin提出的问题)\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "6ada953637e7b4265ac3d3d34ed194a5b806c59c": {"t": 1785748539.7903895, "n": 12929, "h": "b08cd3fe75a9944e", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[excel]\n#当sheet_merge设置为on时,批量查询结果将汇聚到一个文件的多个sheet进行输出,设置为false时,每个查询结果将单独作为一个文件进行输出\nsheet_merge = on\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n\n[fast_check]#网站存活检测(Beta)\n#网站存活检测开关,默认开启,开启后系统会对查询到的网站目标进行快速存活性检测\ncheck_alive = on\n#设置检测爬虫的超时时间\ntimeout = 5\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fastcheck.py ##网站存活检测类(引入协程)\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**网站存活检测功能(Beta):**\n\n用户可以在fofa.ini文件中修改fast_check模块下的check_alive值,当check_alive为on时,系统将会开启网站存活检测功能,该功能会对用户查询到的数据进行智能识别,筛选出开启http或https协议的网站,并对这些网站进行存活检测,生成检测结果。该功能可以帮助用户快速识别查询到的网站是否可以进行正常访问。\n\n\n```\n$ python3 fofamap.py -q 'title=\"Grafana\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/226097116-849b9d6c-3b17-48c7-8714-8f5f022ec0b9.png\">\n\n\n如上图,在开启fast_check功能后,输出结果会增加Http Status Code一列,该列内容是本机访问对应网站时,服务器返回的状态码,我们可以通过该状态码,判定本机是否可以正常访问查询到的网站,建议将timeout值(默认为5s),超时时间设置越大,系统返回到结果将会越精准。\n\n此外我们可通过-i参数筛选出指定的HTTP响应状态码,若要筛选多个状态码可用逗号隔开,如-i 200,403,500。\n\n```\n$ python3 fofamap.py -q 'app=\"Tomcat\"' -i 200,403\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232236835-c1e6205f-965b-48f3-af1b-42fa99f43f37.png\">\n\n上图,我们通过-i参数,筛选出了含有Tomcat应用的网站中网站响应状态码为200和403的网站信息。\n\n(PS:1.该功能目前为测试功能,在Python版本低于3.10的平台上运行可能会输出一些报错信息,但不影响总体结果的输出;2.该功能默认为关闭状态,需要启用该功能,请在fofa.ini文件中将check_alive的值由off改为on。)\n\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n当然!目前最新版也支持将所有任务查询结果整合到一个文件夹中。\n\n![image](https://github.com/asaotomo/FofaMap/assets/67818638/f6422434-186b-40d7-9a5b-250c4af517ed)\n\n\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1370\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/233833195-269c205e-83d7-4e8d-bf72-f04c90df6083.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.-kw,关键词筛选匹配** \n\n我们可以通过-kw参数对fofamap查询到的数据进行关键词筛选匹配,并输出【关键词匹配结果.xlsx】表。该功能特别推荐在进行批量查询时使用,可以快速将我们指定的包含关键词内容的数据整合到一张汇总表中,方便我们快速定位到特定的资产。\n\n例如:我们使用(-kw \"php,登录\")筛选出查询结果中包含\"php或登录\"的数据。\n\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' -kw \"php,登录\"\n```\n\n我们可以看到系统输出的内容为汇总之后的包含\"php或登录\"关键词的数据。\n\n<img width=\"1284\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232302814-29130f6e-a4ef-4489-bda2-b8566702f9c6.png\">\n\nPS: 1.-kw命令之后所跟的关键词不区分大小写。 2.需要匹配多个关键词时请使用英文逗号(,)隔开。\n\n**11.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543877-95b791f0-c677-4019-bb6e-504eefd8164e.png\">\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[*] 优化系统输出逻辑。\n\n[+] 增加批量查询结果整合输出为一个文件的选项。\n\n[+] 增加域名查询结果自动输出xlsx文件。\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加网站存活检测功能(Beta),并支持从输出结果中筛选出自定义的HTTP响应状态码。\n\n[+] 增加关键词筛选匹配功能,可针对查询结果进行自定义关键词筛选,并将匹配结果汇总输出。\n\n[+] 增加Host聚合查询结果自动输出Excel表格。\n\n[+] 修复fastcheck模块中的存在的一些BUG,并在每次请求时增加了随机User-Agent。\n\n[+] 增加对输出文件名中的特殊字符过滤功能,避免因xlsx文件名中包含特殊字符而导致文件生成失败。(特别感谢用户OKVVbin提出的问题)\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "981d7b7ecd4cf2f4338222e62df8cf747bfa13fa": {"t": 1785748540.956978, "n": 12694, "h": "541eb358dbead02b", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n\n[fast_check]#网站存活检测(Beta)\n#网站存活检测开关,默认关闭,开启后系统会对查询到的网站目标进行快速存活性检测\ncheck_alive = off\n#设置检测爬虫的超时时间\ntimeout = 5\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fastcheck.py ##网站存活检测类(引入协程)\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**网站存活检测功能(Beta):**\n\n用户可以在fofa.ini文件中修改fast_check模块下的check_alive值,当check_alive为on时,系统将会开启网站存活检测功能,该功能会对用户查询到的数据进行智能识别,筛选出开启http或https协议的网站,并对这些网站进行存活检测,生成检测结果。该功能可以帮助用户快速识别查询到的网站是否可以进行正常访问。\n\n\n```\n$ python3 fofamap.py -q 'title=\"Grafana\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/226097116-849b9d6c-3b17-48c7-8714-8f5f022ec0b9.png\">\n\n\n如上图,在开启fast_check功能后,输出结果会增加Http Status Code一列,该列内容是本机访问对应网站时,服务器返回的状态码,我们可以通过该状态码,判定本机是否可以正常访问查询到的网站,建议将timeout值(默认为5s),超时时间设置越大,系统返回到结果将会越精准。\n\n此外我们可通过-i参数筛选出指定的HTTP响应状态码,若要筛选多个状态码可用逗号隔开,如-i 200,403,500。\n\n```\n$ python3 fofamap.py -q 'app=\"Tomcat\"' -i 200,403\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232236835-c1e6205f-965b-48f3-af1b-42fa99f43f37.png\">\n\n上图,我们通过-i参数,筛选出了含有Tomcat应用的网站中网站响应状态码为200和403的网站信息。\n\n(PS:1.该功能目前为测试功能,在Python版本低于3.10的平台上运行可能会输出一些报错信息,但不影响总体结果的输出;2.该功能默认为关闭状态,需要启用该功能,请在fofa.ini文件中将check_alive的值由off改为on。)\n\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1370\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/233833195-269c205e-83d7-4e8d-bf72-f04c90df6083.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.-kw,关键词筛选匹配** \n\n我们可以通过-kw参数对fofamap查询到的数据进行关键词筛选匹配,并输出【关键词匹配结果.xlsx】表。该功能特别推荐在进行批量查询时使用,可以快速将我们指定的包含关键词内容的数据整合到一张汇总表中,方便我们快速定位到特定的资产。\n\n例如:我们使用(-kw \"php,登录\")筛选出查询结果中包含\"php或登录\"的数据。\n\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' -kw \"php,登录\"\n```\n\n我们可以看到系统输出的内容为汇总之后的包含\"php或登录\"关键词的数据。\n\n<img width=\"1284\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232302814-29130f6e-a4ef-4489-bda2-b8566702f9c6.png\">\n\nPS: 1.-kw命令之后所跟的关键词不区分大小写。 2.需要匹配多个关键词时请使用英文逗号(,)隔开。\n\n**11.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543877-95b791f0-c677-4019-bb6e-504eefd8164e.png\">\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[*] 优化系统输出逻辑。\n\n[+] 增加批量查询结果整合输出为一个文件的选项。\n\n[+] 增加域名查询结果自动输出xlsx文件。\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加网站存活检测功能(Beta),并支持从输出结果中筛选出自定义的HTTP响应状态码。\n\n[+] 增加关键词筛选匹配功能,可针对查询结果进行自定义关键词筛选,并将匹配结果汇总输出。\n\n[+] 增加Host聚合查询结果自动输出Excel表格。\n\n[+] 修复fastcheck模块中的存在的一些BUG,并在每次请求时增加了随机User-Agent。\n\n[+] 增加对输出文件名中的特殊字符过滤功能,避免因xlsx文件名中包含特殊字符而导致文件生成失败。(特别感谢用户OKVVbin提出的问题)\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "717602d8c0800a36cd883e5548b937d1b5be199e": {"t": 1785748542.5580647, "n": 12627, "h": "b8c1825706c61965", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n\n[fast_check]#网站存活检测(Beta)\n#网站存活检测开关,默认关闭,开启后系统会对查询到的网站目标进行快速存活性检测\ncheck_alive = off\n#设置检测爬虫的超时时间\ntimeout = 5\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fastcheck.py ##网站存活检测类(引入协程)\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**网站存活检测功能(Beta):**\n\n用户可以在fofa.ini文件中修改fast_check模块下的check_alive值,当check_alive为on时,系统将会开启网站存活检测功能,该功能会对用户查询到的数据进行智能识别,筛选出开启http或https协议的网站,并对这些网站进行存活检测,生成检测结果。该功能可以帮助用户快速识别查询到的网站是否可以进行正常访问。\n\n\n```\n$ python3 fofamap.py -q 'title=\"Grafana\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/226097116-849b9d6c-3b17-48c7-8714-8f5f022ec0b9.png\">\n\n\n如上图,在开启fast_check功能后,输出结果会增加Http Status Code一列,该列内容是本机访问对应网站时,服务器返回的状态码,我们可以通过该状态码,判定本机是否可以正常访问查询到的网站,建议将timeout值(默认为5s),超时时间设置越大,系统返回到结果将会越精准。\n\n此外我们可通过-i参数筛选出指定的HTTP响应状态码,若要筛选多个状态码可用逗号隔开,如-i 200,403,500。\n\n```\n$ python3 fofamap.py -q 'app=\"Tomcat\"' -i 200,403\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232236835-c1e6205f-965b-48f3-af1b-42fa99f43f37.png\">\n\n上图,我们通过-i参数,筛选出了含有Tomcat应用的网站中网站响应状态码为200和403的网站信息。\n\n(PS:1.该功能目前为测试功能,在Python版本低于3.10的平台上运行可能会输出一些报错信息,但不影响总体结果的输出;2.该功能默认为关闭状态,需要启用该功能,请在fofa.ini文件中将check_alive的值由off改为on。)\n\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1370\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/233833195-269c205e-83d7-4e8d-bf72-f04c90df6083.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.-kw,关键词筛选匹配** \n\n我们可以通过-kw参数对fofamap查询到的数据进行关键词筛选匹配,并输出【关键词匹配结果.xlsx】表。该功能特别推荐在进行批量查询时使用,可以快速将我们指定的包含关键词内容的数据整合到一张汇总表中,方便我们快速定位到特定的资产。\n\n例如:我们使用(-kw \"php,登录\")筛选出查询结果中包含\"php或登录\"的数据。\n\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' -kw \"php,登录\"\n```\n\n我们可以看到系统输出的内容为汇总之后的包含\"php或登录\"关键词的数据。\n\n<img width=\"1284\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232302814-29130f6e-a4ef-4489-bda2-b8566702f9c6.png\">\n\nPS: 1.-kw命令之后所跟的关键词不区分大小写。 2.需要匹配多个关键词时请使用英文逗号(,)隔开。\n\n**11.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543877-95b791f0-c677-4019-bb6e-504eefd8164e.png\">\n\n## 历史Star\n\n[![Star History Chart](https://api.star-history.com/svg?repos=asaotomo/FofaMap&type=Date)](https://star-history.com/#asaotomo/FofaMap)\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加网站存活检测功能(Beta),并支持从输出结果中筛选出自定义的HTTP响应状态码。\n\n[+] 增加关键词筛选匹配功能,可针对查询结果进行自定义关键词筛选,并将匹配结果汇总输出。\n\n[+] 增加Host聚合查询结果自动输出Excel表格。\n\n[+] 修复fastcheck模块中的存在的一些BUG,并在每次请求时增加了随机User-Agent。\n\n[+] 增加对输出文件名中的特殊字符过滤功能,避免因xlsx文件名中包含特殊字符而导致文件生成失败。(特别感谢用户OKVVbin提出的问题)\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "b991145e9e006d6263a6242933139bf0b999bd35": {"t": 1785748543.704898, "n": 12481, "h": "0e35450cdba42d05", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n\n[fast_check]#网站存活检测(Beta)\n#网站存活检测开关,默认关闭,开启后系统会对查询到的网站目标进行快速存活性检测\ncheck_alive = off\n#设置检测爬虫的超时时间\ntimeout = 5\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fastcheck.py ##网站存活检测类(引入协程)\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**网站存活检测功能(Beta):**\n\n用户可以在fofa.ini文件中修改fast_check模块下的check_alive值,当check_alive为on时,系统将会开启网站存活检测功能,该功能会对用户查询到的数据进行智能识别,筛选出开启http或https协议的网站,并对这些网站进行存活检测,生成检测结果。该功能可以帮助用户快速识别查询到的网站是否可以进行正常访问。\n\n\n```\n$ python3 fofamap.py -q 'title=\"Grafana\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/226097116-849b9d6c-3b17-48c7-8714-8f5f022ec0b9.png\">\n\n\n如上图,在开启fast_check功能后,输出结果会增加Http Status Code一列,该列内容是本机访问对应网站时,服务器返回的状态码,我们可以通过该状态码,判定本机是否可以正常访问查询到的网站,建议将timeout值(默认为5s),超时时间设置越大,系统返回到结果将会越精准。\n\n此外我们可通过-i参数筛选出指定的HTTP响应状态码,若要筛选多个状态码可用逗号隔开,如-i 200,403,500。\n\n```\n$ python3 fofamap.py -q 'app=\"Tomcat\"' -i 200,403\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232236835-c1e6205f-965b-48f3-af1b-42fa99f43f37.png\">\n\n上图,我们通过-i参数,筛选出了含有Tomcat应用的网站中网站响应状态码为200和403的网站信息。\n\n(PS:1.该功能目前为测试功能,在Python版本低于3.10的平台上运行可能会输出一些报错信息,但不影响总体结果的输出;2.该功能默认为关闭状态,需要启用该功能,请在fofa.ini文件中将check_alive的值由off改为on。)\n\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1370\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/233833195-269c205e-83d7-4e8d-bf72-f04c90df6083.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.-kw,关键词筛选匹配** \n\n我们可以通过-kw参数对fofamap查询到的数据进行关键词筛选匹配,并输出【关键词匹配结果.xlsx】表。该功能特别推荐在进行批量查询时使用,可以快速将我们指定的包含关键词内容的数据整合到一张汇总表中,方便我们快速定位到特定的资产。\n\n例如:我们使用(-kw \"php,登录\")筛选出查询结果中包含\"php或登录\"的数据。\n\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' -kw \"php,登录\"\n```\n\n我们可以看到系统输出的内容为汇总之后的包含\"php或登录\"关键词的数据。\n\n<img width=\"1284\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232302814-29130f6e-a4ef-4489-bda2-b8566702f9c6.png\">\n\nPS: 1.-kw命令之后所跟的关键词不区分大小写。 2.需要匹配多个关键词时请使用英文逗号(,)隔开。\n\n**11.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543877-95b791f0-c677-4019-bb6e-504eefd8164e.png\">\n\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加网站存活检测功能(Beta),并支持从输出结果中筛选出自定义的HTTP响应状态码。\n\n[+] 增加关键词筛选匹配功能,可针对查询结果进行自定义关键词筛选,并将匹配结果汇总输出。\n\n[+] 增加Host聚合查询结果自动输出Excel表格。\n\n[+] 修复fastcheck模块中的存在的一些BUG,并在每次请求时增加了随机User-Agent。\n\n[+] 增加对输出文件名中的特殊字符过滤功能,避免因xlsx文件名中包含特殊字符而导致文件生成失败。(特别感谢用户OKVVbin提出的问题)\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "6ed187f5b1b9b4f25d73ab19f84feb5f97b2b3ae": {"t": 1785748544.8693242, "n": 12356, "h": "eace293794fc559b", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n\n[fast_check]#网站存活检测(Beta)\n#网站存活检测开关,默认关闭,开启后系统会对查询到的网站目标进行快速存活性检测\ncheck_alive = off\n#设置检测爬虫的超时时间\ntimeout = 5\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fastcheck.py ##网站存活检测类(引入协程)\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**网站存活检测功能(Beta):**\n\n用户可以在fofa.ini文件中修改fast_check模块下的check_alive值,当check_alive为on时,系统将会开启网站存活检测功能,该功能会对用户查询到的数据进行智能识别,筛选出开启http或https协议的网站,并对这些网站进行存活检测,生成检测结果。该功能可以帮助用户快速识别查询到的网站是否可以进行正常访问。\n\n\n```\n$ python3 fofamap.py -q 'title=\"Grafana\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/226097116-849b9d6c-3b17-48c7-8714-8f5f022ec0b9.png\">\n\n\n如上图,在开启fast_check功能后,输出结果会增加Http Status Code一列,该列内容是本机访问对应网站时,服务器返回的状态码,我们可以通过该状态码,判定本机是否可以正常访问查询到的网站,建议将timeout值(默认为5s),超时时间设置越大,系统返回到结果将会越精准。\n\n此外我们可通过-i参数筛选出指定的HTTP响应状态码,若要筛选多个状态码可用逗号隔开,如-i 200,403,500。\n\n```\n$ python3 fofamap.py -q 'app=\"Tomcat\"' -i 200,403\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232236835-c1e6205f-965b-48f3-af1b-42fa99f43f37.png\">\n\n上图,我们通过-i参数,筛选出了含有Tomcat应用的网站中网站响应状态码为200和403的网站信息。\n\n(PS:1.该功能目前为测试功能,在Python版本低于3.10的平台上运行可能会输出一些报错信息,但不影响总体结果的输出;2.该功能默认为关闭状态,需要启用该功能,请在fofa.ini文件中将check_alive的值由off改为on。)\n\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1370\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/233833195-269c205e-83d7-4e8d-bf72-f04c90df6083.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.-kw,关键词筛选匹配** \n\n我们可以通过-kw参数对fofamap查询到的数据进行关键词筛选匹配,并输出【关键词匹配结果.xlsx】表。该功能特别推荐在进行批量查询时使用,可以快速将我们指定的包含关键词内容的数据整合到一张汇总表中,方便我们快速定位到特定的资产。\n\n例如:我们使用(-kw \"php,登录\")筛选出查询结果中包含\"php或登录\"的数据。\n\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' -kw \"php,登录\"\n```\n\n我们可以看到系统输出的内容为汇总之后的包含\"php或登录\"关键词的数据。\n\n<img width=\"1284\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232302814-29130f6e-a4ef-4489-bda2-b8566702f9c6.png\">\n\nPS: 1.-kw命令之后所跟的关键词不区分大小写。 2.需要匹配多个关键词时请使用英文逗号(,)隔开。\n\n**11.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543877-95b791f0-c677-4019-bb6e-504eefd8164e.png\">\n\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加网站存活检测功能(Beta),并支持从输出结果中筛选出自定义的HTTP响应状态码。\n\n[+] 增加关键词筛选匹配功能,可针对查询结果进行自定义关键词筛选,并将匹配结果汇总输出。\n\n[+] 增加Host聚合查询结果自动输出Excel表格。\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "f5d605b9ecbff17077dd60b6f6342ce0a8279836": {"t": 1785748546.3936422, "n": 12326, "h": "11b9e7aabfe76053", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n\n[fast_check]#网站存活检测(Beta)\n#网站存活检测开关,默认关闭,开启后系统会对查询到的网站目标进行快速存活性检测\ncheck_alive = off\n#设置检测爬虫的超时时间\ntimeout = 5\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fastcheck.py ##网站存活检测类(引入协程)\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**网站存活检测功能(Beta):**\n\n用户可以在fofa.ini文件中修改fast_check模块下的check_alive值,当check_alive为on时,系统将会开启网站存活检测功能,该功能会对用户查询到的数据进行智能识别,筛选出开启http或https协议的网站,并对这些网站进行存活检测,生成检测结果。该功能可以帮助用户快速识别查询到的网站是否可以进行正常访问。\n\n\n```\n$ python3 fofamap.py -q 'title=\"Grafana\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/226097116-849b9d6c-3b17-48c7-8714-8f5f022ec0b9.png\">\n\n\n如上图,在开启fast_check功能后,输出结果会增加Http Status Code一列,该列内容是本机访问对应网站时,服务器返回的状态码,我们可以通过该状态码,判定本机是否可以正常访问查询到的网站,建议将timeout值(默认为5s),超时时间设置越大,系统返回到结果将会越精准。\n\n此外我们可通过-i参数筛选出指定的HTTP响应状态码,若要筛选多个状态码可用逗号隔开,如-i 200,403,500。\n\n```\n$ python3 fofamap.py -q 'app=\"Tomcat\"' -i 200,403\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232236835-c1e6205f-965b-48f3-af1b-42fa99f43f37.png\">\n\n上图,我们通过-i参数,筛选出了含有Tomcat应用的网站中网站响应状态码为200和403的网站信息。\n\n(PS:1.该功能目前为测试功能,在Python版本低于3.10的平台上运行可能会输出一些报错信息,但不影响总体结果的输出;2.该功能默认为关闭状态,需要启用该功能,请在fofa.ini文件中将check_alive的值由off改为on。)\n\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1373\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450858-45832b0b-4f71-4746-9b59-29d281b7b150.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.-kw,关键词筛选匹配** \n\n我们可以通过-kw参数对fofamap查询到的数据进行关键词筛选匹配,并输出【关键词匹配结果.xlsx】表。该功能特别推荐在进行批量查询时使用,可以快速将我们指定的包含关键词内容的数据整合到一张汇总表中,方便我们快速定位到特定的资产。\n\n例如:我们使用(-kw \"php,登录\")筛选出查询结果中包含\"php或登录\"的数据。\n\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' -kw \"php,登录\"\n```\n\n我们可以看到系统输出的内容为汇总之后的包含\"php或登录\"关键词的数据。\n\n<img width=\"1284\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232302814-29130f6e-a4ef-4489-bda2-b8566702f9c6.png\">\n\nPS: 1.-kw命令之后所跟的关键词不区分大小写。 2.需要匹配多个关键词时请使用英文逗号(,)隔开。\n\n**11.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543877-95b791f0-c677-4019-bb6e-504eefd8164e.png\">\n\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加网站存活检测功能(Beta),并支持从输出结果中筛选出自定义的HTTP响应状态码。\n\n[+] 增加关键词筛选匹配功能,可针对查询结果进行自定义关键词筛选,并将匹配结果汇总输出。\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "65448889d4cd09f101a8efafaf7588c7d47b508a": {"t": 1785748547.50692, "n": 11801, "h": "2b21d967e0181dfa", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n\n[fast_check]#网站存活检测(Beta)\n#网站存活检测开关,默认关闭,开启后系统会对查询到的网站目标进行快速存活性检测\ncheck_alive = off\n#设置检测爬虫的超时时间\ntimeout = 5\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fastcheck.py ##网站存活检测类(引入协程)\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**网站存活检测功能(Beta):**\n\n用户可以在fofa.ini文件中修改fast_check模块下的check_alive值,当check_alive为on时,系统将会开启网站存活检测功能,该功能会对用户查询到的数据进行智能识别,筛选出开启http或https协议的网站,并对这些网站进行存活检测,生成检测结果。该功能可以帮助用户快速识别查询到的网站是否可以进行正常访问。\n\n\n```\n$ python3 fofamap.py -q 'title=\"Grafana\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/226097116-849b9d6c-3b17-48c7-8714-8f5f022ec0b9.png\">\n\n\n如上图,在开启fast_check功能后,输出结果会增加Http Status Code一列,该列内容是本机访问对应网站时,服务器返回的状态码,我们可以通过该状态码,判定本机是否可以正常访问查询到的网站,建议将timeout值(默认为5s),超时时间设置越大,系统返回到结果将会越精准。\n\n此外我们可通过-i参数筛选出指定的HTTP响应状态码,若要筛选多个状态码可用逗号隔开,如-i 200,403,500。\n\n```\n$ python3 fofamap.py -q 'app=\"Tomcat\"' -i 200,403\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/232236835-c1e6205f-965b-48f3-af1b-42fa99f43f37.png\">\n\n上图,我们通过-i参数,筛选出了含有Tomcat应用的网站中网站响应状态码为200和403的网站信息。\n\n(PS:1.该功能目前为测试功能,在Python版本低于3.10的平台上运行可能会输出一些报错信息,但不影响总体结果的输出;2.该功能默认为关闭状态,需要启用该功能,请在fofa.ini文件中将check_alive的值由off改为on。)\n\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1373\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450858-45832b0b-4f71-4746-9b59-29d281b7b150.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543877-95b791f0-c677-4019-bb6e-504eefd8164e.png\">\n\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加网站存活检测功能(Beta),并支持从输出结果中筛选出自定义的HTTP响应状态码。\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "0221a1c5057c1180059e43a00697ddac40f5cbf6": {"t": 1785748548.6668053, "n": 11465, "h": "50ee13d497cb388f", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n\n[fast_check]#网站存活检测(Beta)\n#网站存活检测开关,默认关闭,开启后系统会对查询到的网站目标进行快速存活性检测\ncheck_alive = off\n#设置检测爬虫的超时时间\ntimeout = 5\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fastcheck.py ##网站存活检测类(引入协程)\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**网站存活检测功能(Beta):**\n\n用户可以在fofa.ini文件中修改fast_check模块下的check_alive值,当check_alive为on时,系统将会开启网站存活检测功能,该功能会对用户查询到的数据进行智能识别,筛选出开启http或https协议的网站,并对这些网站进行存活检测,生成检测结果。该功能可以帮助用户快速识别查询到的网站是否可以进行正常访问。\n\n\n```\n$ python3 fofamap.py -q 'title=\"Grafana\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/226097116-849b9d6c-3b17-48c7-8714-8f5f022ec0b9.png\">\n\n\n如上图,在开启fast_check功能后,输出结果会增加Http Status Code一列,该列内容是本机访问对应网站时,服务器返回的状态码,我们可以通过该状态码,判定本机是否可以正常访问查询到的网站,建议将timeout值(默认为5s),超时时间设置越大,系统返回到结果将会越精准。\n\n\n(PS:1.该功能目前为测试功能,在Python版本低于3.10的平台上运行可能会输出一些报错信息,但不影响总体结果的输出;\n\n2.该功能默认为关闭状态,需要启用该功能,请在fofa.ini文件中将check_alive的值由off改为on。)\n\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1373\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450858-45832b0b-4f71-4746-9b59-29d281b7b150.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543877-95b791f0-c677-4019-bb6e-504eefd8164e.png\">\n\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加网站存活检测功能(Beta)。\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "78ea4264a416a3a92d2fc7c8c30d61909aa011fe": {"t": 1785748550.3123057, "n": 10644, "h": "f8cd9eab9a424061", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**2.-hq 使用FOFAMAP查询Host聚合查询**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n**3.-cq 使用FOFAMAP查询统计聚合数据**\n\n**关于命令说明:**\n\n使用统计聚合功能,可以根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。例如,我们使用下列命令统计全球范围内使用Redis应用的Top5国家。其中-cq为查询内容,-f为需要统计聚合的字段,默认为title,可按照示例配置多个字段 fields=country,protocol,domain,port。详细用法见[FOFA API 官方文档](https://fofa.info/api/stats/statistical)\n\n```\n$ python3 fofamap.py -cq 'app=\"redis\"' -f country\n```\n\n<img width=\"1050\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221577605-23451f2d-66d7-4fc8-922a-cc7cfd717963.png\">\n\n**PS:该功能限制为每隔5秒查询1次,查询频率太快会被FOFA拒绝。**\n\n**4.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**5.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**6.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n**7.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1373\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450858-45832b0b-4f71-4746-9b59-29d281b7b150.png\">\n\n\n**8.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**9.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**10.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543877-95b791f0-c677-4019-bb6e-504eefd8164e.png\">\n\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加统计聚合功能,可根据当前的查询内容,生成全球统计信息,当前可统计每个字段的前5排名。\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "3aa176e98b6ddc4830ce29e5918b9dc9e1e58483": {"t": 1785748551.6105394, "n": 10086, "h": "7bb4b4034a85bf4b", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**2.-hq 使用FOFA查询Host聚合数据**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"1375\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450671-ab53aeed-b436-4cd9-a99a-719b3222b3be.png\">\n\n\n**3.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**4.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**5.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n**6.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"1373\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/221450858-45832b0b-4f71-4746-9b59-29d281b7b150.png\">\n\n\n**7.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**8.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**9.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543877-95b791f0-c677-4019-bb6e-504eefd8164e.png\">\n\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "f8c3122f35bf22f0fe801aa0d016757ae104059d": {"t": 1785748552.8921854, "n": 10084, "h": "f39c5438937c82ba", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**2.-hq 使用FOFA查询Host聚合数据**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"578\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/197658462-7f5b8086-7e8a-4466-951f-46572ab3e55c.png\">\n\n\n**3.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**4.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**5.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n**6.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"599\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/197658410-835f2014-2358-43ba-9c47-4ea80fc06fb0.png\">\n\n\n**7.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**8.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**9.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543877-95b791f0-c677-4019-bb6e-504eefd8164e.png\">\n\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 优化聚合搜索内容,修复部分搜索结果报错的问题。\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "bf137f7e7768f76ef390c1a441f13ebb436c1b25": {"t": 1785748554.0337746, "n": 10055, "h": "00788483e41d6083", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**2.-hq 使用FOFA查询Host聚合数据**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"578\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/197658462-7f5b8086-7e8a-4466-951f-46572ab3e55c.png\">\n\n\n**3.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**4.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**5.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n**6.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"599\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/197658410-835f2014-2358-43ba-9c47-4ea80fc06fb0.png\">\n\n\n**7.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**8.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**9.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**特别鸣谢~FOFA官方**\n\nFoFaMap 已加入 FOFA [共创者计划](https://fofa.info/development),感谢 FOFA 提供的账号支持。\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543196-b76f6808-b5dd-4933-9451-0c3217dca8f5.png\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/210543877-95b791f0-c677-4019-bb6e-504eefd8164e.png\">\n\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}, "b9807c49cd6a8384e46826a84646408a95f692e7": {"t": 1785748556.1822526, "n": 9824, "h": "0f82bfd392942d28", "c": "**FofaMap_V1.1.3 国庆特别版【联动 Nuclei】| [FofaMap云查询版](https://github.com/asaotomo/FofaMap-Cloud)**\n\n![image](https://user-images.githubusercontent.com/67818638/149505431-06fbc14b-ac0c-4ccb-a316-949fe08e9ee5.png)\n\n<p align=\"center\">\n<a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-_red.svg\"></a>\n<a href=\"https://github.com/asaotomo/fofamap/issues\"><img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"></a>\n<a href=\"https://github.com/sqlmapproject/sqlmap/actions/workflows/tests.yml\"><img src=\"https://img.shields.io/badge/python-3.x-blue.svg\"></a>\n</p>\n\n**好消息:FofaMap又可以正常使用了,感谢🙏大家一直以来对FofaMap的支持,我们将继续对FofaMap进行更新和维护。**\n\n**[FofaMap](https://github.com/asaotomo/FofaMap)是一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集FOFA数据,并导出生成对应的Excel表格或TXT扫描目标。**\n\n**[Nuclei](https://github.com/projectdiscovery/nuclei)是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。**\n\n**本次我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率。**\n\n**一.安装说明**\n\n1.工具使用**Python3**开发,请确保您的电脑上已经安装了**Python3**环境。\n\n2.首次使用请使用 **python3 -m pip install -r requirements.txt** 命令,来安装必要的外部依赖包。\n\n3.**fofa.ini**为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据。\n\n4.在使用该工具前,请先填写用户信息[userinfo]中的email和key,**fofa.ini**配置文件说明如下:\n\n```\n[userinfo]#用户信息\n#注册和登录时填写的email\nemail = xxxxx@qq.com\n#会员到个人资料可得到key,为32位的hash值\nkey = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5\n\n[size]#查询数量\n#每页查询数量,默认为100条,最大支持10,000条/页\nsize = 100\n\n[full]#查询范围\n#默认搜索一年内的数据,指定为true即可搜索全部数据,false为一年内数据\nfull = false\n\n[fields]#查询内容选项\n#默认查询内容为:ip、端口、网站标题、国家和城市\nfields = ip,port,title,country,city\n\n#fields可选项有:['host', 'title', 'ip', 'domain', 'port', 'country', 'province', 'city', 'country_name', 'header', 'server', 'protocol', 'banner', 'cert', 'isp', 'as_number', 'as_organization', 'latitude', 'longitude', 'structinfo','icp', 'fid', 'cname']\n\n[page]#查询页数\n#查询启始页数\nstart_page = 1\n#查询结束页数\nend_page = 2\n\n[logger]#日志开关\n#全局日志开关,开启后会默认输入软件执行日志到fofamap.log文件\nlogger = on\n```\n\n5.不同用户使用**Fofamap**调用FOFA全网资产收集与检索系统API查询次数如下:\n\n **企业会员** 免费前100,000条/次\n\n **高级会员** 免费前10000条/次\n\n **普通会员** 免费前100条/次\n\n **注册用户** 1F币(最多10,000条)/次 \n\n用户可以根据自己的账号类型设置对应的查询页数。\n\n6.项目文件结构:\n\n```\n├── README.md ##使用说明\n├── fofa.ini ##fofa配置文件\n├── fofa.py ##fofa api调用类\n├── fofamap.py ##fofamap主程序\n├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换\n│   ├── linux ##linux版主程序\n│   │   ├── nuclei_386\n│   │   ├── nuclei_amd\n│   │   ├── nuclei_arm\n│   │   └── nuclei_armv6\n│   ├── macos ##macos版主程序\n│   │   ├── nuclei_amd\n│   │   └── nuclei_arm\n│   └── windows ##windows版主程序\n│   ├── nuclei_386.exe\n│   └── nuclei_amd.exe\n├── nuclei.py ##nuclei api调用类\n├── requirements.txt ##依赖包要求\n```\n\n7.适配情况:目前FofaMap春节特别版以及适配了**macOS、Windows、Kali Linux、Ubuntu**等操作系统。\n\n**二.使用方法**\n\n**1.-q 使用FOFA查询语句查询数据**\n\n**关于命令说明:**\n\n如果用户想要使用fofa联合查询语句,例如:**app=\"grafana\" && country=\"US\"**。\n\nLinux和macOS用户直接使用python3 fofamap.py -q 'app=\"grafana\" && country=\"US\"'即可成功查询。\n\nWindows用户因为系统原因,需要使用python3 fofamap.py -q \"app=\\\\\"grafana\\\\\" && country=\\\\\"CN\\\\\"\"系统才可成功识别,即Windows用户需要对查询命令内部的\"使用\\进行转义,否则系统识别错误。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"'\n```\n\n<img width=\"1007\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065065-205e1f0f-35e1-4c65-a80b-1c632f1f0f58.png\">\n\n**2.-hq 使用FOFA查询Host聚合数据**\n\n**关于命令说明:**\n\n用户使用Host聚合查询模式时,系统可以根据当前的查询内容,生成聚合信息,host通常是ip,包含基础信息和IP标签。\n\n```\n$ python3 fofamap.py -hq 8.8.8.8\n```\n\n<img width=\"578\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/197658462-7f5b8086-7e8a-4466-951f-46572ab3e55c.png\">\n\n\n**3.-o 自定义输出文件名[默认为fofa.xlsx]**\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -o 结果.xlsx\n```\n\n<img width=\"1073\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065219-ebaf0649-c756-44d9-a61e-c2b3414311b2.png\">\n\n\n**输出的结果.xlsx内容如下:**\n\n<img width=\"1088\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065268-d7306a51-10f0-4df8-b132-94012e07d73d.png\">\n\n\n**4.-ico 使用网站图标Hash值进行查询**\n\nFofaMap V1.1.2新版支持网站图标查询【仅支持Fofa高级会员及以上用户】。\n\n用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。\n\n```\n$ python3 fofamap.py -ico 网站url\n```\n\n例如我们查询含有必应(bing)图标的网站,**python3 fofamap.py -ico https://www.bing.com**\n\n<img width=\"926\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/153366400-7344cd00-f050-42f7-b20d-e46b7466387f.png\">\n\n**5.-bq 批量查询数据**\n\nFofaMap V1.1.3新版支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bq bat.txt\n```\n\n**bat.txt文件内容:**\n\n```plain\ndomain=\"youku.com\" \nserver==\"Microsoft-IIS/7.0\" \nip=\"211.45.30.16/24\"\nicp=\"京ICP备10036305号\"\n```\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591372395-0f7c1e18-2d39-400a-9258-b5c4afb587e7.png)\n\n查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件。\n\n**如下:**\n\n![img](https://cdn.nlark.com/yuque/0/2022/png/12839102/1642591515080-a0220744-be8c-4030-a5ca-5ba60fa2366f.png)\n\n**6.-bhq 批量Host聚合查询**\n\nFofaMap V1.1.3新版支持批量host聚合查询,用户可新建一个记事本文件,如host.txt,然后将准备查询的主机名或IP地址写入其中,运行以下命令即可进行批量查询。\n\n```plain\n$ python3 fofamap.py -bhq host.txt\n```\n\n**host.txt文件内容:**\n\n```plain\n114.114.114.114\n8.8.8.8\n123.123.123.123\n```\n\n<img width=\"599\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/197658410-835f2014-2358-43ba-9c47-4ea80fc06fb0.png\">\n\n\n**7.-s 输出扫描格式** \n\n使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理,输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描。\n\n```\n$ python3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s \n```\n\n<img width=\"1147\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149065853-aa8a6739-0cce-489a-a081-e3862c8f8eea.png\">\n\n\n\n**8.使用 -s -n 调用nuclei对查询到的资产进行漏洞扫描** \n\n```\npython3 fofamap.py -q 'title=\"Apache APISIX Dashboard\"' -s -n\n```\n\n![image](https://user-images.githubusercontent.com/67818638/149505569-a5356a33-f02a-4c44-ab52-87bab369380c.png)\n\n**FofaMap支持全功能扫描和自定义扫描两种模式**\n\n**全功能扫描:** 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC。\n\n![image](https://user-images.githubusercontent.com/67818638/149505603-cbc2dc73-fbf2-4e52-923c-dc3d424a13a5.png)\n\n**自定义扫描:** 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC。\n\n**FofaMap支持四个基本过滤器来自定义扫描方式。**\n\n1.标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等\n\n2.严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等\n\n3.作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等\n\n4.指定模板(-templates)根据用户指定的nuclei模板文件进行扫描。如:CVE-2017-6090.yaml、CVE-2021-43798.yaml、CVE-2022-0149.yaml等\n\n5.自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik\n\n**例1:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统。**\n\n![image](https://user-images.githubusercontent.com/67818638/149505639-a740076d-4e96-438b-b0e1-b54edb39547b.png)\n\n**例2:我们使用指定模板的templates过滤器,-templates的内容为CVE-2021-43798.yaml,那么fofamap只会调用用户指定路径下的特定扫描模板对网站进行检测。**\n\n<img width=\"955\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/195055536-c08d4989-329e-41d9-bab2-88aeeee2fb04.png\">\n\n\n**更多Nuceli的用法可以参考[这里](https://blog.csdn.net/asaotomo/article/details/122395708)**\n\n另外**FofaMap**会对扫描后的**结果**进行统计,并将结果保存在**scan_result.txt**中。\n\n![image](https://user-images.githubusercontent.com/67818638/149505663-c1988ffe-1bed-49f6-80c2-4910e614dee3.png)\n\n**scan_result.txt文件内容:**\n\n![image](https://user-images.githubusercontent.com/67818638/149505770-582d802d-e46b-4174-8161-fe5d9dbd9ece.png)\n\n在获得**scan_result.txt**后系统会提取**scan_result.txt**中的**IP地址和域名**,并调用**fofa api**去查询其**其域名和备案信息**,辅助用户了解资产归属情况。\n\n![image](https://user-images.githubusercontent.com/67818638/149505746-fc27bd19-d027-487e-a944-914bcb30cd58.png)\n\n**9.通过修改配置文件,控制输出内容** \n\n我们可以通过修改**fofa.ini**配置文件中的fields值来控制工具输出的顺序与字段。\n例如:我们将**fields = ip,port,title,country,city**改为**fields = protocol,ip,port,title,icp**。\n<img width=\"989\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067409-df7ca188-c06b-4ef3-89a3-95f8460a7aef.png\">\n\n接着执行以下命令\n\n```\n$ python3 fofamap.py -q 'app=\"discuz\"' \n```\n\n输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号。\n\n<img width=\"1126\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149067474-acfdfa54-d55a-4350-b531-607d41584b0e.png\">\n\n\n\n\n****************************\n\n**本工具仅提供给安全测试人员进行安全自查使用**\n**用户滥用造成的一切后果与作者无关**\n**使用者请务必遵守当地法律**\n**本程序不得用于商业用途,仅限学习交流**\n\n*********\n\n**FofaMap由Hx0战队开发维护**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/147641794-82f32969-4214-48da-9df2-764318225589.png\">\n\n**特别鸣谢~渊龙Sec团队**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/167256183-7c485b4c-1e5f-4bbe-a8de-3cf267ebd5ec.jpg\">\n\n**扫描关注战队公众号,获取最新动态**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/149507366-4ada14db-a972-4071-bbb6-197659f61ced.png\">\n\n**【知识星球】福利大放送**\n\n<img width=\"318\" alt=\"image\" src=\"https://user-images.githubusercontent.com/67818638/156556995-f3798cb1-027e-47e6-84ba-b7537d85b158.png\">\n\n---\n**更新日志 V1.1.3 国庆特别版**\n\n[+] 增加nuclie扫描指定单一扫描模板(templates)的功能。\n\n[+] 增加全局日志功能,用户可自行选择是否开启日志。\n\n[+] 增加Host聚合查询模式,可以根据当前的查询内容,生成聚合信息。\n\n[+] 增加批量Host聚合查询模式,可以批量查询Host聚合信息。\n\n[+] 新增每页查询数量和数据查询范围设置功能,用户可以根据自己的需求选择每页查询的数据数量以及数据查询的范围(1年内 or 全部数据)。\n\n[+] 优化Host聚合查询模式中端口详情的显示格式和内容。\n\n[+] 优化网站图标查询逻辑,增加网站图标识别成功率。\n\n[+] 修复使用-s命令时,输出内容包含非http协议的问题。\n\n[+] 增加附录:查询接口支持的字段。\n\n\n附录:\n\n![image](https://user-images.githubusercontent.com/67818638/195052175-5d94401c-9784-4f54-be81-45db00fdaad3.png)\n\n**更新日志 V1.1.2 春节特别版**\n\n[+] 增加网站图标查询功能,该功能仅支持高级会员及以上用户使用。\n\n[+] 增加查询数据自动去重功能。(特别感谢用户*jackjwang*提出的问题)\n\n[+] 增加备案查询结果自动去重功能。\n\n[+] 修复当查询字段(fields)只有一个时报错的bug。\n\n[+] 新增异常捕获,当fofa语法输入错误时程序不退出。\n\n**更新日志 V1.1.1 春节特别版**\n\n[+] 增加批量查询功能。\n\n[+] 增加fofa备用节点,提高可用性。\n\n**更新日志 V1.1.0 春节特别版**\n\n[+] 增加与nuclei联动,用户在查询到资产后可使用nuclei进行漏洞扫描。\n\n[+] 增加扫描结果分析统计。\n\n[+] 增加对nuclei扫描出的资产进行域名查询。\n\n**更新日志 V1.0.1**\n\n[+] 优化代码逻辑,修复已经BUG。\n\n[+] 优化输出样式,命令行输出结果将以表格形式展示。\n\n[+] 扫描模式输出结果将自动进行去重处理,并会自动将结果保存为txt文档。\n\n"}}, "config/settings.yaml": {"6156752ff1d6e551934718568bb92deba7a6eb88": {"t": 1785745196.4471362, "n": 1082, "h": "0cafd481d526d60c", "c": "#====== 用户信息 (User Info) ======\nuserinfo:\n # FOFA 账号邮箱\n email: \"your_email@example.com\"\n # FOFA API Key\n key: \"your_fofa_api_key\"\n # [New] DeepSeek 或其他模型的 API Key\n deepseek_api_key: \"sk-xxxxxxxxxxxxxxxxxxxxxxxx\"\n\n # --- [畅想1: 多模型支持新增字段] ---\n # 接口类型: deepseek / openai / ollama / lmstudio / 第三方兼容 OpenAI 的 Completion API接口\n api_type: \"deepseek\"\n # API 基础路径:\n # 官方 DeepSeek: https://api.deepseek.com/v1\n # 本地 Ollama: http://localhost:11434/v1\n # 本地 LM Studio: http://localhost:1234/v1\n # 官方 OpenAI: https://api.openai.com/v1\n # 第三方兼容 OpenAI 的 Completion API接口,如 : https://www.aiping.cn/api/v1\n base_url: \"https://api.deepseek.com/v1\"\n # 指定模型名称: deepseek-chat / qwen2.5:7b / llama3\n model: \"deepseek-chat\"\n\n# ====== 搜索设置 (Search Settings) ======\nsearch:\n fields: \"host,protocol,ip,port,title,domain,country\"\n size: 100\n full: false\n start_page: 1\n end_page: 2\n\n# ====== 性能与输出 (System) ======\nsystem:\n logger: true\n sheet_merge: true\n # [New] 异步并发数 (对应畅想中提到的并发控制)\n concurrency: 10\n # 默认导出格式: xlsx / csv\n export_format: xlsx\n # 默认输出目录\n output_dir: results\n"}, "567c8d50fc1d13a802f93a7ac31f3af06d846448": {"t": 1785748520.1477747, "n": 1082, "h": "0cafd481d526d60c", "c": "#====== 用户信息 (User Info) ======\nuserinfo:\n # FOFA 账号邮箱\n email: \"your_email@example.com\"\n # FOFA API Key\n key: \"your_fofa_api_key\"\n # [New] DeepSeek 或其他模型的 API Key\n deepseek_api_key: \"sk-xxxxxxxxxxxxxxxxxxxxxxxx\"\n\n # --- [畅想1: 多模型支持新增字段] ---\n # 接口类型: deepseek / openai / ollama / lmstudio / 第三方兼容 OpenAI 的 Completion API接口\n api_type: \"deepseek\"\n # API 基础路径:\n # 官方 DeepSeek: https://api.deepseek.com/v1\n # 本地 Ollama: http://localhost:11434/v1\n # 本地 LM Studio: http://localhost:1234/v1\n # 官方 OpenAI: https://api.openai.com/v1\n # 第三方兼容 OpenAI 的 Completion API接口,如 : https://www.aiping.cn/api/v1\n base_url: \"https://api.deepseek.com/v1\"\n # 指定模型名称: deepseek-chat / qwen2.5:7b / llama3\n model: \"deepseek-chat\"\n\n# ====== 搜索设置 (Search Settings) ======\nsearch:\n fields: \"host,protocol,ip,port,title,domain,country\"\n size: 100\n full: false\n start_page: 1\n end_page: 2\n\n# ====== 性能与输出 (System) ======\nsystem:\n logger: true\n sheet_merge: true\n # [New] 异步并发数 (对应畅想中提到的并发控制)\n concurrency: 10\n # 默认导出格式: xlsx / csv\n export_format: xlsx\n # 默认输出目录\n output_dir: results\n"}, "8f3f5f546cbfaa73ebee25802e58cf6314ee0bdf": {"t": 1785748521.2444062, "n": 1004, "h": "f39fc06fbd9b50de", "c": "#====== 用户信息 (User Info) ======\nuserinfo:\n # FOFA 账号邮箱\n email: \"your_email@example.com\"\n # FOFA API Key\n key: \"your_fofa_api_key\"\n # [New] DeepSeek 或其他模型的 API Key\n deepseek_api_key: \"sk-xxxxxxxxxxxxxxxxxxxxxxxx\"\n\n # --- [畅想1: 多模型支持新增字段] ---\n # 接口类型: deepseek / openai / ollama / lmstudio / 第三方兼容 OpenAI 的 Completion API接口\n api_type: \"deepseek\"\n # API 基础路径:\n # 官方 DeepSeek: https://api.deepseek.com/v1\n # 本地 Ollama: http://localhost:11434/v1\n # 本地 LM Studio: http://localhost:1234/v1\n # 官方 OpenAI: https://api.openai.com/v1\n # 第三方兼容 OpenAI 的 Completion API接口,如 : https://www.aiping.cn/api/v1\n base_url: \"https://api.deepseek.com/v1\"\n # 指定模型名称: deepseek-chat / qwen2.5:7b / llama3\n model: \"deepseek-chat\"\n\n# ====== 搜索设置 (Search Settings) ======\nsearch:\n fields: \"host,protocol,ip,port,title,domain,country\"\n size: 100\n full: false\n start_page: 1\n end_page: 2\n\n# ====== 性能与输出 (System) ======\nsystem:\n logger: true\n sheet_merge: true\n # [New] 异步并发数 (对应畅想中提到的并发控制)\n concurrency: 10\n"}}}}