
AIを活用したペネトレーションテストMCPサーバー
"日本神話において、天狗は荒々しい山の精霊であり、戦略家、戦士、そして侍の師範です。サイバーセキュリティの世界では、ハントのあらゆるフェーズを導きます。"
偵察から報告書まで — AI支援のペネトレーションテストをひとつのコマンドで。
Tengu は、Claudeをペネトレーションテストのコパイロットに変えるMCPサーバーです。NmapからMetasploitまで80のセキュリティツールを統括し、組み込みの安全制御、監査ログ、プロフェッショナルなレポート作成を備えています。
Claudeをインタラクティブなペンテストコパイロットとして使用 — あなたがエンゲージメントを指揮し、Claudeが適切なツールを選択し、自動的に連鎖させます。
git clone https://github.com/rfunix/tengu.git && cd tengu make docker-build make docker-up
Claude Codeを実行中のサーバーに接続する:```bash
claude mcp add --transport sse tengu http://localhost:8000/sse
次にClaudeに依頼してください: Do a full pentest on http://192.168.1.100
Claudeはツールを自動的に連鎖させます: validate_target → whatweb → nmap → nikto →
nuclei → sqlmap → correlate_findings → generate_report
| Command | 起動内容 |
|---|---|
make docker-up | Tengu MCPサーバー(:8000) |
make docker-lab | + Juice Shop, DVWA(安全な練習用ターゲット) |
make docker-pentest | + Metasploit, OWASP ZAP(実世界のターゲット) |
make docker-full | + Metasploit、ZAP、およびラボターゲット |
ファイルを編集せずにカスタムターゲットをスキャンする:```bash TENGU_ALLOWED_HOSTS="192.168.1.0/24,10.0.0.0/8" make docker-up
### イメージ階層
ユースケースに合ったサイズを選択してください:
| 階層 | サイズ | MCP Tools | ユースケース |
|------|------|-----------|----------|
| `minimal` | ~480MB | 17 | 軽量解析、CVE調査、レポート作成 |
| `core` | ~7GB | 47 | 完全なペンテストツールキット(デフォルト) |
| `full` | ~8GB | 80 | すべて + AD、ワイヤレス、ステルス/OPSEC |```bash
TENGU_TIER=minimal make docker-build # lightweight
TENGU_TIER=core make docker-build # default
TENGU_TIER=full make docker-build # everything
全てのティアには35のプロンプトと20のリソースが含まれています — 異なるのはバイナリツールのみです。
前提条件: Python 3.12+, uv, Kali Linux(推奨)```bash
git clone https://github.com/rfunix/tengu.git && cd tengu
uv sync
make install-tools
uv run tengu
Claude Code に接続:```bash
claude mcp add --scope user tengu -- uv run --directory /path/to/tengu tengu
許可されたターゲットを tengu.toml で設定してください:```toml
[targets]
allowed_hosts = ["192.168.1.0/24", "example.com"]
For Claude Desktop、VM/SSE リモートセットアップ、高度な設定については、[docs/deployment-guide.md](https://github.com/rfunix/tengu/blob/main/docs/deployment-guide.md) を参照してください。
</details>
### 設定リファレンス```toml
[targets]
# REQUIRED: Only these hosts will be scanned
allowed_hosts = ["192.168.1.0/24", "example.com"]
blocked_hosts = [] # Always blocked, even if in allowed_hosts
[stealth]
enabled = false # Route traffic through Tor/proxy
[stealth.proxy]
enabled = false
type = "socks5h"
host = "127.0.0.1"
port = 9050
[osint]
shodan_api_key = "" # Required for shodan_lookup
[tools.defaults]
scan_timeout = 300 # seconds
完全なリファレンスは docs/configuration-reference.md を参照してください。
手動でツールを呼び出すことなく、完全に自律的なペンテストを実行します。このエージェントは、戦略的思考部としてClaude、実行ツールセットとしてTenguを使用し、PTES手法に従って偵察から報告までを行います。
cp .env.example .env
**ラボターゲット (Juice Shop, DVWA):**```bash
make docker-lab
make docker-agent # default model (sonnet)
make docker-agent-haiku # cheaper — claude-haiku-4-5, max_tokens=1024
make docker-agent-sonnet # balanced — claude-sonnet-4-6, max_tokens=4096
実世界のペンテスト (Tengu + MSF + ZAP, ラボコンテナなし):```bash make docker-pentest make docker-agent
**ブラウザでレポートを表示:**```bash
make docker-report-view # http://localhost:8888 — styled HTML, all reports
make docker-report-browse # same, auto-opens browser
REPORT_PORT=9999 make docker-report-view # custom port
Dockerなしの場合:```bash uv sync --extra agent python autonomous_tengu.py 192.168.1.100 --scope 192.168.1.0/24 --type blackbox
python autonomous_tengu.py 192.168.1.100 --model claude-haiku-4-5 --max-tokens 1024 --timeout 30
**コスト管理** — 3つの環境変数 / CLIフラグ:
| フラグ | 環境変数 | デフォルト |
|---|---|---|
| `--model` | `TENGU_AGENT_MODEL` | `claude-sonnet-4-6` |
| `--max-tokens` | `TENGU_AGENT_MAX_TOKENS` | `2048` |
| `--timeout` | `TENGU_AGENT_TIMEOUT` | `60` (分, `0`=無制限) |
### 動作の仕組み```
START → initializer → strategist ─┬─→ executor → analyst ─┬─→ strategist (loop)
│ └─→ reporter → END
├─→ human_gate → executor
└─→ reporter → END
主な動作:
msf_run_module, hydra_attack, impacket_kerberoast, sqlmap_scan (level≥3)) の実行前に割り込む--max-iterations に達するまで実行correlate_findings + score_risk + generate_report を呼び出す