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. 0138 個の Kali ツールを MCP ツールとして提供
  2. 02CIDR とドメインのallowlistによるスコープ制限
  3. 03エンゲージメント単位の SQLite ベースの検出記録
  4. 04SARIF や HTML 形式のレポート出力
  5. 05streamable-http と stdio のトランスポート対応

活用シーン

  1. 01許可を得た診断における偵察と脆弱性スキャン
  2. 02CI 連携のための SARIF 形式の結果出力
  3. 03隔離された検証環境での攻撃チェーン分析の練習

MCP 対応

本プロジェクトは MCP サーバーとして動作し、Kali ツールのラッパー、エンゲージメント追跡、レポート出力を MCP 互換クライアントに公開します。API キーまたは OIDC による認証にも対応します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイント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 - 免責事項 - これは開発キットです

LLM 主導のペネトレーションテストのためのインテリジェンスレイヤーです。38 個の Kali ツールラッパー、エンゲージメント追跡、スコープ適用、あらゆる MCP 対応クライアント向けの構造化出力を備えた MCP サーバーとして提供されます。

これは開発キットです。 所有している、またはテストの明示的な許可を得ているターゲットに対してのみ使用してください。

V1 からの変更点

V1 は、Claude Desktop と kali_api_server.py プロセス間で JSON をやり取りする Flask プロキシでした。動作はしていましたが、アーキテクチャは脆弱でした。サーバーが 2 つあり、状態管理も安全対策もなく、10 個のツールが HTTP エンドポイントにハードコードされていました。

V2 は一から書き直されています。

V1V2
アーキテクチャFlask API + MCP shim(2 プロセス)単一の FastMCP サーバー(mcp SDK)
トランスポートHTTP のみStreamable-HTTP または stdio
ツール1 ファイル内に 10 個38 個のラッパー(+ カスタムスクリプト実行機能)。それぞれ src/astro/tools/ に配置
ツールの検証なし — シェルに生の文字列を渡すPydantic ベースの検証、シェルメタ文字のブロック、ブロック対象フラグのリスト
スコープの適用なしYAML 設定による CIDR + ドメインの許可リスト。すべてのツール呼び出しをチェック
レート制限なしツールごとの非同期セマフォ
認証なしAPI キー + OIDC に対応
エンゲージメント追跡なしエンゲージメントごとに分離された、SQLite ベースの検出結果記録機能
出力の解析生の stdoutnmap、sqlmap、wpscan、nuclei、subfinder などの構造化パーサー
レポートなしSARIF、HTML、Obsidian vault へのエクスポート、修正方法のマッピング
インテリジェンスなし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 strict
新しいツール(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

サーバーは Streamable-HTTP トランスポートを使用して http://localhost:8080 で起動します。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

スコープが事前設定された、分離ネットワーク 172.28.0.0/24 上で Astro と Metasploitable2 ターゲットを起動します。公開される 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 ブリッジ(オフライン/ローカル LLM)
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テンプレートベースの脆弱性スキャナー
エクスプロイト
ツール説明
sqlmapDB 列挙機能を備えた SQL インジェクションテストツール
metasploitエクスプロイトフレームワーク(msfconsole)
hydraネットワークログインのブルートフォースツール
johnパスワードクラッカー
hashcatGPU アクセラレーション対応のパスワードクラッカー
searchsploitExploit-DB のローカル検索ツール
crackmapexecネットワークプロトコル攻撃ツール
responderLLMNR/NBT-NS/mDNS ポイズニングツール
smbclientSMB クライアント
evil-winrmWinRM シェル
Impacket スイート
ツール説明
impacket_secretsdumpSAM/LSA/NTDS の認証情報抽出
impacket_psexecSMB 経由のリモートコマンド実行
impacket_wmiexecWMI 経由のリモートコマンド実行
impacket_kerberoastSPN ベースの Kerberos チケット抽出
impacket_getnpusersAS-REP ロースティング
impacket_getstサービスチケットのリクエスト
impacket_ticketerシルバーチケット/ゴールデンチケットの偽造
ポストエクスプロイト
ツール説明
linpeasLinux 権限昇格スキャナー
winpeasWindows 権限昇格スキャナー
bloodhoundActive Directory の関係マッピングツール
msfvenomペイロード生成ツール
netcatネットワーク用の万能ツール
chiselHTTP 経由の 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 に保存されます。CI 連携用に SARIF 形式で、またはクライアント向けレポート用に 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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。