
Marco de trabajo agéntico de pruebas de penetración automatizadas potenciado por modelos de lenguaje grandes
[![Contributors][contributors-shield]][contributors-url] [![Forks][forks-shield]][forks-url] [![Stargazers][stars-shield]][stars-url] [![Issues][issues-shield]][issues-url] [![MIT License][license-shield]][license-url] [![Discord][discord-shield]][discord-url]
Agente Autónomo de Pruebas de Penetración Impulsado por IA
Publicado en USENIX Security 2024
Sitio web oficial: pentestgpt.com »
Artículo de Investigación
·
Reportar error
·
Solicitar funcionalidad
El pipeline autónomo de CTF es conectable por backend para Claude Code y Codex. El modo interactivo legado modernizado (
pentestgpt-legacy) soporta un conjunto más amplio de proveedores: OpenAI, Anthropic, Google Gemini, DeepSeek, xAI, Qwen, Moonshot y Ollama local. Ver Modo Interactivo Multi-LLM.
claude) - instalado y autenticado para ejecuciones locales de Claude. Ver documentación de Claude Codecodex) - instalado y autenticado para ejecuciones locales de Codex. El flujo de Docker a continuación incluye ambas CLIs.git clone https://github.com/GreyDGL/PentestGPT.git
cd PentestGPT
make install # ejecuta uv sync
| Comando | Descripción |
|---|---|
make install | Instalar dependencias |
make test | Ejecutar todas las pruebas |
make check | Ejecutar lint + typecheck |
make build | Construir paquete distribuible |
# Ejecutar contra un objetivo (modo CTF por defecto)
pentestgpt --target 10.10.11.234
# Con contexto del desafío
pentestgpt --target 10.10.11.50 --instruction "Sitio WordPress, enfócate en vulnerabilidades de plugins"
# Modo prueba de penetración (descubrimiento de activos → vulnerabilidades → informe)
pentestgpt --target 10.10.11.234 --mode pentest
# Listar sesiones guardadas previamente
pentestgpt --list-sessions
El agente trabaja a través de un pipeline de múltiples etapas, alimentando los hallazgos de cada etapa a la siguiente — recon → exploit → walkthrough para CTF, descubrimiento de activos → identificación de vulnerabilidades → informe para pentest.
Una imagen autocontenida incluye la herramienta + las CLIs de Claude Code y Codex. Inicias sesión una vez y las sesiones persisten en volúmenes con nombre — sin necesidad de reiniciar sesión en ejecuciones posteriores.
make docker-build # construir la imagen de la herramienta
make docker-login # ÚNICA VEZ, idempotente: verifica inicios de sesión, solo inicia sesión en lo que falta
make docker-auth-status # verificar que ambos estén autenticados (ROUNDTRIP=1 para verificación en vivo con 1 token)
# Ejecutar el pipeline contra un objetivo (cualquier backend / modelo / modo):
make docker-run TARGET=http://127.0.0.1:8000 BACKEND=codex MODEL=gpt-5.5 MODE=ctf
make docker-run TARGET=10.10.11.234 BACKEND=claude MODEL=opus MODE=pentest
make docker-login inicia sesión en Claude (setup-token → token almacenado en el volumen) y Codex (su
propio codex login dentro del contenedor, reenvío de OAuth callback via socat — no precargado, ya que los tokens de actualización de ChatGPT son de un solo uso). Es idempotente: al volver a ejecutarlo omite lo que aún sea válido. Los inicios de sesión persisten entre recreaciones de contenedores; make docker-down los mantiene, make docker-nuke elimina los volúmenes de inicio de sesión (para forzar un nuevo inicio de sesión / rotar un token). Diseño + detalles: docs/docker-dev-plan.md.
El clásico PentestGPT con intervención humana del artículo de USENIX 2024 se conserva y
moderniza como pentestgpt-legacy. Ejecuta tres sesiones LLM cooperativas —
razonamiento / generación / análisis — que mantienen un Árbol de Tareas de Pentesting (PTT) mientras
tú diriges la sesión interactivamente (next, more, todo, discuss). El pipeline autónomo de etapas fijas
soporta backends Claude y Codex; este modo legado se comunica nativamente con muchos proveedores
a través de sus SDK oficiales.
Establece una clave API para cualquier proveedor que quieras usar (en tu entorno o archivo .env — ver
.env.example). Solo los proveedores que configures estarán habilitados.
OPENAI_API_KEY=... ANTHROPIC_API_KEY=... GEMINI_API_KEY=... # o GOOGLE_API_KEY
DEEPSEEK_API_KEY=... GROK_API_KEY=... QWEN_API_KEY=... KIMI_API_KEY=...
# Seleccionar automáticamente los mejores modelos disponibles para cada sesión
pentestgpt-legacy
# Elegir modelos por sesión
pentestgpt-legacy --reasoning-model claude-opus-4-8 --parsing-model gemini-3.5-flash
# Modelo local via Ollama (compatible con OpenAI)
pentestgpt-legacy --reasoning-model ollama:qwen3 --base-url http://localhost:11434/v1
# Listar todos los modelos soportados (muestra qué proveedores están configurados)
pentestgpt-legacy --list-models
# Prueba de ida y vuelta en vivo con cada modelo configurado e imprime una matriz de aprobado/fallo
pentestgpt-legacy --smoke-test