mahfuz33R/ai-offensive-workstation

GitHub: mahfuz33R/ai-offensive-workstation

基于 Kali Linux 和 Docker 的持久化 AI 攻击安全工作站,集成 Hermes Agent、RAG 知识库和验证过的渗透测试工具,帮助安全操作员将扫描结果转化为经验证的发现。

Stars: 1 | Forks: 0

# 🛡️ AI 攻击工作站 [![Kali Linux](https://img.shields.io/badge/base-Kali_Linux-557C94?logo=kalilinux&logoColor=white)](https://www.kali.org/) [![Docker](https://img.shields.io/badge/runtime-Docker-2496ED?logo=docker&logoColor=white)](https://www.docker.com/) [![Hermes](https://img.shields.io/badge/agent-Hermes-7C3AED)](https://github.com/NousResearch/hermes-agent) [![安全](https://img.shields.io/badge/use-authorized_targets_only-DC2626)](#safety-first) ![系统概览](https://static.pigsec.cn/wp-content/uploads/repos/cas/b2/b22737cc181f3ae2a4e6c142d15b3a64295e12bd1f99e8c115107f3b6b550cc2.svg) ## 从这里开始 在开始之前,你**不需要**了解 Docker、AI agent、RAG 或 Kali。请选择最适合你的路径: | 我想要… | 阅读此内容 | |---|---| | 首次安装 | [新手指南](docs/BEGINNERS_GUIDE.md) | | 了解幕后原理 | [工作原理](docs/HOW_IT_WORKS.md) | | 了解每个服务、文件夹和连接 | [架构](docs/ARCHITECTURE.md) | | 深入了解 Hermes、API key、CyberStrike 和向量 RAG | [Hermes、API 和 RAG 深入指南](docs/HERMES_RAG_API.md) | | 查找正确的命令 | [命令手册](docs/COMMANDS.md) | | 将其迁移到另一台计算机 | [备份与迁移](docs/REUSE.md) | | 检查一切是否正常 | [实现与验证](docs/IMPLEMENTATION_AUDIT.md) | ## 这是什么神器? 普通的 Kali 安装会为你提供数百个安全程序。困难的部分在于知道该使用哪一个、哪些选项是安全的、将结果存储在哪里,以及如何将扫描器的原始输出转化为经过验证的发现。 本项目在 Kali 之上添加了一个组织层: - **Docker** 将工作站放置在一个可重复的容器中,这样它就不会在你的主机上分散安装各种工具。 - **Hermes Agent** 是主要的助手。它可以对任务进行推理、使用工具、搜索本地知识库、记住有用的上下文,并提供仪表板和 API。 - **CyberStrike** 是一个专业的安全 agent 服务,Hermes 可以通过九个本地 MCP 工具对其进行控制。 - **RAG** 让 Hermes 在回答之前搜索存储在工作站上的文档。这就像为 agent 提供了一个带索引的私人图书馆。 - **工作区(workspace)** 将项目、证据、配置和 agent 状态保存在可替换的容器之外。 ## 十分钟快速入门 ### 1. 安装前置条件 你需要一台 Linux 计算机或服务器,并具备以下条件: - Git - Docker Engine - Docker Compose v2(`docker compose`,而不是旧的 `docker-compose` 命令) - 大约 80–120 GB 的可用磁盘空间,用于存放镜像、缓存和资产 - 足够的内存供浏览器和 AI 工具使用;8 GB 是实际的最低要求 确认基本配置: ``` git --version docker --version docker compose version ``` ### 2. 下载项目 从 GitHub 克隆 `main` 分支,然后进入新的项目目录: ``` git clone --branch main https://github.com/mahfuz33R/ai-offensive-workstation.git cd ai-offensive-workstation ``` 本快速入门中的其余命令都是在该目录中运行的。如果你已经克隆了该项目,请改为更新它: ``` cd ai-offensive-workstation git pull --ff-only origin main ``` ### 3. 准备私有配置 在仓库目录中执行: ``` bash scripts/configure-host.sh chmod 600 .env ``` 这将创建: - `.env`,私有配置和凭证文件; - `workspace/`,持久化工作区域; - 一个随机的 `API_SERVER_KEY`,用于保护 Hermes HTTP API。 编辑 `.env` 并添加你打算使用的模型提供商的密钥,例如 OpenAI、Anthropic、Google、OpenRouter 或 Groq: ``` nano .env ``` 例如,OpenAI 用户只需更改这一行: ``` OPENAI_API_KEY=your-real-provider-key ``` 将未使用的提供商行留空。不要在 `=` 周围加空格,也不要在密钥周围加 引号。保存文件,然后再次保护它: ``` chmod 600 .env ``` RAG 搜索、API 健康检查、会话存储和 `no_reply=true` 的 CyberStrike 消息 无需提供商密钥即可工作。AI 生成的回复至少需要一个已配置的 模型提供商。 ### 4. 检查源码 ``` bash scripts/preflight.sh ``` 这不会构建或启动 Docker。它会检查配置安全性、shell/Python 语法、Compose 架构、资产清单结构和知识链接。 ### 5. 构建并验证镜像 ``` bash scripts/build-and-verify.sh ``` 如果无法安装或启动必需项,构建将有意失败。 当 Docker 可以重用已完成的层时,后续构建通常会更快。 如果之前的构建在成功完成许多层后停止,请重用其缓存: ``` bash scripts/build-and-verify.sh --cached ``` ### 6. 配置 Hermes 镜像构建完成后,运行 Hermes 的交互式设置容器: ``` sudo docker compose --profile setup run --rm setup ``` 按照屏幕上的问题选择你的模型提供商和模型。确切的 选项可能会因 Hermes 版本而异。请使用你将其密钥放入 `.env` 的同一个提供商。设置数据保存在 `workspace/container-opt/data/` 下,因此它可以在容器更换和 计算机重启后保留下来。 这三个密钥有不同的用途: | 密钥 | 允许的操作 | 使用位置 | |---|---|---| | 提供商密钥,例如 `OPENAI_API_KEY` | Hermes 调用 AI 模型 | `.env` 和 Hermes 设置 | | `API_SERVER_KEY` | API 客户端调用 Hermes 网关 | 端口 `8656` 上的 `Authorization: Bearer ...` | | `CYBERSTRIKE_SERVER_PASSWORD` | 在显式设置时保护内部 CyberStrike 服务 | 内部端口 `4096` | 它们不可互换。`scripts/configure-host.sh` 会 自动创建 `API_SERVER_KEY`;请勿将该值粘贴到提供商密钥 字段中。 如果设置中断,请再次运行相同的设置命令。如果稍后要更改提供商或 模型,请重新运行它。如果在服务已经运行后编辑了 `.env`, 请使用以下命令应用新值: ``` sudo docker compose up -d --no-build --force-recreate ``` 有关提供商、持久化、网关、 RAG 和身份验证的图文解释,请阅读 [Hermes、RAG 和 API 指南](docs/HERMES_RAG_API.md)。 ### 7. 启动并验证工作站 ``` sudo docker compose up -d --no-build sudo docker compose ps ``` 确认 Hermes、其渗透测试技能、CyberStrike 以及两个知识库: ``` sudo docker compose exec workstation hermes version sudo docker compose exec workstation env COLUMNS=240 hermes skills list sudo docker compose exec workstation hermes mcp test cyberstrike sudo docker compose exec workstation workstation-kb verify sudo docker compose exec workstation cyberstrike-kb verify ``` 在同一台计算机上打开仪表板: ``` http://127.0.0.1:9119 ``` 打开工作站 shell: ``` sudo docker compose exec workstation zsh ``` 停止它而不删除持久化数据: ``` sudo docker compose down ``` ## 正确重启 Hermes 从**宿主机仓库目录**重启完整的三服务栈: ``` sudo docker compose restart workstation dashboard cyberstrike-api sudo docker compose ps ``` 如果 `docker compose ps` 显示 `Restarting`,请执行下述安全恢复。这 将保留配置、密钥、会话、报告和 RAG 数据库;仅移除 网关一次性的 PID 和锁标记: ``` sudo docker compose logs --no-color --tail=200 workstation dashboard \ > /tmp/ai-offensive-workstation-restart.log sudo docker compose down sudo rm -f -- \ workspace/container-opt/data/gateway.pid \ workspace/container-opt/data/gateway.lock hermes_uid="$(sed -n 's/^HERMES_UID=//p' .env | tail -n1)" hermes_gid="$(sed -n 's/^HERMES_GID=//p' .env | tail -n1)" sudo chown -R "${hermes_uid}:${hermes_gid}" workspace/container-opt/data sudo chmod 750 workspace/container-opt/data sudo chmod 600 workspace/container-opt/data/.env sudo docker compose up -d --no-build --force-recreate sudo docker compose ps sudo docker compose logs --tail=80 workstation dashboard ``` 强化版的 entrypoint 也会在下一次前台网关启动时 自动清除这两个过期的标记。请参阅[完整故障排除手册](docs/COMMANDS.md#recover-a-hermes-gateway-restart-loop)。 ## 使用远程服务器 仪表板和 API 特意仅在服务器的环回接口上监听。在你的本地计算机上,创建一个 SSH 隧道: ``` ssh -N \ -L 9119:127.0.0.1:9119 \ -L 8656:127.0.0.1:8656 \ USER@SERVER_IP ``` 保持该终端打开。在你的本地计算机上: - 浏览 `http://127.0.0.1:9119` 查看仪表板; - 向 `http://127.0.0.1:8656/v1` 发送经过身份验证的 API 请求。 在浏览器中直接打开 `/v1/models` 通常会返回 `Invalid gateway API key`。这是正常的:浏览器地址栏不会发送 `Authorization: Bearer ...` header。请参阅[端口与身份验证](docs/HERMES_RAG_API.md#part-7-ports-tunnels-and-authentication)。 ## 你的第一次安全会话 在工作站 shell 中: ``` export ENGAGEMENT=my-owned-lab export OUTPUT_DIR="/workspace/reports/$ENGAGEMENT" mkdir -p "$OUTPUT_DIR"/{raw,normalized,evidence,final} workstation-kb search \ "beginner workflow for an authorized local web application" \ --limit 5 ``` 然后打开仪表板并告诉 Hermes: ``` I own the test application at http://example.test. I authorize only passive inspection and low-rate HTTP discovery. Do not exploit, brute-force, modify data, or contact third parties. Explain every command before running it and save results under /workspace/reports/my-owned-lab. ``` 好的 prompt 包含确切的目标、授权、允许的操作、禁止的操作、速率限制、证据位置和停止条件。 ## 你的文件存放在哪里 | 位置 | 含义 | 是否持久化? | |---|---|---:| | `workspace/projects/` | 源代码和交战项目 | ✅ | | `workspace/targets/` | 明确授权的目标列表 | ✅ | | `workspace/reports/` | 原始输出、证据和最终报告 | ✅ | | `workspace/notes/` | 操作员笔记 | ✅ | | `workspace/container-opt/data/` | Hermes 配置、记忆、RAG 数据库和 CyberStrike 状态 | ✅ | | `workspace/container-root/` | 容器 root 的主目录 | ✅ | | 容器内的 `/opt/security-tools` | 已安装的工具 | 随镜像重建 | | 容器内的 `/opt/security-assets` | 字典、模板和 payload | 随镜像重建 | 容器是可替换的。`workspace/` 目录才是你需要保护和备份的部分。 ## 安装了什么? 权威的契约是 [`scripts/manifests/tool-inventory.tsv`](scripts/manifests/tool-inventory.tsv)。它目前涵盖命令、路径、Linux capabilities 和实质性资产,包括: - Kali 的 `kali-linux-headless` 工具集; - Go、Python、Rust、Ruby、Node.js 和 npm; - Nmap、Nuclei、httpx、ffuf、SQLMap、WPScan 和许多专用实用程序; - Chromium、Firefox、Playwright 和 agent-browser; - SecLists、Nuclei 模板、GF patterns 和内置的 payload 仓库; - Hermes、CyberStrike 和两个本地 RAG 索引。 使用 `check-tools` 检查,而不是假设某个命令存在。 ## 安全第一 本工作站用于测试你拥有或获得明确书面授权的系统或数据。 切勿从公共 IP、URL、漏洞赏金计划名称或工具可以触及目标的事实中推断许可。从被动和低速率开始。不要执行拒绝服务攻击、持久化、破坏性修改、凭证攻击、无关数据提取、横向移动或第三方测试。 请在 [`SAFETY.md`](knowledge/skills/offensive-workstation-pentesting/references/SAFETY.md) 中阅读完整的操作策略。 ## 文档导航 | 文档 | 目的 | |---|---| | [新手指南](docs/BEGINNERS_GUIDE.md) | 基础原理介绍和日常工作流 | | [架构](docs/ARCHITECTURE.md) | 服务、文件、网络、信任边界和图表 | | [工作原理](docs/HOW_IT_WORKS.md) | 构建、启动和请求的生命周期 | | [Hermes、API 和 RAG](docs/HERMES_RAG_API.md) | 深度解释和自定义指南 | | [命令](docs/COMMANDS.md) | 可直接复制粘贴的操作员手册 | | [复用](docs/REUSE.md) | 加密备份和机器迁移 | | [导出的镜像](docs/EXPORTED_IMAGE.md) | 不含私有状态的公共/离线镜像 | | [实现审计](docs/IMPLEMENTATION_AUDIT.md) | 验证层和保证 | | [第三方声明](docs/THIRD_PARTY_NOTICES.md) | 上游软件和许可证 | ## 切记一条规则
标签:AI智能体, DLL 劫持, Docker容器, MITM代理, Web报告查看器, 可视化界面, 大语言模型, 插件系统, 攻击面发现, 日志审计, 特征检测, 请求拦截, 逆向工具