Agente autónomo de pruebas de penetración con IA que orquesta el reconocimiento, la explotación, la post-explotación y la generación de informes multiagente, con un estado de compromiso persistente.
Agente de pentesting con IA en tu terminal.
Arquitectura multiagente • Seguimiento del estado de la operación • Más de 20 proveedores de LLM
PentestCode es un agente de pentesting autónomo para tu terminal. Apúntalo a un objetivo y ejecuta las herramientas, lee la salida, actualiza su imagen de la red y decide qué hacer a continuación — igual que haría un operador. Un hard fork de OpenCode (MIT), despojado del enfoque de edición de código y reconstruido para la seguridad ofensiva.
Beta — aguanta en operaciones reales y CTFs, pero espera asperezas. Abre un issue cuando algo falle; eso es lo que lo hace mejor.
Una instrucción dentro, una cadena de ataque completa fuera:
you: "pentest 10.10.10.5, goal is domain admin"
| Etapa | Qué hace el agente |
|---|---|
| Escaneo | nmap -sS -p- encuentra 7 puertos abiertos y parsea el XML directamente al estado de la operación |
| Reconocimiento | Puertos 88 + 389 → Controlador de dominio. Despliega tres enumeradores en paralelo (SMB, LDAP, HTTP) |
| Enumeración | Sesión SMB nula → recurso compartido con escritura. LDAP → lista de usuarios. Gobuster → directorios web |
| Ataque | AS-REP roast → hash crackeable → primera credencial válida |
| Spray | Esa credencial probada contra SMB, WinRM, LDAP y RDP en cada host conocido |
| Explotación | Punto de apoyo en WinRM → el agente de post-explotación vuelca SAM / LSA / DPAPI |
| Resultado | Hash de admin de dominio en mano — cada paso registrado con su cadena de evidencia |
Es metódico donde la gente se vuelve perezosa: prueba cada credencial contra cada servicio en cada host, y no se olvida de comprobar las cosas. Todo lo que aprende acaba en un estado estructurado que puedes consultar a mitad de ejecución con /status, /vulns o /creds.
npm install -g pentestcode-ai
# via curl
curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
Un único binario autocontenido — sin Bun, Node ni runtime que instalar. Linux y macOS, x64 y arm64.
Fijar versión:
PENTESTCODE_VERSION=0.1.7 curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
Directorio personalizado:
PENTESTCODE_INSTALL=/usr/local/bin curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
Desde el código fuente:
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 con más de 20 proveedores a través de ai-sdk — Anthropic, OpenAI, Google, Azure, AWS Bedrock, Ollama y más.
Dos cosas separan a PentestCode de un prompt de pentester pegado en una ventana de chat: un equipo de agentes y una memoria que comparten.
El diseño sigue el modelo estratega-coordinador de la investigación HPTSA — una mejora de 4.3× con respecto a un agente único:
┌─────────────┐
│ pentest │ strategist / coordinator
│ (lead) │ plans, dispatches, tracks state
└──────┬──────┘
┌───────┬───────┼───────┬───────┐
▼ ▼ ▼ ▼ ▼
┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐
│recon ││scan- ││explo-││iden- ││post- │
│ ││ner ││iter ││tity ││explo │ ... + 7 more
└──────┘└──────┘└──────┘└──────┘└──────┘
El agente principal (pentest) divide la operación en tareas y despacha subagentes especialistas en paralelo — cada uno con su propio system prompt, permisos de herramientas y conocimiento de dominio. 13 agentes en total: recon, scanner, enumerator, exploiter, identity (AD/Kerberos), infrastructure (SNMP/IPMI/bases de datos), webapp (OWASP Top 10), post-exploit, exploit-dev, critic (verificador de falsos positivos), reporter, más agentes ocultos para la compresión de contexto y la gestión de sesiones.
Cuando el scanner encuentra un puerto, el enumerator lo ve al instante — porque cada agente lee y escribe en un único estado de la operación estructurado:
El estado sobrevive a la sesión: cierra la terminal, vuelve mañana y el agente se reanuda donde se detuvo. A su lado, un findings.md legible por humanos registra cada vulnerabilidad, credencial y obtención de acceso con marcas de tiempo — haz tail -f para ver cómo se desarrolla la operación.
18 herramientas de pentest integradas además de bash. Las herramientas de parseo son obligatorias: después de ejecutar nmap, el agente debe pasar la salida por nmap_parse en lugar de hacer grep del XML a mano, para que cada hallazgo llegue al estado de la operación.