
KI-gestützter Penetrationstest MCP Server
"In der japanischen Mythologie ist der Tengu ein wilder Berggeist – Meisterstratege, Krieger und Ausbilder von Samurai. In der Cybersicherheit führt er dich durch jede Phase der Jagd."
Von der Aufklärung bis zum Bericht – KI-gestütztes Pentesting in einem Befehl.
Tengu ist ein MCP-Server, der Claude in einen Copilot für Penetrationstests verwandelt. Er orchestriert 80 Sicherheitstools – von Nmap bis Metasploit – mit integrierten Sicherheitskontrollen, Audit-Logs und professionellen Berichten.
Verwende Claude als interaktiven Pentest-Copilot – du leitest den Einsatz, Claude wählt die richtigen Tools und verknüpft sie automatisch.
git clone https://github.com/rfunix/tengu.git && cd tengu make docker-build make docker-up
Verbinde Claude Code mit dem laufenden Server:```bash
claude mcp add --transport sse tengu http://localhost:8000/sse
Dann frag Claude: Führe einen vollständigen Pentest auf http://192.168.1.100 durch
Claude verknüpft Tools automatisch: validate_target → whatweb → nmap → nikto →
nuclei → sqlmap → correlate_findings → generate_report
| Befehl | Was gestartet wird |
|---|
Benutzerdefinierte Ziele ohne Dateibearbeitung scannen:```bash TENGU_ALLOWED_HOSTS="192.168.1.0/24,10.0.0.0/8" make docker-up
### Image-Stufen
Wählen Sie die richtige Größe für Ihren Einsatzbereich:
| Tier | Größe | MCP Tools | Einsatzbereich |
|------|------|-----------|----------|
| `minimal` | ~480MB | 17 | Leichtgewichtige Analyse, CVE-Recherche, Berichterstellung |
| `core` | ~7GB | 47 | Komplettes Pentest-Toolkit (Standard) |
| `full` | ~8GB | 80 | Alles + AD, Wireless, Stealth/OPSEC |```bash
TENGU_TIER=minimal make docker-build # lightweight
TENGU_TIER=core make docker-build # default
TENGU_TIER=full make docker-build # everything
Alle Stufen enthalten alle 35 Prompts und 20 Ressourcen — nur die binären Werkzeuge unterscheiden sich.
Voraussetzungen: Python 3.12+, uv, Kali Linux (empfohlen)```bash
git clone https://github.com/rfunix/tengu.git && cd tengu
uv sync
make install-tools
uv run tengu
Claude Code verbinden:```bash
claude mcp add --scope user tengu -- uv run --directory /path/to/tengu tengu
Konfigurieren Sie erlaubte Ziele in tengu.toml:```toml
[targets]
allowed_hosts = ["192.168.1.0/24", "example.com"]
Für Claude Desktop, VM/SSE-Fernsetup und erweiterte Konfigurationen siehe [docs/deployment-guide.md](https://github.com/rfunix/tengu/blob/HEAD/docs/deployment-guide.md).
</details>
### Konfigurationsreferenz```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
make docker-up | Tengu MCP-Server (:8000) |
make docker-lab | + Juice Shop, DVWA (sichere Übungsziele) |
make docker-pentest | + Metasploit, OWASP ZAP (reale Ziele) |
make docker-full | + Metasploit, ZAP und Laborziele |
Siehe docs/configuration-reference.md für die vollständige Referenz.
Führen Sie einen vollständig autonomen Pentest ohne manuellen Tool-Aufruf durch. Der Agent nutzt Claude als strategisches Gehirn und Tengu als Ausführungswerkzeug, wobei er der PTES-Methodik von der Aufklärung bis zur Berichterstattung folgt.
cp .env.example .env
**Laborziele (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
Praxisnahe Pentests (Tengu + MSF + ZAP, keine Labor-Container):```bash make docker-pentest make docker-agent
**Berichte im Browser anzeigen:**```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
Ohne 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
**Cost control** — drei Umgebungsvariablen / CLI-Flags:
| Flag | Umgebungsvariable | Standard |
|---|---|---|
| `--model` | `TENGU_AGENT_MODEL` | `claude-sonnet-4-6` |
| `--max-tokens` | `TENGU_AGENT_MAX_TOKENS` | `2048` |
| `--timeout` | `TENGU_AGENT_TIMEOUT` | `60` (Minuten, `0`=unbegrenzt) |
### So funktioniert es```
START → initializer → strategist ─┬─→ executor → analyst ─┬─→ strategist (loop)
│ └─→ reporter → END
├─→ human_gate → executor
└─→ reporter → END
Schlüsselverhalten:
msf_run_module, hydra_attack, impacket_kerberoast, sqlmap_scan mit Level≥3).--max-iterations erreicht ist.correlate_findings + score_risk + generate_report auf.| Phase | Name | Was Tengu tut | Wichtige Tools |
|---|---|---|---|
| 1 | Pre-Engagement | validate_target bestätigt den Umfang, check_tools prüft die Bereitschaft | validate_target, check_tools |
| 2 | Intelligence Gathering | OSINT, DNS-Aufklärung, Subdomain-Enumeration, Technologie-Fingerprinting | nmap, subfinder, amass, shodan, whatweb |
| 3 | Threat Modeling | Claude analysiert gesammelte Informationen, priorisiert die Angriffsfläche, erstellt Bedrohungsszenarien | (KI-gesteuert – kein externes Tool) |
| 4 | Vulnerability Analysis | Template-Scanning, Web-App-Tests, SSL/TLS-Analyse, Parameter-Fuzzing | nuclei, nikto, ffuf, sqlmap, testssl |
| 5 | Exploitation | Kontrollierte Ausnutzung bestätigter Schwachstellen mit Human-in-the-Loop | msf_run_module, sqlmap, hydra, searchsploit |
| 6 | Post-Exploitation | Credential-Harvesting, Lateral-Movement-Bewertung, Privilege Escalation | impacket_kerberoast, nxc_enum, enum4linux |
| 7 | Reporting | Alle Ergebnisse korrelieren, Risikobewertungen berechnen, professionellen Bericht erstellen | correlate_findings, score_risk, generate_report |
minimal(17 Tools, ~480MB) ·core(47 Tools, ~7GB, Standard) ·full(80 Tools, ~8GB) Erstellen mit:TENGU_TIER=<tier> make docker-build. Alle Stufen enthalten alle 35 Prompts und 20 Ressourcen.
| Kategorie | Tools | Anzahl |
|---|---|---|
| Aufklärung | Nmap, Masscan, Amass, Subfinder, Gowitness, HTTrack, Katana, httpx, SNMPwalk, RustScan | 10 |
| Web-Scanning | Nikto, Nuclei, FFUF, Gobuster, WPScan, Feroxbuster, OWASP ZAP, wafw00f | 8 |
| SSL/TLS | sslyze, testssl.sh, HTTP-Header-Analyse, CORS-Tester | 4 |
| DNS | DNS Enumerate, DNSRecon, Subjack, WHOIS | 4 |
| OSINT | theHarvester, Shodan, WhatWeb, DNStwist | 4 |
| Injection-Tests | SQLMap, Dalfox (XSS), Commix, CRLFuzz, GraphQL Security Check, Arjun | 6 |
| Brute Force | Hydra, John the Ripper, Hashcat, CeWL | 4 |
| Exploitation | Metasploit (search, info, run, sessions, cmd), SearchSploit | 6 |
| Social Engineering | SET Credential Harvester, QR-Code-Angriff, Payload-Generator | 3 |
| Geheimnisse & Code | TruffleHog, Gitleaks | 2 |
| Container & Cloud | Trivy, Checkov, ScoutSuite, Prowler | 4 |
| Active Directory | NetExec, Enum4linux, Impacket (Kerberoast, secretsdump, psexec, wmiexec, smbclient), BloodHound, Responder, SMBMap | 10 |
| Drahtlos | aircrack-ng / airodump-ng | 1 |
| Anonymität & Stealth | Tor-Prüfung/-Rotation, Proxy-Prüfung, Identitätsrotation | 5 |
| Analyse & Berichterstellung | Ergebnis-Korrelation, CVSS-Risikobewertung, Berichterstellung | 3 |
| CVE-Intelligenz | CVE-Abfrage (NVD), CVE-Suche nach Schlüsselwort/Produkt/Schweregrad | 2 |
| Dienstprogramme | Tool-Checker, Ziel-Validierung | 2 |
| Tool | Beschreibung |
|---|---|
nmap_scan | Port-Scanning und Service-/BS-Erkennung |
masscan_scan | Hochgeschwindigkeits-Port-Scanner für große Netzwerke |
subfinder_enum | Passive Subdomain-Enumeration |
amass_enum | Angriffsflächen-Mapping und DNS-Brute-Force |
dnsrecon_scan | DNS-Aufklärung (Zonentransfer, Brute-Force, PTR) |
dns_enumerate | DNS-Record-Enumeration (A, MX, NS, TXT, SOA…) |
whois_lookup | WHOIS-Domain- und IP-Abfrage |
subjack_check | Subdomain-Übernahme-Erkennung |
gowitness_screenshot | Web-Screenshot-Erfassung für Dokumentation |
httrack_mirror | Vollständiger Website-Mirror für Offline-Analyse und Forensik |
katana_crawl | Schneller Webcrawler zur Link-Erkennung und Endpunkt-Mapping |
httpx_probe | HTTP-Probe – Statuscodes, Tech-Stack, Weiterleitungen |
snmpwalk_scan | SNMP-Enumeration und MIB-Walking |
rustscan_scan | Ultra-schnelles Port-Scanning (findet offene Ports für Nmap-Nachverfolgung) |
| Tool | Beschreibung |
|---|---|
theharvester_scan | E-Mail-, Subdomain- und Host-Enumeration aus öffentlichen Quellen |
| Tool | Beschreibung |
|---|---|
set_credential_harvester | Eine Website klonen und übermittelte Anmeldedaten erfassen (autorisierte Phishing-Simulationen) |
set_qrcode_attack | QR-Code generieren, der auf eine URL verweist, für physische Social-Engineering-Bewertungen |
set_payload_generator | Social-Engineering-Payloads generieren (PowerShell, HTA) für autorisierte Kampagnen |
| Tool | Beschreibung |
|---|---|
hydra_attack | Netzwerk-Login-Brute-Force (SSH, FTP, HTTP, SMB…) |
| Tool | Beschreibung |
|---|---|
zap_spider | OWASP ZAP Web Spider |
zap_active_scan | OWASP ZAP aktiver Schwachstellen-Scan |
zap_get_alerts | ZAP-Scan-Ergebnisse abrufen |
| Tool | Beschreibung |
|---|---|
trufflehog_scan | Erkennung durchgesickerter Geheimnisse in Git-Repositories |
gitleaks_scan | Anmeldedaten-Scanning im Git-Verlauf |
| Tool | Beschreibung |
|---|---|
trivy_scan | Schwachstellen-Scanning für Docker-Images, IaC und SBOM |
| Tool | Beschreibung |
|---|---|
scoutsuite_scan | Cloud-Sicherheitsaudit (AWS, Azure, GCP) |
prowler_scan | AWS/GCP/Azure-Sicherheitsbest Practices und Compliance-Audit |
| Tool | Beschreibung |
|---|---|
aircrack_scan | Passiver drahtloser Netzwerkscan (airodump-ng) |
| Tool | Beschreibung |
|---|---|
checkov_scan | IaC-Fehlkonfigurationsscan (Terraform, K8s, Dockerfile) |
Vorgefertigte Workflow-Vorlagen, die Claude durch vollständige Engagements führen.
| Kategorie | Prompts |
|---|---|
| Pentest-Workflows | full_pentest, quick_recon, web_app_assessment |
| Schwachstellenbewertung | assess_injection, assess_access_control, assess_crypto, assess_misconfig |
| OSINT | osint_investigation |
| Berichte | executive_report, technical_report, full_pentest_report, finding_detail, risk_matrix, remediation_plan, retest_report, save_report |
| Stealth/OPSEC | stealth_assessment, opsec_checklist |
| Spezialisiert | ad_assessment, api_security_assessment, container_assessment, cloud_assessment, wireless_assessment, bug_bounty_workflow, compliance_assessment |
| Schnellaktionen | explore_url, map_network, hunt_subdomains, find_vulns, find_secrets, go_stealth, crack_wifi, pwn_target, msf_exploit_workflow |
| Social Engineering | social_engineering_assessment |
Statische Referenzdaten, die Claude während Engagements lädt.
| URI | Inhalt |
|---|---|
owasp://top10/2025 | OWASP Top 10:2025 vollständige Liste |
owasp://top10/2025/{A01..A10} | Detailinformationen pro Kategorie + Testcheckliste |
owasp://api-security/top10 | OWASP API Security Top 10 (2023) |
owasp://api-security/top10/{API1..API10} | Detailinformationen pro Kategorie |
ptes://phases | PTES 7-Phasen-Methodik-Übersicht |
ptes://phase/{1..7} | Phasendetails (Ziele, Tools, Liefergegenstände) |
checklist://web-application | Web-App-Pentest-Checkliste (OWASP Testing Guide) |
checklist://api | API-Pentest-Checkliste |
checklist://network | Netzwerkinfrastruktur-Checkliste |
mitre://attack/tactics | MITRE ATT&CK Enterprise-Taktiken + Techniken |
mitre://attack/technique/{T1xxx} | Technikdetail nach ID |
creds://defaults/{product} | Standard-Anmeldedaten-Datenbank |
payloads://{type} | Kuratierte Payload-Listen nach Typ (xss, sqli, lfi, ssti, etc.) |
stealth://techniques | Referenzleitfaden für operationelle Sicherheitstechniken |
stealth://proxy-guide | Schritt-für-Schritt-Anleitung zur Proxy- und Tor-Konfiguration |
tools://catalog | Live-Status der Tool-Verfügbarkeit |
tools://{tool}/usage | Nutzungsanleitung für nmap, nuclei, sqlmap, metasploit, trivy, amass |
prompts://list | Liste aller verfügbaren Prompts mit Beschreibungen |
prompts://category/{category} | Nach Kategorie gefilterte Prompts |
┌─────────────┐ MCP ┌─────────────────┐ subprocess ┌─────────────────┐ │ Claude │◄────────────►│ Tengu │─────────────────►│ Nmap, SQLMap, │ │ (Desktop / │ stdio/SSE │ MCP Server │ (never shell=T) │ Metasploit... │ │ Code) │ │ │ └─────────────────┘ └─────────────┘ └────────┬─────────┘ │ Every tool call passes through: │ ┌────────▼─────────┐ │ Safety Pipeline │ │ │ │ 1. sanitizer │ ← strip metacharacters, validate format │ 2. allowlist │ ← check target against tengu.toml │ 3. rate_limiter │ ← sliding window + concurrent slots │ 4. audit logger │ ← JSON log to ./logs/tengu-audit.log └──────────────────┘
---
## Konfigurationsdateien
Tengu verwendet drei Konfigurationsdateien. Die Bearbeitung der falschen Datei ist die häufigste Ursache für Verwirrung beim Wechsel zwischen lokalen und Docker-Workflows.
| Datei | Verwendungszweck | Steuerung |
|------|-------------|------------------|
| `tengu.toml` (Stamm) | Lokal ausführen: `uv run tengu`, `uv run python autonomous_tengu.py` | MCP-Server-Konfiguration: `allowed_hosts`, Tool-Pfade, Ratenlimits, Stealth |
| `docker/tengu.toml` | Ausführen über Docker: `make docker-up`, `make docker-agent` | Gleiche Einstellungen wie root, aber vorkonfiguriert für Docker-Netzwerk (`172.16.0.0/12`, Service-DNS-Aliase). Wird zur Build-Zeit in das Image eingebacken — **Neubau erforderlich** nach Änderungen (`make docker-rebuild-tengu`) |
| `.env` | Sowohl lokal als auch Docker | Geheimnisse und Laufzeitvariablen: `ANTHROPIC_API_KEY`, `TENGU_AGENT_TARGET`, `TENGU_AGENT_MODEL`, `TENGU_AGENT_MAX_TOKENS`, etc. Gelesen von `docker compose` und `load_dotenv()` |
| `.env.example` | Nur als Referenz | Vorlage, die alle verfügbaren Umgebungsvariablen auflistet |
**Schnellkonfiguration für Copilot-Modus (lokal):** Bearbeiten Sie `tengu.toml` im Projektstamm — fügen Sie Ihr Ziel zu `[targets] allowed_hosts` hinzu.
**Schnellkonfiguration für Agent-Modus (Docker):** Bearbeiten Sie `docker/tengu.toml`, führen Sie dann `make docker-rebuild-tengu` vor `make docker-agent` aus.
> **Häufige Falle:** Wenn Scans mit `TargetNotAllowedError` in Docker fehlschlagen, haben Sie wahrscheinlich `tengu.toml` (Stamm) statt `docker/tengu.toml` bearbeitet. Docker verwendet eine eigene Kopie, die in das Image eingebacken ist. Führen Sie nach der Bearbeitung `make docker-rebuild-tengu` aus.
---
## Sicherheit durch Design
Tengu ist als **Kraftverstärker für menschliche Pentester** konzipiert, nicht als autonomes Angriffstool.
| Kontrolle | Beschreibung |
|---------|-------------|
| **Zielerlaubnisliste** | Es werden nur vorab genehmigte Ziele in `tengu.toml` gescannt |
| **Eingabebereinigung** | Alle Eingaben werden vor Erreichen eines Tools anhand strenger Muster validiert |
| **Ratenbegrenzung** | Gleitfenster + gleichzeitige Slot-Limits verhindern unbeabsichtigte DoS-Angriffe |
| **Prüfprotokollierung** | Jeder Tool-Aufruf wird im JSON-Format in `./logs/tengu-audit.log` protokolliert |
| **Human-in-the-Loop** | `msf_run_module`, `hydra_attack` und `impacket_kerberoast` erfordern explizite Bestätigung |
| **Kein shell=True — niemals** | Alle Unterprozessaufrufe verwenden `asyncio.create_subprocess_exec` |
---
## Entwicklung```bash
make install-dev # Install Python deps + dev extras
make test # Run unit + security tests
make lint # ruff check
make typecheck # mypy strict
make check # lint + typecheck
make coverage # pytest --cov
make inspect # Open MCP Inspector
make doctor # Check which pentest tools are installed
Tengu verfügt über 2643+ Tests, die Unit-Logik, Sicherheit (Befehlseinschleusung, Eingabevalidierung) und Integrationsszenarien abdecken. Die vollständige Mitwirkenden-Anleitung finden Sie in CLAUDE.md.
Tengu ist ausschließlich für autorisierte Sicherheitstests konzipiert. Scannen Sie nur Systeme, die Sie besitzen oder für die Sie eine ausdrückliche schriftliche Genehmigung haben. Nicht autorisiertes Scannen ist in den meisten Rechtsordnungen illegal. Die Autoren übernehmen keine Haftung für Missbrauch.
| Tool | Beschreibung |
|---|
nuclei_scan | Template-basierter Schwachstellen-Scanner (CVEs, Fehlkonfigurationen) |
nikto_scan | Webserver-Fehlkonfigurations- und Veraltete-Software-Scanner |
ffuf_fuzz | Verzeichnis-, Parameter- und Vhost-Fuzzing |
gobuster_scan | Verzeichnis-, DNS- und Vhost-Brute-Force |
wpscan_scan | WordPress-Schwachstellen-Scanner |
testssl_check | Umfassende SSL/TLS-Konfigurationsanalyse |
analyze_headers | HTTP-Sicherheitsheader-Analyse und -Bewertung |
test_cors | CORS-Fehlkonfigurationserkennung |
ssl_tls_check | SSL/TLS-Zertifikats- und Chiffre-Prüfung (sslyze) |
wafw00f_scan | Web Application Firewall-Erkennung und Fingerprinting |
feroxbuster_scan | Schnelle, rekursive Inhaltserkennung per Brute-Force |
shodan_lookup | Shodan-Host- und Asset-Suche |
whatweb_scan | Web-Technologie-Fingerprinting (CMS, WAF, Frameworks) |
dnstwist_scan | Domain-Permutations- und Typosquatting-Erkennung |
| Tool | Beschreibung |
|---|
sqlmap_scan | Automatisierte SQL-Injection-Erkennung und -Ausnutzung |
xss_scan | XSS-Erkennung mittels Dalfox |
commix_scan | Automatisierte Command-Injection-Erkennung und -Ausnutzung |
crlfuzz_scan | CRLF-Injection-Fuzzing für Header-Injection-Schwachstellen |
graphql_security_check | GraphQL-Introspection, Batching, Tiefenbeschränkung, Feldvorschläge |
arjun_discover | Versteckte HTTP-Parameter-Erkennung |
| Tool | Beschreibung |
|---|
msf_search | Metasploit-Module durchsuchen |
msf_module_info | Detaillierte Metasploit-Modulinformationen abrufen |
msf_run_module | Ein Metasploit-Modul ausführen (erfordert explizite Bestätigung) |
msf_sessions_list | Aktive Metasploit-Sitzungen auflisten |
msf_session_cmd | Einen Befehl auf einer aktiven Sitzung ausführen (Shell/Meterpreter) |
searchsploit_query | Exploit-DB-Offline-Datenbank durchsuchen |
hash_crack| Wörterbuch-Hash-Knacken (Hashcat / John the Ripper) |
hash_identify | Hash-Typ-Identifizierung |
cewl_generate | Benutzerdefinierte Wortlistengenerierung von einer Zielwebsite |
| Tool | Beschreibung |
|---|
enum4linux_scan | SMB/NetBIOS-Enumeration |
nxc_enum | Active-Directory-Enumeration über NetExec |
impacket_kerberoast | Kerberoasting mit Impacket GetUserSPNs |
impacket_secretsdump | Fern-SAM/LSA/NTDS-Geheimnis-Dump über Impacket |
impacket_psexec | Fernbefehlsausführung über SMB (PsExec-Stil) |
impacket_wmiexec | Fernbefehlsausführung über WMI |
impacket_smbclient | SMB-Freigabe-Enumeration und Dateizugriff |
bloodhound_collect | BloodHound AD-Datenerfassung (SharpHound/bloodhound-python) |
responder_capture | LLMNR/NBT-NS/MDNS-Poisoning zur Anmeldedatenerfassung |
smbmap_scan | SMB-Freigabe-Enumeration und Zugriffstests |
| Tool | Beschreibung |
|---|
tor_check | Tor-Verbindung und Exit-Node-IP überprüfen |
tor_new_identity | Neuen Tor-Circuit anfordern (NEWNYM) |
check_anonymity | Freigegebene IP, DNS-Lecks und Anonymitätsstufe prüfen |
proxy_check | Proxy-Latenz, Exit-IP und Anonymitätstyp validieren |
rotate_identity | Tor-Circuit und User-Agent gleichzeitig rotieren |
| Tool | Beschreibung |
|---|
check_tools | Überprüfen, welche externen Tools installiert sind |
validate_target | Ziel gegen Whitelist validieren |
correlate_findings | Ergebnisse über mehrere Scans hinweg korrelieren |
score_risk | CVSS-basierte Risikobewertung |
cve_lookup | CVE-Details von NVD (CVSS, CWE, betroffene Produkte) |
cve_search | CVEs nach Schlüsselwort, Produkt oder Schweregrad suchen |
generate_report | Pentest-Bericht in Markdown/HTML/PDF erstellen |