mcpField
M
MCP Server for Breaking Shyet - Diclaimer - This is a DEVKIT

MCP Server for Breaking Shyet - Diclaimer - This is a DEVKIT

远程服务
github.com/whit3rabbit0安全466 周前更新
代码仓库

关于 MCP Server for Breaking Shyet - Diclaimer - This is a DEVKIT

Astro V2 是面向 LLM 驱动渗透测试的 MCP 服务,封装了 38 个 Kali 工具,并提供范围限制、工程记录和结构化输出。仅供对目标拥有授权的安全测试人员使用。

主要功能

  1. 01封装 38 个 Kali 工具并提供 MCP 接口
  2. 02基于 CIDR 与域名白名单的范围限制
  3. 03基于 SQLite 的工程发现记录
  4. 04结构化解析输出并支持 SARIF、HTML 报告
  5. 05支持 streamable-http 与 stdio 传输

适用场景

  1. 01授权渗透测试中的侦察与漏洞扫描
  2. 02在 CI 中导出 SARIF 格式的测试结果
  3. 03在隔离实验环境中练习攻击链分析

MCP 相关

该项目以 MCP 服务形式运行,向任意 MCP 客户端暴露各 Kali 工具封装、工程记录与报告导出等工具调用,并支持 API 密钥认证。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址http://10.10.10.10
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Project Astro V2 - 免责声明 - 这是一个 DEVKIT

面向由 LLM 驱动的渗透测试的智能层。作为 MCP 服务提供,包含 38 个 Kali 工具封装、交战跟踪、范围强制执行,以及适用于任何兼容 MCP 的客户端的结构化输出。

这是一个 devkit。 仅可用于测试你拥有或已获得明确测试授权的目标。

V1 到 V2 的变化

V1 是一个 Flask 代理,在 Claude Desktop 和 kali_api_server.py 进程之间传递 JSON。它能正常工作,但架构很脆弱——需要两个服务、没有状态、没有安全护栏,且 10 个工具被硬编码到 HTTP 端点。

V2 是从头开始的重写:

V1V2
架构Flask API + MCP 垫片(2 个进程)单个 FastMCP 服务(mcp SDK)
传输仅 HTTPStreamable-HTTP 或 stdio
工具10 个,内嵌在单个文件中38 个封装(+ 自定义脚本执行器),分别位于 src/astro/tools/
工具验证无——原始字符串直接传给 shell基于 Pydantic 的验证、shell 元字符拦截、屏蔽标志列表
范围强制执行无通过 YAML 配置设置 CIDR + 域名允许列表;每次工具调用都会检查
速率限制无每个工具独立的异步信号量
身份验证无支持 API 密钥 + OIDC
交战跟踪无基于 SQLite 的发现记录器,各交战之间相互隔离
输出解析原始 stdout为 nmap、sqlmap、wpscan、nuclei、subfinder 等提供结构化解析器
报告无SARIF、HTML、Obsidian 知识库导出、修复方案映射
智能无CVE 关联器(NVD API)、攻击图构建器(NetworkX)、方法论跟踪器
CLIrun.py(启动 2 个服务)astro serve、astro ollama、astro tui、astro version
打包requirements.txt + venvpyproject.toml,可通过 pip install . 安装
容器无多阶段 Kali Linux Dockerfile,适用于实验室环境的 docker-compose
LLM 支持仅 Claude Desktop任何 MCP 客户端,另提供原生 Ollama 桥接和兼容 OpenAI 的桥接
测试无pytest 测试套件(单元测试 + 集成测试)、ruff、严格模式 mypy
新增工具(V2)

侦察:amass、subfinder、ffuf、whatweb、dnsrecon、theharvester、nuclei

漏洞利用:searchsploit、crackmapexec、hashcat、responder、smbclient、evil-winrm

Impacket 套件:secretsdump、psexec、wmiexec、kerberoast、getnpusers、getst、ticketer

后渗透:linpeas、winpeas、bloodhound、chisel、netcat、msfvenom

隧道/C2:burp(代理集成)、certipy(AD CS 攻击)

灵活工具:custom_script(带超时 + 沙箱的任意 bash/python)

已移除
  • kali_api_server.py — 不再需要;工具直接执行
  • run.py — 已由 astro CLI 取代
  • requirements.txt — 已由 pyproject.toml 取代
  • setup.sh — 已由 pip install . 或 Docker 取代

快速开始

Docker(推荐)
export API_KEY="$(python3 -c 'import secrets; print(secrets.token_urlsafe(32))')"
docker compose up --build

服务将在 http://localhost:8080 上通过 Streamable-HTTP 传输启动。MCP 客户端必须在 X-API-Key 标头中发送已配置的密钥。镜像中已预装全部 38 个 Kali 工具。

Docker 实验室(含目标)
export API_KEY="$(python3 -c 'import secrets; print(secrets.token_urlsafe(32))')"
docker compose -f docker-compose.lab.yml up --build

启动 Astro 和一个 Metasploitable2 目标,二者位于隔离的 172.28.0.0/24 网络中,并已预先配置范围。发布的 Astro 端口仍仅限主机环回地址访问。

本地安装
python3 -m venv .venv && source .venv/bin/activate
pip install ".[dev,reporting]"
astro serve --port 8080

默认 HTTP 绑定仅限环回地址,在本地开发时可不进行网络身份验证。非环回地址的 HTTP 绑定必须配置 API_KEY 或 OIDC,否则服务将拒绝启动。要求在主机上安装底层 Kali 工具。

HTTP 启动和请求身份验证策略请参阅 docs/HTTP_SECURITY.md。

用法

MCP 服务(默认)
astro serve --transport streamable-http --port 8080
API_KEY="replace-with-a-strong-key" astro serve --transport streamable-http --host 0.0.0.0 --port 8080
astro serve --transport stdio  # for Claude Desktop / Claude Code

将任意 MCP 客户端连接到 http://localhost:8080,或在客户端配置中通过 stdio 接入:

{
  "mcpServers": {
    "astro": {
      "command": "astro",
      "args": ["serve", "--transport", "stdio"]
    }
  }
}
Ollama 桥接(离线 / 本地大模型)
astro ollama --model llama3 --scope config/lab_scope.yaml

针对本地 Ollama 实例进行交互式聊天,并调用工具。

终端 UI
astro tui --target 10.10.10.10 --engagement "HTB-Box"

功能丰富的终端界面,支持实时工具输出、方法论跟踪和项目管理。

范围限制

创建 YAML 范围文件,以限制工具可访问的目标:

scope:
  allowed_cidrs:
    - "10.10.10.0/24"
  allowed_domains:
    - "target.htb"
  excluded_targets: []

  tool_restrictions:
    hydra:
      enabled: true
      max_threads: 4
      service_whitelist: ["ssh", "http"]
    sqlmap:
      risk_level: 2
astro serve --scope config/scope.yaml

每次工具调用都会在执行前验证目标是否符合范围要求。超出范围的目标将被拒绝。

工具(38)

侦察
工具描述
nmap网络扫描器,支持结构化输出解析
gobuster目录 / DNS / 虚拟主机暴力枚举工具
dirbWeb 内容扫描器
niktoWeb 服务器漏洞扫描器
wpscanWordPress 漏洞扫描器
enum4linuxWindows/Samba 枚举工具
subfinder被动子域名发现工具
amass攻击面映射工具
ffufWeb 模糊测试工具
whatweb技术指纹识别工具
dnsreconDNS 侦察工具
theharvesterOSINT 电子邮件 / 子域名收集工具
nuclei基于模板的漏洞扫描器
漏洞利用
工具描述
sqlmapSQL 注入测试工具,支持数据库枚举
metasploit漏洞利用框架(msfconsole)
hydra网络登录暴力破解工具
john密码破解工具
hashcatGPU 加速的密码破解工具
searchsploitExploit-DB 本地搜索工具
crackmapexec网络协议攻击工具
responderLLMNR/NBT-NS/mDNS 欺骗工具
smbclientSMB 客户端
evil-winrmWinRM Shell
Impacket 套件
工具描述
impacket_secretsdumpSAM/LSA/NTDS 凭据提取工具
impacket_psexec通过 SMB 远程执行命令
impacket_wmiexec通过 WMI 远程执行命令
impacket_kerberoast基于 SPN 的 Kerberos 票据提取工具
impacket_getnpusersAS-REP Roasting
impacket_getst服务票据请求工具
impacket_ticketerSilver/Golden Ticket 伪造工具
漏洞利用后
工具描述
linpeasLinux 权限提升扫描器
winpeasWindows 权限提升扫描器
bloodhoundActive Directory 关系映射工具
msfvenom载荷生成器
netcat网络瑞士军刀
chisel通过 HTTP 建立 TCP/UDP 隧道
certipyAD Certificate Services 攻击工具
burpBurp Suite 代理集成
其他
工具描述
custom_script在超时沙箱中运行任意 bash/python 脚本

项目跟踪

create_engagement("HTB-Devvortex")  →  engagement ID
  └─ nmap_scan(...)                 →  finding recorded
  └─ nikto_scan(...)                →  finding recorded
  └─ sqlmap_scan(...)               →  finding recorded
get_engagement_summary()            →  all findings + metadata
export_to_obsidian("~/Vault/HTB")   →  interlinked markdown notes

调查发现会持久化保存到 SQLite。可导出为 SARIF,以集成到 CI;也可导出为 HTML,用于客户报告。

项目结构

src/astro/
├── __main__.py          CLI entry point (serve, ollama, tui, version)
├── core/
│   ├── executor.py      Shell command executor with timeout + sandboxing
│   ├── scope.py         CIDR/domain scope enforcer
│   ├── engagement.py    SQLite-backed engagement + finding manager
│   ├── rate_limiter.py  Per-tool async rate limiting
│   ├── auth.py          API key + OIDC authentication
│   ├── validators.py    Input validation (shell metachar blocking, flag filtering)
│   └── parallel.py      Concurrent tool execution
├── tools/
│   ├── base.py          BaseTool ABC (validate → build_command → execute → parse)
│   ├── registry.py      Tool registry with category filtering
│   ├── nmap.py          ... 38 tool wrappers, one per file
│   └── nuclei.py
├── parsers/             Structured output parsers (nmap XML, sqlmap, wpscan JSON)
├── intel/
│   ├── cve_correlator.py   NVD API CPE→CVE lookup
│   ├── attack_graph.py     NetworkX-based attack path modeling
│   └── methodology.py      Phase tracker (recon → exploit → post-exploit)
├── server/
│   ├── mcp_server.py       FastMCP server (all tool + engagement endpoints)
│   ├── ollama_bridge.py    Native Ollama chat with tool calling
│   ├── openai_bridge.py    OpenAI-compatible API bridge
│   └── config.py           Environment-based config loader
├── reporting/
│   ├── sarif.py            SARIF 2.1.0 export
│   ├── html_report.py      Standalone HTML report generator
│   ├── obsidian.py         Obsidian vault export (interlinked notes)
│   └── remediation.py      CWE → remediation mapping
├── observability/
│   ├── logging.py          structlog-based structured logging
│   └── metrics.py          Execution metrics tracking
└── tui/
    ├── app.py              Textual-based terminal UI
    └── widgets.py          Custom TUI widgets

环境变量

变量默认值描述
ASTRO_HOST127.0.0.1服务绑定地址
ASTRO_PORT8080服务监听端口
ASTRO_TRANSPORTstreamable-httpMCP 传输方式(streamable-http 或 stdio)
ASTRO_DB_PATH~/.astro/engagements.dbSQLite 数据库路径
ASTRO_SCOPE_CONFIG—范围 YAML 配置文件路径
ASTRO_DEBUGfalse启用调试日志
API_KEY—用于身份验证访问的 API 密钥

开发

pip install ".[dev]"
pytest                    # run tests
ruff check src/ tests/    # lint
mypy src/                 # type check

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。