Proyecto Final · Curso AI Hacking · 8dot8 Academy 2026
Instructor: Galoget Latorre (@galoget) · Hackem Cybersecurity
Este agente SOLO puede ejecutarse contra sistemas que tú mismo hayas desplegado o para los que tengas autorización escrita explícita.
El objetivo de referencia es OWASP Juice Shop (instancia local o demo oficial). Prohibido atacar sistemas de terceros. El uso no autorizado es ilegal.
Todo el procesamiento es local — sin telemetría ni APIs cloud externas.
AI Pentest Agent es un agente de pentesting autónomo en Python que:
- 🤖 Usa un LLM local (Ollama) o remoto (API OpenAI-compatible) como motor de razonamiento
- 📚 Implementa RAG con archivos
.mdde la carpetakb/como base de conocimiento - ⚡ Sigue el patrón ReAct (Observe → Think → Act) de LangChain/LangGraph
- 🔧 Usa herramientas nativas de Kali Linux (nmap, nikto, gobuster, whatweb) con fallback Python
- 📊 Mapea hallazgos a OWASP Top 10 2021 y MITRE ATLAS
- 📄 Genera un informe técnico completo en Markdown
| # | Fase | Herramientas |
|---|---|---|
| 1 | 🔍 Reconocimiento | whatweb, curl, requests, BS4 |
| 2 | 🔌 Escaneo de Puertos | nmap, socket Python, gobuster |
| 3 | 🔎 Identificación de Vulnerabilidades | nikto, checks manuales, LLM |
| 4 | 💥 Explotación | SQLi, FTP Exposure, BAC/IDOR, DOM XSS |
| 5 | 📊 Métricas y Mapeo | ESR, OWASP, MITRE ATLAS |
| 6 | 🛡️ Remediación Blue Team | LLM + RAG knowledge base |
Final/
├── src/
│ ├── ai_pentest_agent.py # Script principal (menú interactivo + ReAct)
│ ├── rag_engine.py # Motor RAG TF-IDF sobre archivos .md
│ ├── llm_client.py # Cliente LLM (Ollama local / OpenAI remoto)
│ ├── report_generator.py # Generador de informe Markdown
│ └── tools/
│ ├── kali_runner.py # Wrappers para herramientas Kali Linux
│ ├── recon.py # Fase 1: Reconocimiento
│ ├── port_scan.py # Fase 2: Escaneo de puertos + endpoints
│ ├── vuln_check.py # Fase 3: Identificación de vulnerabilidades
│ └── exploit.py # Fase 4: Explotación
├── kb/ # Base de conocimiento RAG (archivos .md)
│ ├── owasp_mitre_rag_reference.md
│ ├── OWASP Top 10 para Aplicaciones de LLM 2025 (es).md
│ ├── Guia Completa de Pwning OWASP Juice Shop.md
│ └── ... (39 archivos .md)
├── logs/ # Trazas ReAct y logs de ejecución
├── reports/ # Informes generados en Markdown
├── README.md
└── requirements.txt
- Kali Linux (recomendado) o Ubuntu/Debian
- Python 3.10+
# Instalar herramientas necesarias
sudo apt update && sudo apt install -y \
nmap nikto gobuster dirb sqlmap whatweb curl# Instalar Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Descargar el modelo de referencia
ollama pull llama3.2
# Prueba de humo
ollama run llama3.2 "responde OK"
# API disponible en: http://localhost:11434# Desplegar Juice Shop con Docker (puerto 3000)
docker run --rm -d -p 3000:3000 --name juiceshop bkimminich/juice-shop
# Verificar
curl -s -o /dev/null -w "%{http_code}\n" http://localhost:3000 # → 200
# Demo pública (alternativa sin Docker):
# https://juice-shop.herokuapp.com# 1. Clonar / descomprimir el proyecto
cd /path/to/Final
# 2. Crear entorno virtual
python3 -m venv .venv
source .venv/bin/activate
# 3. Instalar dependencias Python
pip install -r requirements.txtpython src/ai_pentest_agent.pyEl menú te guiará para ingresar:
- URL/IP del objetivo
- Puerto a escanear
- Modelo LLM a usar
- Modo: local (Ollama) o remoto (API compatible)
- Activar/desactivar RAG
# Target local con llama3.2
python src/ai_pentest_agent.py --target http://localhost:3000 --model llama3.2
# Target remoto con rango de puertos personalizado
python src/ai_pentest_agent.py \
--target http://192.168.1.100:3000 \
--model qwen2.5 \
--port-range 1-2000 \
--no-menu
# Con LLM remoto (API OpenAI-compatible)
python src/ai_pentest_agent.py \
--target http://localhost:3000 \
--remote \
--llm-url https://api.openai.com \
--api-key sk-... \
--model gpt-4o-mini --target, -t URL del objetivo (default: http://localhost:3000)
--model, -m Modelo LLM (default: llama3.2)
--llm-url URL base del LLM (default: http://localhost:11434)
--remote Usar LLM remoto (OpenAI-compatible API)
--api-key API Key para LLM remoto
--no-rag Deshabilitar el RAG
--port-range Rango de puertos (default: 1-1024)
--no-menu Omitir menú interactivo
Generado en reports/reporte_pentest_<timestamp>.md con:
- Resumen ejecutivo
- Alcance y reglas de compromiso
- Arquitectura del agente (diagrama)
- Metodología y fases ejecutadas
- Tabla de hallazgos (ID, severidad, OWASP, ATLAS, evidencia)
- Explotaciones detalladas (payload, petición, evidencia)
- Métricas (ESR, severidades, tiempos)
- Defensa y remediación (Blue Team)
- Conclusiones y limitaciones
- Traza ReAct completa
logs/run_<timestamp>.log— Log completo de la sesiónlogs/react_trace_<timestamp>.json— Traza ReAct en formato JSON
| Vulnerabilidad | OWASP ID | MITRE ATLAS | Severidad |
|---|---|---|---|
| SQL Injection | A03:2021 | AML.T0051 / T1190 | CRÍTICA |
| Broken Access Control | A01:2021 | AML.T0012 / T1078 | ALTA |
| Sensitive Data Exposure | A02:2021 | ATT&CK T1552 | ALTA |
| DOM XSS | A03:2021 | ATT&CK T1059.007 | MEDIA |
| Security Misconfiguration | A05:2021 | ATT&CK T1562 | MEDIA |
INPUT (URL) ──▶ MENÚ INTERACTIVO
│
┌──────▼──────┐
│ RAG ENGINE │ ◀── kb/*.md (39 docs, TF-IDF)
└──────┬──────┘
│ Contexto
┌──────▼──────┐
│ LLM CLIENT │ ─── llama3.2 / Ollama / Remoto
└──────┬──────┘
│
┌─────────▼─────────┐
│ REACT LOOP │
│ Observe→Think→Act │
└─────────┬─────────┘
│
┌────────────────▼────────────────┐
│ TOOLS (Kali Linux) │
│ Fase 1: whatweb, curl │
│ Fase 2: nmap, gobuster │
│ Fase 3: nikto, checks │
│ Fase 4: SQLi, FTP, BAC, XSS │
└────────────────┬────────────────┘
│
┌──────▼──────┐
│ REPORT │ ──▶ reports/*.md
└─────────────┘
La carpeta kb/ contiene 39 archivos .md que incluyen:
- OWASP Top 10 para LLM 2025
- MITRE ATLAS Reference Guide
- Guía completa de Pwning OWASP Juice Shop
- Guías de certificación CAISR, CLLMSP
- Material de las 10 sesiones del curso
El RAG recupera contexto relevante para cada fase y lo inyecta en los prompts del LLM.
# Iniciar Ollama
ollama serve &
# Verificar
curl http://localhost:11434/api/tags# Listar modelos disponibles
ollama list
# Descargar modelo
ollama pull llama3.2El agente detecta automáticamente qué herramientas están disponibles y usa fallback Python cuando no las encuentra. No es necesario instalar todas las herramientas para que el script funcione.
# Verificar que está corriendo
docker ps | grep juiceshop
# Reiniciar si es necesario
docker restart juiceshop- OWASP Juice Shop
- Ollama — LLM local
- OWASP Top 10
- MITRE ATLAS
- LangChain Docs
Este proyecto es de uso exclusivamente educativo en entornos autorizados.
- No usar contra sistemas sin autorización escrita explícita
- No exponer el objetivo vulnerable a Internet
- No enviar datos a servicios externos de IA
- Respetar la privacidad y no registrar datos personales reales en logs
AI Pentest Agent · Proyecto Final · Curso AI Hacking · 8dot8 Academy 2026
Hackem Cybersecurity · Instructor: Galoget Latorre (@galoget)