# AutoHunter
**Repository Path**: jiuzero/AutoHunter
## Basic Information
- **Project Name**: AutoHunter
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-07-26
- **Last Updated**: 2026-07-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

### 多 Agent 协同 · 24×7 自动挖洞 · 人工只做复审决策
`锁定 · 侦察 · 出洞`
[](https://github.com/StanleyNull/AutoHunter/stargazers)
[](https://github.com/StanleyNull/AutoHunter/network/members)
[](https://github.com/StanleyNull/AutoHunter/issues)
[](https://github.com/StanleyNull/AutoHunter/commits)




**一台机器 = 24×7 不停歇的挖洞平台。你只当「人工复审员」,醒来几分钟完成裁决。**
[快速开始](#快速开始) · [功能亮点](#功能亮点) · [创建任务](#创建任务) · [配置](#必填与推荐配置) · [运维](#运维与长期运行) · [避坑](#注意事项与避坑)
Powered By **StanleyNull** · 作者 EduSRC 主页:
战绩可查
> [!WARNING]
> **仅限对已获明确书面授权的目标使用。** 本工具遵循 CC BY-NC 4.0,禁止任何商业用途,滥用后果自负。
> [!NOTE]
> 🌱 本项目为 **Demo 级别**,作者抛砖引玉,欢迎 Star / Issue / 二次开发。
---
## 目录
- [这是什么](#这是什么)
- [功能亮点](#功能亮点)
- [快速开始](#快速开始)
- [创建任务](#创建任务)
- [必填与推荐配置](#必填与推荐配置)
- [运维与长期运行](#运维与长期运行)
- [注意事项与避坑](#注意事项与避坑)
- [技术栈](#技术栈)
- [贡献与反馈](#贡献与反馈)
- [许可协议](#许可协议)
---
## 这是什么
**AutoHunter** 是一个多 Agent 协同的自动化漏洞挖掘系统。你把一台机器交给它当作 7×24 小时不停歇的挖洞平台,自己只做「人工复审员」——AI 初审去掉垃圾洞后,你几分钟内完成调级 / 通过 / 打回 / 编辑 / 标记提交。
```mermaid
flowchart LR
C["🛰️ Collector 搜集
FOFA / 手动录入
探活 · 评分 · 归属"] --> W["⚔️ Worker 挖洞 1:1
LLM 自主侦察
nmap · nuclei · sqlmap · httpx"]
W --> R{"🧪 Reviewer
极理性初审"}
R -->|够格| H["👤 人工复审"]
R -->|回炉深挖| W
R -.->|垃圾/误报| X["🗑️ 丢弃"]
H -->|通过| S["📤 待提交清单"]
H -->|通过| K["💥 通杀 Hunter
一打一片"]
K -.->|同款验证| W
```
- **Collector**:从 FOFA 持续产出目标,探活、预筛、评分、归属标注后入队。
- **Worker**:每个目标一个 Worker,LLM 自主侦察 + 调用真实工具链挖洞,出洞即提交。
- **Reviewer**:极理性 AI 初审,过滤半成品 / 误报,只把够格的洞送到人工面前。
- **控制台**:实时看板一眼看清每个 Worker 在干什么、目标优先级、事件流;结果区高效复审、编辑、标记提交。
---
## 功能亮点
| | |
|---|---|
| 🤝 **多 Agent 协同** | Collector / Worker / Reviewer / 通杀 / 扩大危害 全流水线自动跑 |
| 🌙 **24×7 无人值守** | 挂机过夜,重启自动续跑;你醒来只做复审决策 |
| 🔧 **真实工具链挖洞** | 容器内置 nmap · nuclei · sqlmap · httpx · whatweb,LLM 真实发包/执行,不是纸上谈兵 |
| 🧪 **极理性 AI 初审** | 只认「实际可利用 + 实锤危害」,过滤半成品,减少无效人工复审 |
| 🏫 **归属离线反查** | 按 IP/域名离线查所属高校,自动填报告归属单位 + EduSRC 提交 JSON |
| 💥 **通杀 Hunter** | 出洞后自动分析能否「一打一片」,实打多个同款站点验证 |
| 🧠 **情报沉淀复用** | 验证过的凭证/端点/指纹入全局情报库,后续 Worker 直接复用 |
| 🛡️ **内置 WAF + 鉴权** | 应用层 WAF 默认开启,多角色访问令牌(全权/只读/观摩) |
---
## 快速开始
> [!TIP]
> 全程基于 **Docker + Docker Compose v2**,任意装得上 Docker 的系统都能跑。生产环境推荐 Linux(2C4G 起步,磁盘 ≥ 20G)。
```bash
# 1. 装 Docker(官方一键脚本,已装可跳过)
curl -fsSL https://get.docker.com | sh && sudo systemctl enable --now docker
sudo usermod -aG docker $USER && newgrp docker # 免 sudo,重登生效
# 2. 拉代码 + 一键部署(交互式引导:填 LLM/FOFA Key → 自动生成令牌 → 构建启动)
git clone https://github.com/StanleyNull/AutoHunter.git autohunter && cd autohunter
bash scripts/install.sh
```
引导脚本会:检查 Docker → 引导填 **LLM API Key**(必填)、**FOFA Key**(推荐)→ 自动生成高强度访问令牌 → 构建镜像并启动 → 打印访问地址和令牌。
> 首次构建会编译前端 + 安装挖洞工具,约 **5–15 分钟**,请耐心等待。构建完浏览器访问 `http://<服务器IP>:18800/`,用打印出的令牌登录。
**开放端口**(默认 18800,云服务器还需在厂商安全组放行):
```bash
sudo ufw allow 18800/tcp # Ubuntu/Debian
sudo firewall-cmd --permanent --add-port=18800/tcp && sudo firewall-cmd --reload # CentOS/RHEL
```
🪟 Windows(Docker Desktop + WSL2)
1. 管理员 PowerShell 装 WSL2:`wsl --install`,装完重启。
2. 装 [Docker Desktop](https://www.docker.com/products/docker-desktop/),安装勾选 “Use WSL 2 based engine”,Settings → Resources → WSL Integration 打开集成。
3. 在 **WSL / Git Bash** 里:
```bash
git clone https://github.com/StanleyNull/AutoHunter.git autohunter && cd autohunter
bash scripts/install.sh
```
4. 访问 `http://localhost:18800/`。
> 💡 代码放在 **WSL 文件系统内**(如 `~/autohunter`)比放 `C:\` 挂载盘性能好很多。只用 PowerShell 的话走下方手动部署。
🍎 macOS(Docker Desktop)
1. 装 [Docker Desktop for Mac](https://www.docker.com/products/docker-desktop/)(Apple Silicon / Intel 均支持)并启动。
2. `git clone https://github.com/StanleyNull/AutoHunter.git autohunter && cd autohunter && bash scripts/install.sh`
3. 访问 `http://localhost:18800/`。
🔧 手动部署(不用 install.sh)
```bash
cp .env.example .env
# 编辑 .env:至少填 LLM_API_KEY;建议填 FOFA_KEY 和 AUTOHUNTER_API_TOKEN
vim .env
docker compose up -d --build
docker compose logs -f autohunter # 看启动日志
```
启动后访问 `http://<服务器IP>:18800/`,用 `.env` 里设置的 `AUTOHUNTER_API_TOKEN` 登录。
---
## 创建任务
登录控制台 → 「新建挖掘任务」,各字段含义:
| 字段 | 填什么 | 说明 |
|------|--------|------|
| **任务名称** | 随便起,方便区分 | 如 `edu批量挖掘-2026` |
| **任务模式** | `EduSRC` / `企业SRC` | 决定评分口径和审核标准,教育资产选 EduSRC |
| **漏洞类型** | 逗号分隔 | 默认 `sql_injection,rce,unauthorized_access,idor,file_upload,captcha_bypass,backdoor_compromised`,一般不用改 |
| **目标来源** | `FOFA 自动搜` / `手动清单` / `两者` / `单站协作` | 想让它自己找目标就选 FOFA |
| **搜集方式** | `自动判断` / `FOFA 语法` / `自然语言意图` | 见下方 |
| **FOFA 语法 / 搜集意图** | 查询语句或大白话 | 见下方示例 |
| **手动目标清单** | 每行一个 URL | 选「手动/两者/单站」时填 |
### 两种搜集方式
**① 会写 FOFA 语法** → 选 `FOFA 语法`,直接粘语句。例如挖教育网(CERNET)下带「管理」后台的资产:
```text
body="管理" && org="China Education and Research Network Center"
```
**② 不会写语法,只想说要找什么** → 选 `自然语言意图`,用大白话描述,搜集 Agent 自动翻译成 FOFA 语法并逐轮演化:
```text
找全国高校的统一身份认证登录系统
找某集团的 OA / CRM / ERP / API 网关 / 运维后台资产
```
> 留空「搜集方式」= **自动判断**(写得像语法就当语法,否则当意图),新手直接用这个。
### FOFA 语法速查
| 字段 | 含义 | 示例 |
|------|------|------|
| `title=` | 网页标题 | `title="后台管理"` |
| `body=` | 网页正文包含 | `body="管理"` |
| `domain=` | 域名 | `domain=".edu.cn"` |
| `host=` | 主机名 | `host="admin.example.com"` |
| `org=` | 所属机构(归属收窄利器) | `org="China Education and Research Network Center"` |
| `cert.subject.org=` | 证书机构 | `cert.subject.org="某某大学"` |
| `port=` / `country=` | 端口 / 国家 | `port="8080" && country="CN"` |
组合逻辑:`&&`(且)、`||`(或)、`!=`(非)。**语句越精确、归属越收窄,Worker 越不会打到范围外资产。**
> [!IMPORTANT]
> **务必收窄授权范围**:只搜你有权限测试的资产。`org` / `domain` / `cert` 是最有效的归属过滤手段。
展开「高级」还可**按任务单独覆盖**:模型 `base_url`/`api_key`/模型名、FOFA key、FOFA 最大页数、Worker 并发数。不填就继承「设置」页全局默认。
---
## 必填与推荐配置
| 变量 | 必填 | 说明 | 获取方式 |
|------|:---:|------|---------|
| `LLM_API_KEY` | ✅ **必填** | 大模型 API Key,平台核心 | [DeepSeek](https://platform.deepseek.com/) / OpenAI / 通义 / Kimi 等 |
| `LLM_BASE_URL` | 默认 DeepSeek | OpenAI 兼容接口地址(需含 `/v1`) | 默认 `https://api.deepseek.com/v1` |
| `LLM_MODEL` | 默认 deepseek-chat | 模型名 | 按模型商填 |
| `FOFA_KEY` | ⭐ 推荐 | 资产测绘,自动搜集目标 | [FOFA 个人中心](https://fofa.info/) |
| `FOFA_BASE_URL` | 可选 | 自定义 FOFA API 端点(私有/镜像/代理) | 默认 `https://fofa.info` |
| `AUTOHUNTER_API_TOKEN` | ⭐ 强烈建议 | 控制台全权限令牌,**不设则任何人可访问** | `install.sh` 自动生成,或自填随机串 |
| `AUTOHUNTER_HOST_PORT` | 默认 18800 | 对外访问端口 | 按需 |
> 其余参数(Worker 预算、并发、超时、WAF 等)都有合理默认,见 `.env.example` 注释按需微调。
> 也支持**不填 `.env`、直接在控制台「设置」页填 LLM/FOFA Key**——存进数据库,优先级高于 `.env`。
---
## 运维与长期运行
**常用命令**
```bash
docker compose logs -f autohunter # 实时日志
docker compose restart autohunter # 重启
docker compose down # 停止(数据保留在 volume)
docker compose up -d --build # 更新代码后重建
```
数据持久化在 Docker volume:`ah_data`(SQLite + 漏洞证据)、`ah_work`(Worker 临时工作区)。**升级/重启不丢数据。**
**开机自启**:`docker compose up -d` 的容器默认 `restart: unless-stopped`,崩溃/重启会自动拉起。若想托管给 systemd:
systemd unit 示例
```bash
sudo tee /etc/systemd/system/autohunter.service >/dev/null <
**反向代理 + HTTPS**(可选,生产推荐):前面挂 Nginx/Caddy 做域名 + TLS,把 `AUTOHUNTER_HOST_PORT` 只绑 `127.0.0.1` 不对公网直接暴露。Caddy 示例:
```caddyfile
hunt.example.com {
reverse_proxy 127.0.0.1:18800
}
```
---
## 注意事项与避坑
> [!CAUTION]
> **授权边界**:只测你有权限的目标,FOFA 语法要收窄归属(域名/证书/org),别让 Worker 打到范围外资产。
> **访问控制**:公网部署**务必设 `AUTOHUNTER_API_TOKEN`**,否则控制台和挖洞能力对全网裸奔。内置 WAF 默认开启,但令牌是第一道门。
- **成本控制**:Worker 靠 LLM 驱动,目标越多 token 越贵。用 `.env` 的 `WORKER_MAX_ROUNDS` / `*_BUDGET_CAP` 收紧预算,或降低并发。
- **资源**:每个并发 Worker 会跑真实工具子进程。小内存机器调小 `AUTOHUNTER_AGENT_THREAD_POOL_SIZE` 和任务并发数。
- **网络**:服务器需能访问 LLM API 和目标网络;走代理要给 Docker/容器配好出网。
- **重启恢复**:`AUTOHUNTER_RESTORE_ON_STARTUP=1` 时重启自动续跑之前 running 的任务;受限机器设 `0` 只起 Web/API。
---
## 技术栈
| 层 | 选型 |
|---|---|
| 后端 | Python 3.12 · FastAPI · SQLAlchemy(SQLite) · asyncio |
| 前端 | Vue 3 · Vite |
| 模型 | 任意 OpenAI 兼容接口(DeepSeek / OpenAI / 通义 / Kimi …) |
| 工具链(容器内置) | nmap · nuclei · sqlmap · httpx · whatweb · curl/wget/jq |
---
## 贡献与反馈
- 🐛 发现 bug / 有建议 → 提 [Issue](https://github.com/StanleyNull/AutoHunter/issues)
- ⭐ 觉得有用 → 点个 Star 支持一下
- 🔀 欢迎 Fork 二次开发(保留署名、非商业用途)
---
## 许可协议
本项目采用 **[CC BY-NC 4.0](./LICENSE)**(署名-非商业性使用):
- ✅ 可自由使用、修改、二次分发
- ✅ **必须保留原作者署名**:`Powered By StanleyNull`
- ❌ **禁止任何商业用途**
---
**Powered By StanleyNull**
*仅供授权安全测试与研究 · 请遵守当地法律法规*