Agente autônomo de teste de penetração com IA que orquestra reconhecimento multiagente, exploração, pós-exploração e geração de relatórios com estado de engajamento persistente.
Agente de teste de penetração com IA no seu terminal.
Arquitetura multiagente • Rastreamento de estado do engajamento • Mais de 20 provedores de LLM
O PentestCode é um agente autônomo de pentest para o seu terminal. Aponte-o para um alvo e ele executa as ferramentas, lê a saída, atualiza sua visão da rede e decide o que fazer em seguida — como um operador faria. Um fork rígido do OpenCode (MIT), despojado do foco em edição de código e reconstruído para segurança ofensiva.
Beta — ele se sustenta em engajamentos reais e CTFs, mas espere arestas ásperas. Abra uma issue quando algo quebrar; é isso que o torna melhor.
Uma instrução de entrada, uma cadeia de ataque completa de saída:
you: "pentest 10.10.10.5, goal is domain admin"
| Estágio | O que o agente faz |
|---|---|
| Scan | nmap -sS -p- encontra 7 portas abertas e faz o parse do XML direto para o estado do engajamento |
| Recognize | Portas 88 + 389 → Controlador de Domínio. Dispara três enumeradores em paralelo (SMB, LDAP, HTTP) |
| Enumerate | Sessão SMB nula → compartilhamento gravável. LDAP → lista de usuários. Gobuster → diretórios web |
| Attack | AS-REP roast → hash quebrável → primeira credencial válida |
| Spray | Essa credencial é pulverizada por SMB, WinRM, LDAP e RDP em todos os hosts conhecidos |
| Exploit | Foothold via WinRM → agente de pós-exploração extrai SAM / LSA / DPAPI |
| Result | Hash de administrador de domínio em mãos — cada passo registrado com sua cadeia de evidências |
É metódico onde as pessoas ficam preguiçosas: ele pulveriza cada credencial contra cada serviço em cada host, e não esquece de verificar as coisas. Tudo o que ele aprende vai para um estado estruturado que você pode consultar durante a execução com /status, /vulns ou /creds.
npm install -g pentestcode-ai
# via curl
curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
Um único binário autocontido — sem Bun, Node ou runtime para instalar. Linux e macOS, x64 e arm64.
Arch Linux (AUR):
paru -S pentestcode-bin
Fixar versão:
PENTESTCODE_VERSION=0.1.7 curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
Diretório personalizado:
PENTESTCODE_INSTALL=/usr/local/bin curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
A partir do código-fonte:
bun install
bun run build --single --skip-embed-web-ui
# binary at packages/opencode/dist/pentestcode-<os>-<arch>/bin/pentestcode
pentestcode auth login # connect your LLM provider
pentestcode # interactive session
pentestcode --prompt "scan 10.10.10.0/24 and enumerate all services" # one-shot
Funciona com mais de 20 provedores através do ai-sdk — Anthropic, OpenAI, Google, Azure, AWS Bedrock, Ollama e mais.
Duas coisas separam o PentestCode de um prompt de pentester colado em uma janela de chat: uma equipe de agentes e uma memória que eles compartilham.
O design segue o modelo estrategista-coordenador da pesquisa HPTSA — uma melhoria de 4,3× sobre um único agente:
┌─────────────┐
│ pentest │ strategist / coordinator
│ (lead) │ plans, dispatches, tracks state
└──────┬──────┘
┌───────┬───────┼───────┬───────┐
▼ ▼ ▼ ▼ ▼
┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐
│recon ││scan- ││explo-││iden- ││post- │
│ ││ner ││iter ││tity ││explo │ ... + 7 more
└──────┘└──────┘└──────┘└──────┘└──────┘
O agente líder (pentest) divide o engajamento em tarefas e despacha subagentes especialistas em paralelo — cada um com seu próprio prompt de sistema, permissões de ferramentas e conhecimento de domínio. 13 agentes no total: recon, scanner, enumerator, exploiter, identity (AD/Kerberos), infrastructure (SNMP/IPMI/bancos de dados), webapp (OWASP Top 10), post-exploit, exploit-dev, critic (verificador de falsos positivos), reporter, além de agentes ocultos para compressão de contexto e gerenciamento de sessão.
Quando o scanner encontra uma porta, o enumerador a vê instantaneamente — porque cada agente lê e escreve em um único estado de engajamento estruturado:
O estado sobrevive à sessão: feche o terminal, volte amanhã, e o agente retoma de onde parou. Ao lado dele, um findings.md legível por humanos registra cada vulnerabilidade, credencial e ganho de acesso com timestamps — faça tail -f nele para acompanhar o engajamento se desenrolar.
18 ferramentas de pentest integradas além do bash. Ferramentas de parser são obrigatórias: após executar o nmap, o agente deve canalizar a saída através de nmap_parse em vez de fazer grep no XML manualmente, para que cada descoberta chegue ao estado do engajamento.