
Servidor MCP de testes de penetração com IA
"Na mitologia japonesa, o Tengu é um espírito feroz da montanha — mestre estrategista, guerreiro e treinador de samurais. Em cibersegurança, ele guia você por cada fase da caça."
Do reconhecimento ao relatório — pentest assistido por IA em um único comando.
Tengu é um servidor MCP que transforma o Claude em um copiloto de teste de penetração. Ele orquestra 80 ferramentas de segurança — do Nmap ao Metasploit — com controles de segurança integrados, registro de auditoria e relatórios profissionais.
Use o Claude como um copiloto interativo de pentest — você direciona o engajamento, Claude escolhe as ferramentas certas e as encadeia automaticamente.
git clone https://github.com/rfunix/tengu.git && cd tengu make docker-build make docker-up
Conecte o Claude Code ao servidor em execução:```bash
claude mcp add --transport sse tengu http://localhost:8000/sse
Then ask Claude: Do a full pentest on http://192.168.1.100
Claude chains tools automatically: validate_target → whatweb → nmap → nikto →
nuclei → sqlmap → correlate_findings → generate_report
| Comando | O que inicia |
|---|
Escaneie alvos personalizados sem editar arquivos:```bash TENGU_ALLOWED_HOSTS="192.168.1.0/24,10.0.0.0/8" make docker-up
### Categorias de Imagens
Escolha o tamanho certo para o seu caso de uso:
| Categoria | Tamanho | MCP Tools | Caso de uso |
|------|------|-----------|----------|
| `minimal` | ~480MB | 17 | Análise leve, pesquisa de CVEs, relatórios |
| `core` | ~7GB | 47 | Kit de pentest completo (padrão) |
| `full` | ~8GB | 80 | Tudo + 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
Todos os níveis incluem todos os 35 prompts e 20 recursos — apenas as ferramentas binárias diferem.
Pré-requisitos: Python 3.12+, uv, Kali Linux (recomendado)```bash
git clone https://github.com/rfunix/tengu.git && cd tengu
uv sync
make install-tools
uv run tengu
Conecte Claude Code:```bash
claude mcp add --scope user tengu -- uv run --directory /path/to/tengu tengu
Configure alvos permitidos em tengu.toml:```toml
[targets]
allowed_hosts = ["192.168.1.0/24", "example.com"]
Para o Claude Desktop, configuração remota VM/SSE e configurações avançadas, consulte [docs/deployment-guide.md](https://github.com/rfunix/tengu/blob/HEAD/docs/deployment-guide.md).
</details>
### Referência de Configuração```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 | Servidor Tengu MCP (:8000) |
make docker-lab | + Juice Shop, DVWA (alvos seguros para prática) |
make docker-pentest | + Metasploit, OWASP ZAP (alvos do mundo real) |
make docker-full | + Metasploit, ZAP e alvos de laboratório |
Consulte docs/configuration-reference.md para a referência completa.
Execute um pentest totalmente autônomo sem invocação manual de ferramentas. O agente usa Claude como seu cérebro estratégico e Tengu como seu conjunto de ferramentas de execução, seguindo a metodologia PTES desde a recon até o relatório.
cp .env.example .env
**Alvos de laboratório (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
Pentestes reais (Tengu + MSF + ZAP, sem contêineres de laboratório):```bash make docker-pentest make docker-agent
**Ver relatórios no navegador:**```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
Sem 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
**Controle de custo** — três variáveis de ambiente / flags de CLI:
| Flag | Variável de ambiente | Padrão |
|---|---|---|
| `--model` | `TENGU_AGENT_MODEL` | `claude-sonnet-4-6` |
| `--max-tokens` | `TENGU_AGENT_MAX_TOKENS` | `2048` |
| `--timeout` | `TENGU_AGENT_TIMEOUT` | `60` (minutos, `0`=ilimitado) |
### Como Funciona```
START → initializer → strategist ─┬─→ executor → analyst ─┬─→ strategist (loop)
│ └─→ reporter → END
├─→ human_gate → executor
└─→ reporter → END
Comportamentos principais:
msf_run_module, hydra_attack, impacket_kerberoast, sqlmap_scan com nível≥3)--max-iterations seja atingidocorrelate_findings + score_risk + generate_report| Fase | Nome | O que o Tengu faz | Ferramentas principais |
|---|---|---|---|
| 1 | Pré-Engajamento | validate_target confirma escopo, check_tools verifica prontidão | validate_target, check_tools |
| 2 | Coleta de Inteligência | OSINT, reconhecimento de DNS, enumeração de subdomínios, fingerprinting de tecnologia | nmap, subfinder, amass, shodan, whatweb |
| 3 | Modelagem de Ameaças | Claude analisa a inteligência coletada, prioriza superfície de ataque, constrói cenários de ameaça | (orientado por IA — nenhuma ferramenta externa) |
| 4 | Análise de Vulnerabilidades | Varredura de templates, teste de aplicações web, análise SSL/TLS, fuzzing de parâmetros | nuclei, nikto, ffuf, sqlmap, testssl |
| 5 | Exploração | Exploração controlada de vulnerabilidades confirmadas com humano no ciclo | msf_run_module, sqlmap, hydra, searchsploit |
| 6 | Pós-Exploração | Coleta de credenciais, avaliação de movimento lateral, escalação de privilégio | impacket_kerberoast, nxc_enum, enum4linux |
| 7 | Relatório | Correlacionar todas as descobertas, calcular pontuações de risco, gerar relatório profissional | correlate_findings, score_risk, generate_report |
minimal(17 ferramentas, ~480MB) ·core(47 ferramentas, ~7GB, padrão) ·full(80 ferramentas, ~8GB) Compilar com:TENGU_TIER=<tier> make docker-build. Todos os tiers incluem todos os 35 prompts e 20 recursos.
| Categoria | Ferramentas | Contagem |
|---|---|---|
| Reconhecimento | Nmap, Masscan, Amass, Subfinder, Gowitness, HTTrack, Katana, httpx, SNMPwalk, RustScan | 10 |
| Varredura Web | Nikto, Nuclei, FFUF, Gobuster, WPScan, Feroxbuster, OWASP ZAP, wafw00f | 8 |
| SSL / TLS | sslyze, testssl.sh, análise de cabeçalhos HTTP, testador CORS | 4 |
| DNS | DNS Enumerate, DNSRecon, Subjack, WHOIS | 4 |
| OSINT | theHarvester, Shodan, WhatWeb, DNStwist | 4 |
| Teste de Injeção | SQLMap, Dalfox (XSS), Commix, CRLFuzz, GraphQL Security Check, Arjun | 6 |
| Força Bruta | Hydra, John the Ripper, Hashcat, CeWL | 4 |
| Exploração | Metasploit (search, info, run, sessions, cmd), SearchSploit | 6 |
| Engenharia Social | SET credential harvester, ataque de código QR, gerador de payload | 3 |
| Segredos & Código | TruffleHog, Gitleaks | 2 |
| Contêiner & Nuvem | Trivy, Checkov, ScoutSuite, Prowler | 4 |
| Active Directory | NetExec, Enum4linux, Impacket (Kerberoast, secretsdump, psexec, wmiexec, smbclient), BloodHound, Responder, SMBMap | 10 |
| Sem Fio | aircrack-ng / airodump-ng | 1 |
| Anonimato & Furtividade | Verificar/rotacionar Tor, verificar proxy, rotacionar identidade | 5 |
| Análise & Relatório | Correlação de descobertas, pontuação de risco CVSS, geração de relatório | 3 |
| Inteligência de CVEs | Consulta de CVE (NVD), pesquisa de CVE por palavra-chave/produto/severidade | 2 |
| Utilidade | Verificador de ferramenta, validador de alvo | 2 |
| Ferramenta | Descrição |
|---|---|
nmap_scan | Varredura de portas e detecção de serviços/SO |
masscan_scan | Scanner de portas de alta velocidade para redes grandes |
subfinder_enum | Enumeração passiva de subdomínios |
amass_enum | Mapeamento de superfície de ataque e força bruta de DNS |
dnsrecon_scan | Reconhecimento de DNS (transferência de zona, força bruta, PTR) |
dns_enumerate | Enumeração de registros DNS (A, MX, NS, TXT, SOA…) |
whois_lookup | Consulta WHOIS de domínio e IP |
subjack_check | Detecção de takeover de subdomínio |
gowitness_screenshot | Captura de tela da web para documentação |
httrack_mirror | Espelhamento completo do site para análise offline e perícia |
katana_crawl | Rastreador web rápido para descoberta de links e mapeamento de endpoints |
httpx_probe | Sonda HTTP — códigos de status, pilha de tecnologia, redirecionamentos |
snmpwalk_scan | Enumeração SNMP e caminhada MIB |
rustscan_scan | Varredura de portas ultra-rápida (encontra portas abertas para acompanhamento do Nmap) |
| Ferramenta | Descrição |
|---|---|
theharvester_scan | Enumeração de e-mail, subdomínio e host a partir de fontes públicas |
| Ferramenta | Descrição |
|---|---|
set_credential_harvester | Clonar um site e capturar credenciais submetidas (simulações de phishing autorizadas) |
set_qrcode_attack | Gerar código QR apontando para uma URL para avaliações físicas de engenharia social |
set_payload_generator | Gerar payloads de engenharia social (PowerShell, HTA) para campanhas autorizadas |
| Ferramenta | Descrição |
|---|---|
hydra_attack | Força bruta de login em rede (SSH, FTP, HTTP, SMB…) |
| Ferramenta | Descrição |
|---|---|
zap_spider | Spider web do OWASP ZAP |
zap_active_scan | Varredura ativa de vulnerabilidades do OWASP ZAP |
zap_get_alerts | Recuperar descobertas da varredura do ZAP |
| Ferramenta | Descrição |
|---|---|
trufflehog_scan | Detecção de segredos vazados em repositórios git |
gitleaks_scan | Varredura de credenciais no histórico do git |
| Ferramenta | Descrição |
|---|---|
trivy_scan | Varredura de vulnerabilidades para imagens Docker, IaC e SBOM |
| Ferramenta | Descrição |
|---|---|
scoutsuite_scan | Auditoria de segurança em nuvem (AWS, Azure, GCP) |
prowler_scan | Auditoria de melhores práticas e conformidade de segurança AWS/GCP/Azure |
| Ferramenta | Descrição |
|---|---|
aircrack_scan | Varredura passiva de redes sem fio (airodump-ng) |
| Ferramenta | Descrição |
|---|---|
checkov_scan | Varredura de configuração incorreta de IaC (Terraform, K8s, Dockerfile) |
Modelos de fluxo de trabalho pré-construídos que guiam Claude em engajamentos completos.
| Categoria | Prompts |
|---|---|
| Fluxos de pentest | full_pentest, quick_recon, web_app_assessment |
| Avaliação de vulnerabilidades | assess_injection, assess_access_control, assess_crypto, assess_misconfig |
| OSINT | osint_investigation |
| Relatórios | executive_report, technical_report, full_pentest_report, finding_detail, risk_matrix, remediation_plan, retest_report, save_report |
| Furtividade/OPSEC | stealth_assessment, opsec_checklist |
| Especializados | ad_assessment, api_security_assessment, container_assessment, cloud_assessment, wireless_assessment, bug_bounty_workflow, compliance_assessment |
| Ações rápidas | explore_url, map_network, hunt_subdomains, find_vulns, find_secrets, go_stealth, crack_wifi, pwn_target, msf_exploit_workflow |
| Engenharia Social | social_engineering_assessment |
Dados de referência estáticos carregados pelo Claude durante os engajamentos.
| URI | Conteúdo |
|---|---|
owasp://top10/2025 | Lista completa do OWASP Top 10:2025 |
owasp://top10/2025/{A01..A10} | Detalhes por categoria + checklist de teste |
owasp://api-security/top10 | OWASP API Security Top 10 (2023) |
owasp://api-security/top10/{API1..API10} | Detalhes por categoria |
ptes://phases | Visão geral da metodologia PTES de 7 fases |
ptes://phase/{1..7} | Detalhes da fase (objetivos, ferramentas, entregáveis) |
checklist://web-application | Checklist de pentest de aplicação web (OWASP Testing Guide) |
checklist://api | Checklist de pentest de API |
checklist://network | Checklist de infraestrutura de rede |
mitre://attack/tactics | Táticas + técnicas do MITRE ATT&CK Enterprise |
mitre://attack/technique/{T1xxx} | Detalhe da técnica por ID |
creds://defaults/{product} | Banco de dados de credenciais padrão |
payloads://{type} | Listas de payloads selecionados por tipo (xss, sqli, lfi, ssti, etc.) |
stealth://techniques | Guia de referência para técnicas de segurança operacional |
stealth://proxy-guide | Guia passo a passo de configuração de proxy e Tor |
tools://catalog | Status de disponibilidade de ferramentas ao vivo |
tools://{tool}/usage | Guia de uso para nmap, nuclei, sqlmap, metasploit, trivy, amass |
prompts://list | Lista de todos os prompts disponíveis com descrições |
prompts://category/{category} | Prompts filtrados por categoria |
┌─────────────┐ 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 └──────────────────┘
---
## Arquivos de Configuração
O Tengu usa três arquivos de configuração. Editar o arquivo errado é a fonte mais comum de confusão ao alternar entre fluxos de trabalho local e Docker.
| Arquivo | Quando usar | O que controla |
|---------|-------------|----------------|
| `tengu.toml` (raiz) | Executando localmente: `uv run tengu`, `uv run python autonomous_tengu.py` | Config do servidor MCP: `allowed_hosts`, caminhos das ferramentas, limites de taxa, furtividade |
| `docker/tengu.toml` | Executando via Docker: `make docker-up`, `make docker-agent` | Mesmas configurações da raiz, mas pré-configurado para rede Docker (`172.16.0.0/12`, aliases de DNS de serviço). Incorporado na imagem durante a construção — **reconstrução necessária** após alterações (`make docker-rebuild-tengu`) |
| `.env` | Tanto local quanto Docker | Segredos e variáveis de tempo de execução: `ANTHROPIC_API_KEY`, `TENGU_AGENT_TARGET`, `TENGU_AGENT_MODEL`, `TENGU_AGENT_MAX_TOKENS`, etc. Lido por `docker compose` e `load_dotenv()` |
| `.env.example` | Apenas referência | Modelo listando todas as variáveis de ambiente disponíveis |
**Configuração rápida para modo copiloto (local):** edite `tengu.toml` na raiz do projeto — adicione seu alvo em `[targets] allowed_hosts`.
**Configuração rápida para modo agente (Docker):** edite `docker/tengu.toml`, então execute `make docker-rebuild-tengu` antes de `make docker-agent`.
> **Armadilha comum:** se as varreduras falharem com `TargetNotAllowedError` dentro do Docker, provavelmente você editou `tengu.toml` (raiz) em vez de `docker/tengu.toml`. O Docker usa sua própria cópia incorporada na imagem. Após editar, execute `make docker-rebuild-tengu`.
---
## Segurança por Projeto
O Tengu foi construído como um **multiplicador de força para testadores de penetração humanos**, não como uma ferramenta de ataque autônoma.
| Controle | Descrição |
|----------|-----------|
| **Lista de permissão de alvos** | Apenas alvos pré-aprovados em `tengu.toml` são escaneados |
| **Sanitização de entrada** | Todas as entradas são validadas contra padrões rigorosos antes de atingir qualquer ferramenta |
| **Limitação de taxa** | Janela deslizante + limites de slot simultâneos impedem DoS acidental |
| **Registro de auditoria** | Cada invocação de ferramenta registrada em `./logs/tengu-audit.log` no formato JSON |
| **Humano no circuito** | `msf_run_module`, `hydra_attack` e `impacket_kerberoast` exigem confirmação explícita |
| **Sem shell=True — nunca** | Todas as chamadas de subprocesso usam `asyncio.create_subprocess_exec` |
---
## Desenvolvimento```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 tem mais de 2643+ testes cobrindo lógica unitária, segurança (injeção de comandos, validação de entrada) e cenários de integração. Consulte CLAUDE.md para o guia completo do contribuidor.
Tengu foi projetado apenas para testes de segurança autorizados. Escaneie apenas sistemas que você possui ou para os quais tenha permissão explícita por escrito para testar. Escaneamento não autorizado é ilegal na maioria das jurisdições. Os autores não aceitam responsabilidade por uso indevido.
| Ferramenta | Descrição |
|---|
nuclei_scan | Scanner de vulnerabilidades baseado em templates (CVEs, configurações incorretas) |
nikto_scan | Scanner de configuração incorreta de servidor web e software desatualizado |
ffuf_fuzz | Fuzzing de diretório, parâmetro e vhost |
gobuster_scan | Força bruta de diretório, DNS e vhost |
wpscan_scan | Scanner de vulnerabilidades do WordPress |
testssl_check | Análise abrangente de configuração SSL/TLS |
analyze_headers | Análise e classificação de cabeçalhos de segurança HTTP |
test_cors | Detecção de configuração incorreta de CORS |
ssl_tls_check | Verificação de certificado e cifra SSL/TLS (sslyze) |
wafw00f_scan | Detecção e fingerprinting de Firewall de Aplicação Web |
feroxbuster_scan | Descoberta rápida e recursiva de conteúdo via força bruta |
shodan_lookup | Pesquisa de host e ativo no Shodan |
whatweb_scan | Fingerprinting de tecnologia web (CMS, WAF, frameworks) |
dnstwist_scan | Detecção de permutação de domínio e typosquatting |
| Ferramenta | Descrição |
|---|
sqlmap_scan | Detecção e exploração automatizada de injeção SQL |
xss_scan | Detecção de XSS via Dalfox |
commix_scan | Detecção e exploração automatizada de injeção de comando |
crlfuzz_scan | Fuzzing de injeção CRLF para vulnerabilidades de injeção de cabeçalho |
graphql_security_check | Introspecção GraphQL, batching, limite de profundidade, sugestões de campo |
arjun_discover | Descoberta de parâmetros HTTP ocultos |
| Ferramenta | Descrição |
|---|
msf_search | Pesquisar módulos do Metasploit |
msf_module_info | Obter informações detalhadas do módulo Metasploit |
msf_run_module | Executar um módulo Metasploit (requer confirmação explícita) |
msf_sessions_list | Listar sessões ativas do Metasploit |
msf_session_cmd | Executar um comando em uma sessão ativa (shell/Meterpreter) |
searchsploit_query | Pesquisar banco de dados offline do Exploit-DB |
hash_crack |
| Quebra de hash por dicionário (Hashcat / John the Ripper) |
hash_identify | Identificação de tipo de hash |
cewl_generate | Geração de wordlist personalizada a partir de um site alvo |
| Ferramenta | Descrição |
|---|
enum4linux_scan | Enumeração SMB/NetBIOS |
nxc_enum | Enumeração de Active Directory via NetExec |
impacket_kerberoast | Kerberoasting com Impacket GetUserSPNs |
impacket_secretsdump | Despejo remoto de segredos SAM/LSA/NTDS via Impacket |
impacket_psexec | Execução remota de comandos via SMB (estilo PsExec) |
impacket_wmiexec | Execução remota de comandos via WMI |
impacket_smbclient | Enumeração de compartilhamentos SMB e acesso a arquivos |
bloodhound_collect | Coleta de dados AD do BloodHound (SharpHound/bloodhound-python) |
responder_capture | Envenenamento LLMNR/NBT-NS/MDNS para captura de credenciais |
smbmap_scan | Enumeração de compartilhamentos SMB e teste de acesso |
| Ferramenta | Descrição |
|---|
tor_check | Verificar conectividade Tor e IP do nó de saída |
tor_new_identity | Solicitar novo circuito Tor (NEWNYM) |
check_anonymity | Verificar IP exposto, vazamentos de DNS e nível de anonimato |
proxy_check | Validar latência do proxy, IP de saída e tipo de anonimato |
rotate_identity | Rotacionar circuito Tor e User-Agent simultaneamente |
| Ferramenta | Descrição |
|---|
check_tools | Verificar quais ferramentas externas estão instaladas |
validate_target | Validar alvo contra lista de permissões |
correlate_findings | Correlacionar descobertas entre múltiplas varreduras |
score_risk | Pontuação de risco baseada em CVSS |
cve_lookup | Detalhes de CVE do NVD (CVSS, CWE, produtos afetados) |
cve_search | Pesquisar CVEs por palavra-chave, produto ou severidade |
generate_report | Gerar relatório de pentest em Markdown/HTML/PDF |