| name | asset_hunt |
| description | 资产狩猎——Fofa 搜索 + 存活验证 + 去重导出,一个命令完成全流程 |
| version | 2.0.0 |
| author | PenTestClaw |
| tags | ["fofa","recon","asset","alive"] |
资产狩猎 (asset-hunt)
职责
给定 Fofa 查询语句,一步完成:搜索 → 存活验证 → 去重 → 导出目标列表。
一个脚本搞定,不需要分步操作。
使用方法
搜索 + 存活验证(最常用)
python3 scripts/asset_hunt.py --query 'app="Fortinet" && port="443"' \
--alive --size 500 \
--output ~/pentest/results/assets/fortinet_targets.json
仅搜索(不验证存活)
python3 scripts/asset_hunt.py --query 'app="Apache" && country="CN"' \
--size 1000 \
--output ~/pentest/results/assets/apache_cn.json
从 cve-intel 的输出中提取 Fofa 查询
python3 scripts/asset_hunt.py \
--query "$(python3 -c "import json; print(json.load(open('intel.json'))['suggested_fofa_query'])")" \
--alive --output targets.json
Fofa 查询语法速查
| 语法 | 说明 | 示例 |
|---|
app="X" | 按组件 | app="Apache" |
header="X" | 响应头 | header="X-Powered-By: PHP" |
body="X" | 响应体 | body="login" |
port="X" | 端口 | port="6379" |
protocol="X" | 协议 | protocol="redis" |
country="X" | 国家 | country="CN" |
&& / || | 与/或 | app="Nginx" && port="80" |
输出格式
{
"query": "app=\"Fortinet\"",
"total_found": 2847,
"alive_count": 1923,
"targets": [
{
"ip": "1.2.3.4",
"port": 443,
"host": "fw.example.com",
"protocol": "https",
"title": "Fortinet FortiGate",
"server": "...",
"alive": true
}
],
"timestamp": "2026-03-20T..."
}
AI 指令
- 从 cve-intel 输出中获取
suggested_fofa_query,直接传入 --query
- 如果 cve-intel 没有推导出 Fofa 查询,根据漏洞影响的产品自行构造
- 默认加
--alive 做存活验证
- 输出的 JSON 直接传给 mass-verify 的
--targets 参数
安全注意事项
- Fofa API 调用需要有效的 API Key
- 存活验证只发 HTTP HEAD 请求,不触碰业务逻辑
- 遵守 Fofa API 速率限制(≥ 1s 间隔)