0x1b3nc/ophackbot
GitHub: 0x1b3nc/ophackbot
一款授权安全测试 AI 代理,通过自然语言驱动侦察与漏洞发现工具链,内置严格的测试范围管控与逐操作审批机制。
Stars: 3 | Forks: 0
# Hackbot Kit
我授权的赏金 / 实验室助手。你输入 prompt,我来思考、使用工具、编辑文件并回答。
首先界定范围。证据已脱敏。执行实际流量和每次文件更改都需要你的批准。
规则就这么简单。
默认大脑始终为**离线模式**(自带规则 + 工具,无需 key,无需模型)。
模型需主动启用。我绝不会仅仅因为你手头有 key 就自动切换。
需要时你可以通过 `/provider` 进行选择。
## 这东西实际上是什么
- **离线模式**根据自然语言规划工具调用。对于许多测试工作来说已经足够好了。
- **OpenAI / Claude / 等** 作为可选大脑运行在相同的轨道上(界定 SCOPE + 审批)。
- 如果你已经为这些套餐付费,可以使用 **Cursor** 或 **Codex**。
- 测试循环 (`/hunt`) 可以映射攻击面、串联探针、生成 FINDINGS。
- PATH 工具 (httpx, katana, nuclei, ffuf),Playwright,Burp,HexStrike(前提是你愿意配置它们)。
你真实的测试项目文件位于 `targets//` 目录下。切勿提交密钥等敏感信息。默认附带了演示目标,让你即使没有正式项目也能找点东西练手。
## 安装说明
Windows:
```
cd C:\hackbot\hackbot-kit
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .
playwright install chromium
```
Linux:
```
cd ~/whatever/ophackbot
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
playwright install chromium
# 缺少 libs? playwright install-deps chromium
```
更多说明:[docs/INSTALL_WINDOWS.md](docs/INSTALL_WINDOWS.md) ·
[docs/INSTALL_LINUX.md](docs/INSTALL_LINUX.md)。
然后:
```
python -m hackbot demo # fake target + dry-run smoke
python -m hackbot # REPL, stays open
```
## 大脑模型
我启动时始终处于**离线模式**。光有 key 毫无作用。你必须输入 `/provider …`
(或者仅为该 shell 设置 `HACKBOT_PROVIDER`)。
| 大脑 | 操作方式 |
| --- | --- |
| offline | 直接打开即可。无需 key。 |
| openai / anthropic / deepseek / glm / openrouter | 设置好 key,然后执行 `/provider ` |
| ollama / lmstudio | 将 `HACKBOT_BASE_URL` 指向本地,执行 `/provider ollama` |
| cursor | `pip install 'hackbot-kit[cursor]'`,设置 `CURSOR_API_KEY`,执行 `/provider cursor` |
| codex | 安装 Codex CLI,运行 `codex login`(需 ChatGPT 套餐),执行 `/provider codex` |
Windows keys(执行 `setx` 后需重新打开终端):
```
setx OPENAI_API_KEY "sk-..."
setx CURSOR_API_KEY "cursor_..." # Cursor Dashboard → Integrations / API Keys
# Codex: 没有 API key。只需 `codex login`。
```
Linux:
```
export OPENAI_API_KEY="sk-..."
export CURSOR_API_KEY="cursor_..."
# 如果你像我一样懒,就把它放进 ~/.zshrc
```
可选操作:
```
export HACKBOT_MODEL="o4-mini" # cursor: composer-2.5 / grok-4.5 / …
export HACKBOT_EFFORT="auto" # auto | minimal | low | medium | high | xhigh
```
`auto` = 普通对话使用经济模式,测试 prompt 使用中档模式。在 REPL 中可使用:`/providers`, `/models`,
`/model`, `/effort`, `/status`, `/tools`。
### 关于 Cursor / Codex / 离线模式的通俗解释
- **离线模式**:零成本。足以应对大量日常工作。
- **Cursor**:将我的工具作为 CustomTools 驱动(当你提到 hunt/vuln 相关内容时,通常会加载包:core+recon+inject+report)。
PATH 中存在 httpx 并不意味着 Cursor 就会去调用它。请检查
`/tools`。漫长的 `y/n` 等待可能会导致 Cursor 桥接崩溃;请加快回复速度,或者执行 `/clear`
后重试。
- **Codex**:通过 `codex exec` 使用你的 ChatGPT 套餐。文件修改依然会经过我的
审批面板(可通过 `/codex-write` 切换该设置)。
## 新手五分钟入门
```
python -m hackbot
/tools # what's actually installed / up
/target demo
check if example.com is in scope
dry-run httpx on example.com for the demo target
```
直接对话即可。斜杠命令只是可选的快捷方式。
```
credentials are in Downloads/tokens.yaml
hunt whatever you can on example.com approve
read the image Desktop/scope.png
```
### 关于那个黄色的 "Pass --approve to execute" 提示框
**什么都不用输入。** 那只是一个干跑提示。此时不会有任何流量发出。
当我确实需要你授权时:
```
permission needed
Allow this action? y/n (n):
```
然后输入 `y` 或 `n`(或者 `approve` / `deny`)。这才是真正的拦截关卡。
`/hunt … --approve`(或者用自然语言说 "approve")会为该次
测试循环开启实时流量许可。OUT_OF_SCOPE 的内容依然会被拦截。`/force` 只能放宽“未确认 / 缺少主动测试说明”的限制。
它绝不会解锁 OOS(范围外)内容,也绝不会跳过审批。
## 测试
```
/target myprogram
/session set A --bearer
/session set B --bearer
/hunt explore this host --approve
```
或者自然语言:
```
credentials are in Downloads/tokens.yaml
hunt whatever you can on example.com approve
```
循环流程:映射攻击面 → 规划任务 → 运行专家工具 → 验证 → 生成 FINDINGS。
状态记录保存在 `targets//hunt/` 下。如果因为 SSO 被暂停了?捕获 session,然后执行:
```
resume hunt
```
SSO/IdP/MFA:我**绝对不会**输入 IdP 密码或绕过 MFA。请使用有头模式的
`browser_capture_session`(你在浏览器中手动完成登录)。然后再恢复运行。
还没有测试账号?未授权的侦察依然可用:执行 `run_tool` httpx/katana/nuclei,
`analyze_js`,cors/redirect 探测,wayback 等。当你需要获取实时结果时点击批准即可。
实用的斜杠快捷指令:
```
/target | clear
/force on|off
/hunt [--approve] [--budget N]
/hunt status | stop
/session set A --bearer
/status
/tools
/config
/stream on|off
/verbose on|off
/clear /help /exit
```
工具包:`HACKBOT_TOOL_PACK=auto|all|core,recon,inject,browser,mobile,report`。
## “我该怎么请求做 X?”
| 你的大致描述 | 对应工具 |
| --- | --- |
| 解析这个文件中的 HAR / Burp XML | `import_har` / `import_burp_xml` |
| 分析这个 JS bundle | `analyze_js` |
| 子域名 / wayback 历史 | `crt_subdomains` / `wayback_urls` |
| 运行 httpx / katana / nuclei / ffuf | `run_tool`(先进行 dry-run) |
| 使用 A/B 账号测试 IDOR | `idor_probe` |
| 查找登录口 / SSO | `detect_login`, `session_smoke`, `browser_capture_session` |
| 映射 / 提取页面 | `map_surface`, `extract_page` |
| 起草报告 | `write_report_draft` |
| 这台机器上有什么? | `/tools` 或 `capabilities` |
更详细的表格及环境变量配置(OOB, Burp, Interactsh):[docs/CLI.md](docs/CLI.md)。
## 安全机制(简述)
- 每个项目都需要配置 `targets//SCOPE.md`
- 明确标记为 OUT_OF_SCOPE 的内容会被严格拦截(即使使用 `/force` / `/yolo`)
- 在 OOS 列表中,`in_scope` 里的精确主机名优先级高于 `*.example.com` 这样的通配符
- 软性拦截门槛需要同时满足 `/force` **并且** 获得批准(除非已开启 `/yolo on`)
- 重定向会被重新检查(包括 HTTP 和 Playwright)
- SCOPE 中定义的 `prohibited`(禁止项)是真实生效的(例如:大规模自动化扫描)
- 敏感信息会被脱敏;如果需要更严格的脱敏,可以设置 `HACKBOT_STRICT_REDACT=1`
- 所有的批准操作都会记录到本地的 `audit.log` 中(已被 gitignore 忽略)
在将本工具用于正式项目之前,请务必阅读 [docs/SAFETY_MODEL.md](docs/SAFETY_MODEL.md)。
如果你在意 RPS / 超时设置(可通过 `/config` 查看),请复制 `configs/hackbot.example.yaml` → `configs/hackbot.yaml`。
## YOLO 模式 + 实验室环境(由 AI 接管机器)
希望大脑在无需频繁 `y/n` 确认的情况下持续进行测试,并且自动修复 PATH / 启动 Burp 吗?
```
mkdir -p .hackbot
echo 'your-sudo-password' > .hackbot/sudo_pass
chmod 600 .hackbot/sudo_pass
# 或者:export HACKBOT_SUDO_PASS='...'
```
在 REPL 中:
```
/yolo on
/tools
# AI 可以调用:stack_prepare, burp_ensure, lab_exec
inicie o hunting
```
`/yolo on` 会跳过批准提示并默认开启 force 模式。OOS 限制依然有效。密码
绝对不会提交到 git(`.hackbot/` 已被忽略)。在步骤模式下,每次
测试操作后仍会暂停(设置 `HACKBOT_STEP_MODE=0` 可恢复为旧的完整预算循环模式)。
## HexStrike 及相关组件
`/tools` 会显示 PATH 上可用的工具,以及 HexStrike/Burp 是否在 localhost 上有响应。
HexStrike 是可选的,并且**不**包含在 kit 的 venv 中:
```
# Docker 是明智的选择(参见 integrations/hexstrike/PROVENANCE.md)
cd integrations/hexstrike && docker compose up -d --build
# 或者使用它自己的 venv,然后:
python -m hackbot run targets/demo --tool hexstrike --approve
curl -sS http://127.0.0.1:8888/health
```
## 目录结构
```
hackbot/ agent, tools, hunt, providers
targets/ per-program work (demo ships; yours stay local)
bounty_knowledge/ study notes
integrations/ HexStrike (vendored, loopback only)
docs/ safety, install, CLI reference
configs/ example yaml
```
## Lockfile / 脚本化
版本锁定信息位于 `requirements.lock` 中。如果你想编写
脚本而不是通过对话交互,可以查阅 [docs/CLI.md](docs/CLI.md) 了解底层命令(如 `scope-check`,
`run --tool httpx`,playbooks 等)。
标签:AI安全智能体, DLL 劫持, Python, 主机安全, 大语言模型, 安全测试, 密码管理, 攻击性安全, 无后门, 特征检测, 自动化渗透测试, 请求拦截, 运行时操纵, 逆向工具