0xCyberBerserker/ghosttrace-lab

GitHub: 0xCyberBerserker/ghosttrace-lab

GhostTrace 是一个整合了静态分析、本地大模型推理、Windows 沙箱及调试器桥接的恶意软件分析与逆向工程实验室平台。

Stars: 1 | Forks: 0

👻 GhostTrace

Reverse engineering with operator-grade workflows, debugger context, sandbox trails, and less tab graveyard energy.

Reverse engineering con flujos de operador de verdad, contexto de depuración, rastro de sandbox y menos vibra de cementerio de pestañas.

site ollama model

backend sandbox debugger

Made with 🖤 in Barcelona City Flag of Spain

- [English](#english) - [Español](#español) ## 英语 GhostTrace 将赛博朋克风格的操作员 UI、用于静态分析的 `Ghidraaas`、用于本地推理的 `Ollama`、缓存的分拣工件,以及一个支持 SSH 和调试器桥接的可复现 Windows 沙箱实验室整合在一起。 专注于安全、文档化的安全研究工作流的恶意软件分析和逆向工程实验室。 ### 核心亮点 - 由 `Ghidraaas` 驱动的静态分析优先工作流 - 通过 `Ollama` 和 `Godmoded/llama3-lexi-uncensored` 进行本地 LLM 集成 - 缓存的 imports、strings、functions 和反编译结果 - 为每个分析任务自动生成分拣报告 - 在 Web UI 中进行持久的任务管理 - 包含 `noVNC`、`RDP` 和 `SSH` 的 Windows 沙箱配置 - 用于支持调试器工作流的 `x64dbg` 桥接 ### 责任声明 GhostTrace 专为合法的逆向工程、恶意软件分析、DFIR、研究和防御工程而构建。 与任何严肃的二进制分析 stack 一样,它也可能被滥用。该决定取决于操作员,而非本项目。如果您在没有适当授权的情况下将 GhostTrace 指向目标、软件或环境,您将承担由此产生的法律、道德和运营后果。请明智使用,合法使用。保持克制,做出更好的判断。 我们始终欢迎提出改进想法,并将认真对待深思熟虑的批评意见,以不断完善本项目。 ### 边界 本仓库仅用于授权研究、防御性教育和受控实验室工作。 它不提供用于操作的恶意软件、持久化、规避、凭据窃取或未经授权的访问工具。 ### 架构 ``` flowchart LR classDef svc fill:#0b1220,stroke:#46f3ff,stroke-width:1.5px,color:#e9fbff,rx:8,ry:8 classDef infra fill:#050810,stroke:#6b7280,stroke-dasharray:3 3,color:#9ca3af,rx:12,ry:12 classDef sandbox fill:#041208,stroke:#22c55e,stroke-width:1.5px,color:#bbf7d0,rx:10,ry:10 classDef operator fill:#111827,stroke:#f97316,stroke-width:1.5px,color:#fed7aa,rx:10,ry:10 subgraph Operator["🧑‍💻 Operator Workspace"] direction TB Browser["Web UI\n(Flask + Tailwind)"]:::operator end subgraph Backend["Core Services"] direction TB WebUI["webui\nGunicorn app.py"]:::svc Ghidraaas["Ghidraaas\nREST backend"]:::svc Ollama["Ollama\nLLM runtime"]:::svc Rabbit["RabbitMQ\nqueues"]:::svc SandboxRunner["sandbox_runner\nHTTP + worker"]:::svc end subgraph Storage["Analysis State"] direction TB VolJobs["JobStore (SQLite)\n/ ghosttrace.db"]:::infra VolUploads["Uploads volume\n/ uploads/"]:::infra VolEvidence["Dynamic evidence\n/ dynamic_evidence/"]:::infra VolTriage["Triage reports\n/ triage_reports/"]:::infra end subgraph WindowsLab["Windows Sandbox Lab"] direction TB WinVM["dockurr/windows\n+ OEM tooling"]:::sandbox X64dbg["x64dbg + MCP\nbridge plugin"]:::sandbox end Browser -->|"HTTP /"| WebUI WebUI -->|"HTTP /ghidra/api"| Ghidraaas WebUI -->|"OpenAI compat\nAPI_BASE"| Ollama WebUI <-.->|"JSON jobs + evidence"| VolJobs WebUI <-.->|"Upload stream"| VolUploads WebUI <-.->|"JSON artifacts"| VolEvidence WebUI <-.->|"JSON triage"| VolTriage WebUI -->|"HTTP /sandbox_*"| SandboxRunner SandboxRunner -->|"AMQP\ntriage & sandbox queues"| Rabbit SandboxRunner <-.->|"shared samples\n/ bridge state"| VolUploads WinVM <-.->|"Shared folder\n/Shared"| VolUploads WinVM <-.->|"Bridge JSON\nvia runner"| SandboxRunner WinVM -->|"Debugger\nstate + findings"| X64dbg ``` 核心组件: - `webui/` Flask 应用、任务管理、AI 操作员、聊天、分拣视图和调试器视图。 - `Ghidraaas/` 为本 stack 改编的 Cisco Talos Ghidra-as-a-Service 后端。 - `sandbox/` Windows 沙箱配置、主机端 SSH 辅助工具、桥接工具和 OEM 自动化。 - `docs/` GitHub Pages 的公开登录页面。 发布准备说明位于 [`docs/publication-checklist.md`](./docs/publication-checklist.md)。 ### 快速开始 1. 构建 `Ghidraaas`: ``` cd Ghidraaas docker build -t ghidraaas . ``` 2. 从仓库根目录启动 stack: ``` docker compose up --build ``` 容器化的 `webui` 在 Compose stack 中的 `gunicorn` 之后运行。Flask 开发服务器仍然仅用于本地直接执行。 Web UI 可通过 HTTP Basic auth 提供可选的操作员保护: ``` OPERATOR_USERNAME=operator OPERATOR_PASSWORD=change-me ``` 如果两个变量都已设置,GhostTrace 会要求面向用户的 Web UI 和 API 路由提供操作员凭据,而内部的沙箱到 Web 的回调仍使用共享的内部 token 路径。 GhostTrace 现在还支持 Compose stack 中由 RabbitMQ 支持的后台 worker。默认设置会启动 `rabbitmq`、一个专用于分拣的 `webui_worker`,以及一个用于沙箱运行队列处理的 `sandbox_runner_worker`。 `webui` 和 `sandbox_runner` 现在都暴露了一个对可观测性友好的 `/health` endpoint,其中包含请求 ID 和就绪状态详情。响应还包括 `X-Request-ID` header,以便可以在各服务间关联日志。 Web UI 还暴露了 `/metrics/summary` 用于获取 JSON 操作员快照,以及 `/metrics` 用于获取 Prometheus 风格的文本指标。 主要的 `sandbox_runner` 容器现在也在 `gunicorn` 之后运行。桥接轮询线程仅在面向 HTTP 的 runner 进程中启用,而不在单独的队列 worker 中启用,因此 stack 避免了重复的桥接消费者。 前端资源不再在运行时依赖 CDN 来获取 Tailwind、jQuery、Marked 或 Google Fonts。生成和内置的前端资源位于 `webui/static/css/` 和 `webui/static/vendor/` 下。 如果您更改了实用程序类或刷新了前端 vendor 资源,请使用以下命令重新生成它们: ``` npm install npm run build:frontend ``` 对于主 shell 的新浏览器冒烟测试,请安装一次 Playwright Chromium,然后运行: ``` npx playwright install chromium npm run test:e2e:smoke npm run test:e2e:release ``` 冒烟测试脚本默认在 `http://127.0.0.1:5000/` 查找应用,并将屏幕截图写入 `output/playwright/` 下。 它还会将 JSON 报告写入 `output/playwright/ghosttrace-smoke-report.json`,其中包含步骤耗时、打开的 job id 和可见的 UI 快照,如果检测到可操作的浏览器 `pageerror` 事件或控制台错误,测试将判定失败。 发布检查会读取该报告,如果总运行时间、关键环节耗时或最终可见健康状态的漂移超出了可配置的阈值,则检查失败。 基准的 GitHub Actions CI 工作流现在涵盖了前端资产生成、Python 编译检查,以及 Web UI 加上沙箱 runner 的测试套件。浏览器冒烟测试目前暂时单独保留,因为它仍然需要一个带有至少一个预置分析任务的运行中的 stack。 3. 打开应用: ``` http://localhost:5000 ``` ### 环境要求 - Docker Desktop - 足够的磁盘空间用于存放 Ollama 模型 该 stack 现在会启动自己的 `ollama` 容器并自动拉取: ``` Godmoded/llama3-lexi-uncensored ``` `ollama` 被配置为请求所有可用的 Docker GPU 用于推理。 ### 共享 AI 配置 GhostTrace 将其共享的 AI 运行时设置保存在 [`ai-config.json`](./ai-config.json) 中。 当前默认值: - 提供商:`ollama` - API base:`http://ollama:11434/v1` - 模型:`Godmoded/llama3-lexi-uncensored` - 本地状态数据库:`/app/data/ghosttrace.db` 该仓库已经过调整,因此在两侧使用的是相同的 Ollama 模型: - `webui` 使用 `MODEL_NAME=Godmoded/llama3-lexi-uncensored` - `windows_sandbox` 使用 `OLLAMA_MODEL=Godmoded/llama3-lexi-uncensored` - `docker-compose` 在内部将 Ollama 连接为 `http://ollama:11434` ### 分析工作流 ``` sequenceDiagram autonumber actor Op as Operator participant UI as Web UI participant G as Ghidraaas participant LLM as Ollama participant Q as RabbitMQ participant SR as Sandbox Runner participant WS as Windows Sandbox participant DB as JobStore / Evidence Op->>UI: Upload sample.exe UI->>G: POST /analyze_sample (binary stream) G-->>UI: 200 "Analysis completed" UI->>DB: Save job metadata + uploads UI-->>Op: job_id + status: DONE Op->>UI: Ask triage questions (Chat) UI->>LLM: ChatCompletion + tools (functions/imports/strings) UI->>G: get_functions_list / get_imports_list / get_strings_list G-->>UI: Cached triage artifacts LLM-->>UI: Triage summary + next steps UI->>DB: Cache triage report JSON/MD Op->>UI: Switch to Validate (runtime check) UI->>SR: POST /run { job_id, filename } SR->>Q: Enqueue sandbox run SR->>WS: (out-of-band) execute sample in VM WS-->>SR: Logs / traces / debugger data SR->>DB: POST /evidence/ (artifacts) UI->>LLM: ChatCompletion + get_dynamic_evidence LLM-->>UI: Correlated static + dynamic findings UI-->>Op: Explain confirmed / falsified behavior ``` ### 路线图和基准测试台 - 路线图:[`ROADMAP.md`](./ROADMAP.md) - 基准测试台:[`samples/benchmarks.md`](./samples/benchmarks.md) ### 自动分拣报告 Endpoint: ``` GET /triage/ ``` 工件: - JSON:`/app/data/triage_reports/.json` - Markdown:`/app/data/triage_reports/.md` 行为: - 上传后自动将分拣排入队列 - 添加新的动态证据时重新生成分拣 - 在所需工件仍在准备中时,endpoint 返回 `202` 要启用由 LLM 撰写的分拣文本: ``` TRIAGE_USE_LLM=1 ``` ### 动态证据通道 GhostTrace 不会作为默认工作流的一部分自主执行未知的二进制文件。相反,它支持从受控环境中引入结构化的证据。 Endpoints: ``` POST /evidence/ GET /evidence/ ``` 这使得平台能够关联 imports、strings、反编译结果、沙箱工件和调试器发现。 ### 重构(targets、假设、草稿) Web UI 暴露了一个由 LLM 辅助的重构通道,用于从分拣和证据中生成交付目标、假设、工件草稿和验证计划: - `GET /reconstruction/` — 列出 bundle - `POST /reconstruction//targets`, `.../targets/generate` - `POST /reconstruction//hypotheses`, `.../hypotheses/generate` - `POST /reconstruction//drafts`, `.../drafts/generate` - `POST /reconstruction//validation_plans`, `.../validation_plans/generate` - `GET /reconstruction//drafts//export` ### Windows 沙箱实验室 可选的 `windows-sandbox` 配置提供: - 在 `http://127.0.0.1:8006` 上的 `noVNC` - 在 `127.0.0.1:3389` 上的 `RDP` - 在 `127.0.0.1:2222` 上的 `SSH` - 通过 `Shared` 桌面文件夹共享样本 #### 本地实验室凭据 可选的 Windows 实验室现在使用: - 默认用户名:`Docker` - 在沙箱启动时自动生成的密码 - 保存在 `sandbox/credentials/windows-sandbox.env` 中的持久化凭据 密码由 `windows_sandbox` 容器本身在运行时生成,然后显示在 Web UI 中。这使得整个过程是自动化的,而无需将静态密钥硬编码到仓库中或需要手动预处理。 如果您想手动预先生成或轮换该文件: ``` python scripts/ensure_windows_sandbox_credentials.py ``` 一旦可选的沙箱至少启动过一次,Web UI 就会加载并显示生成的实验室凭据。 沙箱端口默认绑定到 `127.0.0.1`: - 在 `http://127.0.0.1:8006` 上的 `noVNC` - 在 `127.0.0.1:3389` 上的 `RDP` - 在 `127.0.0.1:2222` 上的 `SSH` 如果您有意将沙箱暴露在 localhost 之外,请将其视为特权实验室主机,并首先设置唯一的凭据。 ### 主机端辅助工具 Windows 辅助工具: - [`Invoke-WindowsSandboxSSH.ps1`](./sandbox/host-tools/Invoke-WindowsSandboxSSH.ps1) - [`Invoke-WindowsSandboxPS.ps1`](./sandbox/host-tools/Invoke-WindowsSandboxPS.ps1) - [`Copy-ToWindowsSandbox.ps1`](./sandbox/host-tools/Copy-ToWindowsSandbox.ps1) - [`Copy-FromWindowsSandbox.ps1`](./sandbox/host-tools/Copy-FromWindowsSandbox.ps1) 通用辅助工具: - [`Invoke-SandboxSSH.ps1`](./sandbox/host-tools/Invoke-SandboxSSH.ps1) - [`Copy-ToSandbox.ps1`](./sandbox/host-tools/Copy-ToSandbox.ps1) - [`Copy-FromSandbox.ps1`](./sandbox/host-tools/Copy-FromSandbox.ps1) ### 公开网站 登录页面位于 [`docs/index.html`](./docs/index.html) 并发布在 GitHub Pages 上: - [https://0xcyberberserker.github.io/ghosttrace-lab/](https://0xcyberberserker.github.io/ghosttrace-lab/) - English:[https://0xcyberberserker.github.io/ghosttrace-lab/en/](https://0xcyberberserker.github.io/ghosttrace-lab/en/) - Español:[https://0xcyberberserker.github.io/ghosttrace-lab/es/](https://0xcyberberserker.github.io/ghosttrace-lab/es/) ## 西班牙语 GhostTrace 整合了一个具有赛博朋克美学的操作员界面、用于静态分析的 `Ghidraaas`、用于本地推理的 `Ollama`、缓存的分拣工件,以及一个带有 SSH 和调试桥接的可复现 Windows 实验室。 ### 核心亮点 - 由 `Ghidraaas` 支持的以静态分析为中心的工作流 - 与 `Ollama` 和 `Godmoded/llama3-lexi-uncensored` 的本地集成 - 缓存 imports、strings、functions 和反编译结果 - 每次分析的自动分拣报告 - 在界面中进行持久的任务管理 - 包含 `noVNC`、`RDP` 和 `SSH` 的 Windows 沙箱配置 - 用于辅助调试工作流的 `x64dbg` 桥接 ### 责任声明 GhostTrace 专为合法的逆向工程、恶意软件分析、DFIR、研究和防御性工作而设计。 与任何严肃的二进制分析 stack 一样,它也可能被恶意使用。该决定属于操作员,而非项目。如果您在没有适当授权的情况下将 GhostTrace 指向目标、软件或环境,您将承担所有法律、道德和运营后果。请理智使用。请在法律允许的范围内使用。保持谨慎。做出更好的判断。 我们欢迎任何改进想法,并将认真考虑所有有理有据的批评意见,以不断打磨本项目。 ### 架构 ``` flowchart LR classDef svc fill:#0b1220,stroke:#46f3ff,stroke-width:1.5px,color:#e9fbff,rx:8,ry:8 classDef infra fill:#050810,stroke:#6b7280,stroke-dasharray:3 3,color:#9ca3af,rx:12,ry:12 classDef sandbox fill:#041208,stroke:#22c55e,stroke-width:1.5px,color:#bbf7d0,rx:10,ry:10 classDef operator fill:#111827,stroke:#f97316,stroke-width:1.5px,color:#fed7aa,rx:10,ry:10 subgraph Operator["🧑‍💻 Espacio de operador"] direction TB Browser["Web UI\n(Flask + Tailwind)"]:::operator end subgraph Backend["Servicios principales"] direction TB WebUI["webui\nGunicorn app.py"]:::svc Ghidraaas["Ghidraaas\nREST backend"]:::svc Ollama["Ollama\nRuntime LLM"]:::svc Rabbit["RabbitMQ\ncolas"]:::svc SandboxRunner["sandbox_runner\nHTTP + worker"]:::svc end subgraph Storage["Estado del análisis"] direction TB VolJobs["JobStore (SQLite)\n/ ghosttrace.db"]:::infra VolUploads["Volumen uploads\n/ uploads/"]:::infra VolEvidence["Evidencia dinámica\n/ dynamic_evidence/"]:::infra VolTriage["Informes triage\n/ triage_reports/"]:::infra end subgraph WindowsLab["Laboratorio Windows"] direction TB WinVM["dockurr/windows\n+ herramientas OEM"]:::sandbox X64dbg["x64dbg + MCP\nplugin bridge"]:::sandbox end Browser -->|"HTTP /"| WebUI WebUI -->|"HTTP /ghidra/api"| Ghidraaas WebUI -->|"API compat OpenAI\nAPI_BASE"| Ollama WebUI <-.->|"JSON jobs + evidencia"| VolJobs WebUI <-.->|"Stream upload"| VolUploads WebUI <-.->|"Artefactos JSON"| VolEvidence WebUI <-.->|"JSON triage"| VolTriage WebUI -->|"HTTP /sandbox_*"| SandboxRunner SandboxRunner -->|"AMQP\ncolas triage y sandbox"| Rabbit SandboxRunner <-.->|"muestras compartidas\n/ estado bridge"| VolUploads WinVM <-.->|"Carpeta compartida\n/Shared"| VolUploads WinVM <-.->|"JSON bridge\nvía runner"| SandboxRunner WinVM -->|"Estado depurador\n+ hallazgos"| X64dbg ``` 核心组件: - `webui/` Flask 应用、任务管理、AI 操作员、聊天、分拣视图和调试器视图。 - `Ghidraaas/` 为本 stack 改编的 Cisco Talos Ghidra-as-a-Service 后端。 - `sandbox/` Windows 沙箱置备、来自主机的 SSH 实用程序、桥接工具和 OEM 自动化。 - `docs/` GitHub Pages 的公开登录页面。 ### 启动指南 1. 构建 `Ghidraaas`: ``` cd Ghidraaas docker build -t ghidraaas . ``` 2. 从仓库根目录启动 stack: ``` docker compose up --build ``` 在 Compose stack 中,`webui` 在 `gunicorn` 后启动。Flask 开发服务器仅保留用于本地直接执行。 Web UI 支持通过 HTTP Basic auth 进行可选的操作员保护: ``` OPERATOR_USERNAME=operator OPERATOR_PASSWORD=cambia-esto ``` 如果同时定义了这两个,GhostTrace 将在 Web UI 和 API 的人工交互路由中要求提供操作员凭据,而沙箱的内部回调将继续使用共享的内部 token。 GhostTrace 现在还支持在 Compose stack 中使用带有 RabbitMQ 的后台 worker。默认配置会启动 `rabbitmq`、一个专用于分拣的 `webui_worker` 消费者,以及一个用于处理沙箱队列的 `sandbox_runner_worker`。 此外,`webui` 和 `sandbox_runner` 现在暴露了一个面向可观测性的 `/health` endpoint,其中包含就绪状态详情和请求 ID。响应中包含 `X-Request-ID`,以便能够在服务之间关联日志。 Web UI 还将 `/metrics/summary` 作为面向操作员的 JSON 摘要进行暴露,并将 `/metrics` 以 Prometheus 风格的文本格式暴露。 主要的 `sandbox_runner` 容器现在也在 `gunicorn` 后运行。桥接线程仅在 runner 的 HTTP 流程中激活,而不在独立的队列 worker 中激活,这样我们就避免了重复的桥接消费者。 前端资源不再在运行时依赖 CDN 来获取 Tailwind、jQuery、Marked 或 Google Fonts。生成和版本化的资源位于 `webui/static/css/` 和 `webui/static/vendor/` 中。 如果您更改了实用程序类或想要刷新前端的 vendor,请使用以下命令重新生成它们: ``` npm install npm run build:frontend ``` 对于针对主 shell 的浏览器冒烟测试,请安装一次 Playwright 的 Chromium 并运行: ``` npx playwright install chromium npm run test:e2e:smoke npm run test:e2e:release ``` 冒烟脚本默认在 `http://127.0.0.1:5000/` 查找应用,并将截图保存在 `output/playwright/` 中。 它还会在 `output/playwright/ghosttrace-smoke-report.json` 中写入一份 JSON 报告,其中包含各步骤耗时、打开的 job_id 和 UI 的可见快照;如果检测到可操作的 `pageerror` 事件或控制台错误,则会判定失败。 发布检查会读取该报告,如果总耗时、关键耗时或最终可见健康状态偏离了可配置的阈值,则检查失败。 GitHub Actions 的 CI 工作流涵盖了前端资产生成、Python 编译检查以及 Web UI 和沙箱 runner 的测试套件。浏览器冒烟测试目前暂时单独保留,因为它仍然需要一个带有至少一个预加载分析任务的运行中的 stack。 3. 打开应用: ``` http://localhost:5000 ``` ### 环境要求 - Docker Desktop - 足够的磁盘空间用于存放 Ollama 模型 该 stack 现在会启动自己的 `ollama` 容器并自动拉取: ``` Godmoded/llama3-lexi-uncensored ``` `ollama` 被配置为请求 Docker 中所有可用的 GPU 用于推理。 ### 共享 AI 配置 GhostTrace 将其共享配置保存在 [`ai-config.json`](./ai-config.json) 中。 当前值: - 提供商:`ollama` - API base:`http://ollama:11434/v1` - 模型:`Godmoded/llama3-lexi-uncensored` - 本地状态库:`/app/data/ghosttrace.db` 该仓库已经过调整,以便在两侧使用相同的模型: - `webui` 使用 `MODEL_NAME=Godmoded/llama3-lexi-uncensored` - `windows_sandbox` 使用 `OLLAMA_MODEL=Godmoded/llama3-lexi-uncensored` - `docker-compose` 在内部将 Ollama 连接为 `http://ollama:11434` ### 分析工作流 ``` sequenceDiagram autonumber actor Op as Operador participant UI as Web UI participant G as Ghidraaas participant LLM as Ollama participant Q as RabbitMQ participant SR as Sandbox Runner participant WS as Windows Sandbox participant DB as JobStore / Evidencia Op->>UI: Sube sample.exe UI->>G: POST /analyze_sample (stream binario) G-->>UI: 200 "Análisis completado" UI->>DB: Guarda metadata del job + uploads UI-->>Op: job_id + status: DONE Op->>UI: Preguntas de triage (Chat) UI->>LLM: ChatCompletion + tools (functions/imports/strings) UI->>G: get_functions_list / get_imports_list / get_strings_list G-->>UI: Artefactos de triage cacheados LLM-->>UI: Resumen triage + siguientes pasos UI->>DB: Cachea informe triage JSON/MD Op->>UI: Cambia a Validate (comprobación en runtime) UI->>SR: POST /run { job_id, filename } SR->>Q: Encola ejecución sandbox SR->>WS: (fuera de banda) ejecuta muestra en VM WS-->>SR: Logs / trazas / datos depurador SR->>DB: POST /evidence/ (artefactos) UI->>LLM: ChatCompletion + get_dynamic_evidence LLM-->>UI: Hallazgos estáticos + dinámicos correlacionados UI-->>Op: Explica comportamiento confirmado / falsificado ``` ### 路线图和基准测试台 - 路线图:[`ROADMAP.md`](./ROADMAP.md) - 基准测试台:[`samples/benchmarks.md`](./samples/benchmarks.md) ### 自动分拣报告 Endpoint: ``` GET /triage/ ``` 工件: - JSON:`/app/data/triage_reports/.json` - Markdown:`/app/data/triage_reports/.md` 行为: - 上传后分拣会自动加入队列 - 添加动态证据时会重新生成 - 在缺少所需工件时,endpoint 返回 `202` 要启用由 LLM 生成的分拣文本: ``` TRIAGE_USE_LLM=1 ``` ### 动态证据通道 GhostTrace 不会在默认工作流中自动执行未知的二进制文件。相反,它支持从受控环境中引入结构化的证据。 Endpoints: ``` POST /evidence/ GET /evidence/ ``` 这允许关联 imports、strings、反编译、沙箱工件和调试器发现。 ### 重构(targets、假设、草稿) Web UI 暴露了一个由 LLM 辅助的重构流程,用于从分拣和证据中生成交付目标、假设、草稿和验证计划: - `GET /reconstruction/` — 列出 bundle - `POST /reconstruction//targets`, `.../targets/generate` - `POST /reconstruction//hypotheses`, `.../hypotheses/generate` - `POST /reconstruction//drafts`, `.../drafts/generate` - `POST /reconstruction//validation_plans`, `.../validation_plans/generate` - `GET /reconstruction//drafts//export` ### Windows 实验室 可选的 `windows-sandbox` 配置提供: - 在 `http://127.0.0.1:8006` 上的 `noVNC` - 在 `127.0.0.1:3389` 上的 `RDP` - 在 `127.0.0.1:2222` 上的 `SSH` - 通过 `Shared` 文件夹共享样本 #### 本地实验室凭据 可选的 Windows 实验室现在使用: - 默认用户名:`Docker` - 沙箱启动时自动生成的密码 - 保存在 `sandbox/credentials/windows-sandbox.env` 中的持久化凭据 密码由 `windows_sandbox` 本身在运行时生成,然后由 Web UI 显示。这样流程就是自动的,无需在仓库中留下固定的密钥,也无需依赖前置的手动步骤。 如果您想手动生成或轮换该文件: ``` python scripts/ensure_windows_sandbox_credentials.py ``` 一旦可选的沙箱至少启动过一次,Web UI 就会加载并显示这些凭据。 沙箱端口默认绑定到 `127.0.0.1`: - 在 `http://127.0.0.1:8006` 上的 `noVNC` - 在 `127.0.0.1:3389` 上的 `RDP` - 在 `127.0.0.1:2222` 上的 `SSH` 如果您决定将沙箱暴露在 localhost 之外,请将其视为特权实验室主机,并首先定义唯一的凭据。 ### 主机端实用程序 Windows 实用程序: - [`Invoke-WindowsSandboxSSH.ps1`](./sandbox/host-tools/Invoke-WindowsSandboxSSH.ps1) - [`Invoke-WindowsSandboxPS.ps1`](./sandbox/host-tools/Invoke-WindowsSandboxPS.ps1) - [`Copy-ToWindowsSandbox.ps1`](./sandbox/host-tools/Copy-ToWindowsSandbox.ps1) - [`Copy-FromWindowsSandbox.ps1`](./sandbox/host-tools/Copy-FromWindowsSandbox.ps1) 通用实用程序: - [`Invoke-SandboxSSH.ps1`](./sandbox/host-tools/Invoke-SandboxSSH.ps1) - [`Copy-ToSandbox.ps1`](./sandbox/host-tools/Copy-ToSandbox.ps1) - [`Copy-FromSandbox.ps1`](./sandbox/host-tools/Copy-FromSandbox.ps1) ### 公开网站 登录页位于 [`docs/index.html`](./docs/index.html) 并发布在 GitHub Pages 上: - [https://0xcyberberserker.github.io/ghosttrace-lab/](https://0xcyberberserker.github.io/ghosttrace-lab/) - 英文:[https://0xcyberberserker.github.io/ghosttrace-lab/en/](https://0xcyberberserker.github.io/ghosttrace-lab/en/) - 西班牙文:[https://0xcyberberserker.github.io/ghosttrace-lab/es/](https://0xcyberberserker.github.io/ghosttrace-lab/es/)
标签:AI风险缓解, DAST, Ghidra, LLM评估, Ollama, 云资产清单, 恶意软件分析, 沙箱, 特征检测, 请求拦截, 逆向工具, 逆向工程