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 • 20+ provedores de LLM
O PentestCode é um agente de pentest autônomo para o seu terminal. Aponte 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 — da mesma forma que um operador faria. Um hard fork do OpenCode (MIT), sem o 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 por lixar. Abra uma issue quando algo quebrar; é isso que o torna melhor.
Uma instrução entra, uma cadeia de ataque completa sai:
you: "pentest 10.10.10.5, goal is domain admin"
| Estágio | O que o agente faz |
|---|---|
| Escaneamento | nmap -sS -p- encontra 7 portas abertas e analisa o XML direto para o estado do engajamento |
| Reconhecimento | Portas 88 + 389 → Domain Controller. Dispara três enumeradores em paralelo (SMB, LDAP, HTTP) |
| Enumeração | Sessão SMB nula → compartilhamento gravável. LDAP → lista de usuários. Gobuster → diretórios web |
| Ataque | AS-REP roast → hash quebrável → primeira credencial válida |
| Spray | Essa credencial é pulverizada em SMB, WinRM, LDAP e RDP em todos os hosts conhecidos |
| Exploração | Foothold via WinRM → agente de pós-exploração extrai SAM / LSA / DPAPI |
| Resultado | Hash de admin de domínio em mãos — cada passo registrado com sua cadeia de evidências |
Ele é metódico onde as pessoas ficam preguiçosas: faz spray de todas as credenciais contra todos os serviços em todos os hosts, e não se 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 autossuficiente — sem Bun, Node ou runtime para instalar. Linux e macOS, x64 e arm64.
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 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 compartilhada.
O design segue o modelo estrategista-coordenador da pesquisa HPTSA — uma melhoria de 4,3× em relação a 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/databases), 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 enumerator 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 carimbos de data/hora — use tail -f para assistir ao engajamento se desenrolar.
18 ferramentas de pentest integradas além do bash. As ferramentas de parser são obrigatórias: após executar o nmap, o agente deve canalizar a saída pelo nmap_parse em vez de fazer grep no XML manualmente, para que cada descoberta chegue ao estado do engajamento.