
OIHK-pentesting 是一个用于授权安全评估的自主多智能体引擎。根规划器将任务委派给侦察、发现、攻击(提权)、验证和报告智能体——而引擎本身无论由哪个模型驱动,都会强制执行范围、出口、证据和资源策略。发现漏洞需要真实的执行证据加上独立验证;一个令人信服的故事证明不了任何东西。
它针对自己的漏洞场景基准进行评分——确定性模拟求解器保持 24/24,得分 100/100——并且可以完全离线地针对任何 OpenAI 兼容的本地模型运行。
早期测试版,正在积极开发中。 行为可能随时更改,恕不另行通知;某些功能是部分的或有意省略的。在依赖它之前请先验证——参见状态矩阵。
大多数攻击性工具都信任模型的良好行为。OIHK 不是这样:安全边界存在于引擎中,无论模型愿意说什么,它都保持不变。
example.com 并不授权其子域名;声明的主机在整个运行过程中都被 DNS 固定。| 操作系统 | Windows 10/11 和 Linux(已在 Kali 上测试)。macOS 未测试。 |
| Python | 3.12+ 及 uv |
| Docker | 扫描沙箱化所需。Baron 的被动 OSINT 无需它即可工作。 |
| 内存 | 最低 8 GB,推荐 16 GB |
| GPU | OIHK 不要求。本地模型在 CPU 或 GPU 上运行——其自身要求是模型的要求。 |
| 模型 | 任何 OpenAI 兼容端点(默认 LM Studio),或通过 /apimodel//models 使用云密钥:Claude、ChatGPT、Gemini、Grok、DeepSeek、NVIDIA NIM |
git clone https://github.com/Broskigx/Oihk-pentesting.git
cd Oihk-pentesting
uv sync
uv run oihk --help
uv run oihk run -t https://example.test --mode passive --scan-mode standard
在 Kali Linux 上,请先确保 Docker 正在运行(sudo systemctl start docker)。
或者打开 Baron,交互式副驾驶——你说话,它驱动受治理的引擎(默认被动,除非你授权深度评估):
uv run oihk start
Baron 运行真实评估,从 164 个工具的 RAG 语料库中以精确的工具配方作答,通过 OSINT(page_osint、username_osint、domain_osint、breach_osint、phone_osint)进行转向,并在 Redis 中记住每个会话。它永远不会获得原始 shell——只有受治理的引擎——而且一切都是菜单驱动的:/models、/apimodel、/adaptador 和 /instancia 打开交互式 Textual 选择器。/power <0-100> 设置并行预算——即同时可以存在多少个额外的沙箱容器——这样 Docker 和操作员的机器就不会被自动拖垮;0 保持单个按需实例。
TUI 即时绘制(繁重的模型栈在第一个“pensando…”行之后加载),并且完全由键盘驱动:鼠标报告被有意关闭——某些终端会将原始鼠标字节泄漏到输入中——因此 Ctrl+G 停止生成,PageUp/PageDown 翻页历史,Ctrl+L 清除日志,Ctrl+/ 打开命令菜单。
没有需要记住的攻击快捷方式:只需输入一个目标——一个 Web 应用、一台主机、一个 IP——Baron 就会检测它、规划评估,并将攻击步骤委派给下面的子智能体集群。他还会从自己的失败中自我改进:每一次失误都会成为 AdapterOne 中一条加权的、衰减的教训(账本位于 oihk_runs/adapterone/),自动注入到他未来的提示中,并可通过 adapterone_review / adapterone_confirm 在运行中查阅和强化规则。
当 oihk start 运行时,你可以按自己的条件将真实 shell 交给 Baron。在项目的任何终端中,uv run oihk bashai 会找到 Baron 的 LAN 信标,重新验证握手密钥,显示明确的完全控制警告,并且仅在你接受时连接(队列编号 bashai-1、bashai-2……;没有持久身份,只有位置)。Baron 将命令分派到那些终端——并行地——每条命令和结果都会进入一个持久审计日志(oihk_runs/bashai/audit.jsonl),该日志为证据门提供输入。使用 OIHK_CONFIRM_COMMANDS=1(或 TUI 中的 /confirmar on),每条命令都会在该终端中等待你的明确确认后再执行;默认是直接执行,并在审计日志中记录一条强化警告。客户端持续发送心跳,如果 Baron 停止响应则立即关闭。
Baron 运行的每条命令都在 Kali 沙箱容器内执行,实时终端块会显示实际输出——包括主机侧只读的 run_terminal 探测(docker ps、netstat、ipconfig、ss、arp、git status、redis-cli……),其 stdout 会逐行流入聊天。
/report(或 Baron 的 generate_report 工具)将聊天中记录的发现转化为自包含的 pentest_report.html:执行结论、严重性标签、每个发现的 PoC,以及来自自动修复引擎的可部署修复(WAF 规则、IaC、k8s 清单)。没有 JavaScript,每个值都经过 HTML 转义,PoC 经过清理以防止样式块突破——可以安全地附加到电子邮件中。每次完整扫描还会在 Markdown 报告旁边自动写入一份。/watch 对比最近两次扫描:什么是新增的,自基线以来什么是已解决的,以及什么是持续存在的。发现通过内容身份(CWE + 端点 + 标题)在多次运行之间匹配,而不是通过 VULN-### id,因此重新编号永远不会产生幻影差异。/probe <dir>(或 probe_ransomware_readiness 工具)将诱饵金丝雀文件植入你选择的目录,以限速的访问模式触碰它们,并测量你的文件访问审计是否会注意到大规模加密的筹备。仅用于欺骗和测量——它永远不会加密、重命名或删除其自身金丝雀目录之外的任何内容。检测到的遥测缺口会提交一个标准发现,其修复包附带 auditd 规则、Sysmon 配置和 Ansible 部署。分布式编排的第一部分:具有自己 Ed25519 级身份(oihk.mesh.MeshNodeIdentity、HMAC 签名信封)的节点、防重放的节点注册表、签名的发现同步,以及具有完成/待处理生命周期的任务委派——一个操作员控制台,多个执行器。传输接缝目前是纯字节(测试中为内存);QUIC(aioquic)是下一部分的预期线路。
Baron 不必自己运行一切。他可以并行委派最多七个真实子智能体——每个都是自己的 LLM 循环,在受治理的 Kali 沙箱中执行命令,根据上一条命令的真实输出决定下一步:
delegate_sandbox_task 配合 tasks: [...](1–7)启动一波;每个单元拥有一个不重叠、自包含的任务。background: true 时,该波启动而不阻塞 Baron 的回合——他继续规划,并在准备好时检查 fleet_status,收集每个已完成波的逐单元报告。[Ari] ▶ nmap -sV host-a、[Bruma] ↳ 22/tcp open、[Ciro] ✔ done。详情见架构。
为了在你自己的机器上针对 HackTheBox 靶机进行练习,oihk lab 注册本地目标,为每个漏洞类别构建单一用途的漏洞利用脚本,并保留本地尝试账本——一切都留在操作员的机器上,并拒绝未注册的目标。它是一个独立的开发 CLI,有意置于 Baron 的工具表面之外。
默认指向 LM Studio 的 http://localhost:1234/v1:
export OIHK_LLM="openai/mistral-nemo"
export OIHK_API_BASE="http://localhost:1234/v1"
export OIHK_API_KEY="lm-studio"
/apimodel六个预设中的任何一个都可以用一条命令连接;每个都记住自己的密钥:
/apimodel claude sk-ant-… # Anthropic
/apimodel chatgpt sk-… # OpenAI
/apimodel gemini AIza… # Google AI Studio
/apimodel grok xai-… # xAI
/apimodel deepseek sk-… # DeepSeek
/apimodel nvidia nvapi-… [model] # NVIDIA NIM (default: deepseek-ai/deepseek-v4.1-flash)
/apimodel(无参数)打开平台选择器;/apimodel <plataforma> 使用保存的密钥重新连接;/apimodel off 断开连接。NVIDIA NIM 预设默认为 deepseek-ai/deepseek-v4.1-flash;传入 [model] 以原样使用另一个 NIM 目录 id(LiteLLM 从端点推断 nvidia_nim 提供商,因此该 id 必须不加包装地到达它)。
/models 打开完整的连接菜单:平台预设、任何自定义 OpenAI 兼容端点、本地适配器、实时状态视图和断开连接——密钥、端点、模型、额外标头、超时和重试都可以在一个模态表单中编辑。子命令保留用于脚本编写:/models base + /models key + /models use。额外标头通过 OIHK_HEADERS(一个 JSON 对象字符串)持久化,用于需要它们的提供商。
两个云前缀还在环境级别移除了所有端点设置:deepseek/… 和 nvidia_build/… 路由到其提供商 API——设置密钥,别无其他。按角色覆盖(OIHK_ROOT_LLM、OIHK_RECON_LLM……)将逻辑角色路由到不同的模型。
OIHK 最适合与一个不会过度拒绝的模型配合使用:经过严格安全调优的助手会拒绝合法的、授权的攻击步骤,并在评估中途使智能体停滞。这不会降低 OIHK 的安全性——边界从来不是模型的拒绝;而是引擎的精确范围、故障关闭出口、受治理的工具表面和证据门,无论模型说什么,这些都保持不变。
根规划器拥有一个带修订的 ScanPlan,并将步骤委派给子智能体。每次受治理的工具调用在执行前都要通过四个策略权威——模式/角色、精确范围、资源调控器、沙箱出口——其输出成为运行账本中不可变的证据。只有验证智能体才能将该证据转化为发现;在关键工作未完成时,根无法完成运行。运行从工件恢复(--resume <run-id>)并落在 oihk_runs/<run-id>/ 下(计划、证据、验证、发现、SARIF、报告)。