
Guardián es una herramienta CLI de automatización de pruebas de penetración impulsada por IA, lista para producción, que aprovecha Google Gemini y LangChain para orquestar flujos de trabajo inteligentes y paso a paso de pruebas de penetración, manteniendo los estándares de hacking ético.
Guardian es un marco de automatización de pruebas de penetración de nivel empresarial impulsado por IA que combina múltiples proveedores de IA (OpenAI GPT-4, Claude, Google Gemini, OpenRouter, Requesty) con herramientas de seguridad probadas en batalla para ofrecer evaluaciones de seguridad inteligentes y adaptativas con captura de evidencia completa.
Características • Instalación • Inicio Rápido • Documentación • Contribuir
Guardian está diseñado exclusivamente para pruebas de seguridad autorizadas y fines educativos.
Usted es totalmente responsable de asegurarse de tener permiso explícito por escrito antes de probar cualquier sistema. El acceso no autorizado a sistemas informáticos es ilegal según leyes como la Ley de Abuso y Fraude Informático (CFAA), el GDPR y la legislación internacional equivalente.
Al usar Guardian, acepta usarlo únicamente en sistemas que posea o para los que tenga autorización explícita para probar.
[project.entry-points."guardian.providers"] — no se requiere forkthink_deeply swap-and-restore — el modelo grande piensa, el modelo pequeño juzga, reducción de costos de ~10x50 Herramientas de Seguridad Integradas en 10 Categorías:
execution_idsession_<id>.json con puntos de control atómicos permite --resumedepends_on se ejecutan en paralelo hasta max_parallel_toolsparameters: {key: "{{ <id>.parsed.alive_hosts }}"} resuelve contra resultados de pasos anterioreswhen: controlan la ejecución según la salida anterior--resume continúa después del último paso completadoagent: debate | visual | analyst en pasos de análisissecurity-severity, fingerprints de dedup desde execution_idguardian report --export sarif --export defectdojo --export slack<UNTRUSTED_TOOL_OUTPUT> + eliminación de ANSIasyncio; agentes asíncronos--help se mantiene por debajo de 500msGuardian puede usar inteligentemente estas herramientas si están instaladas:
Nota: Guardian funciona sin herramientas externas pero con capacidades de escaneo limitadas. La IA se adaptará según las herramientas disponibles.
git clone https://github.com/zakirkun/guardian-cli.git cd guardian-cli
### Paso 2: Configurar el Entorno de Python
**Linux/macOS:**```bash
python3 -m venv venv
source venv/bin/activate
pip install -e .
Windows:```powershell python -m venv venv .\venv\Scripts\activate pip install -e .
### Paso 3: Configurar el Proveedor de IA
Guardian admite múltiples proveedores de IA. Configure su proveedor preferido en `config/guardian.yaml`:```yaml
# config/guardian.yaml
ai:
# Choose your provider: openai, claude, gemini, openrouter, or requesty
provider: openai
# OpenAI Configuration (recommended)
openai:
model: gpt-4o
api_key: sk-your-api-key-here # Or set OPENAI_API_KEY env var
# Claude Configuration
claude:
model: claude-3-5-sonnet-20241022
api_key: null # Or set ANTHROPIC_API_KEY env var
# Gemini Configuration
gemini:
model: gemini-2.5-pro
api_key: null # Or set GOOGLE_API_KEY env var
# OpenRouter Configuration
openrouter:
model: anthropic/claude-3.5-sonnet
api_key: null # Or set OPENROUTER_API_KEY env var
# Requesty Configuration (OpenAI-compatible gateway)
requesty:
model: openai/gpt-4o-mini
api_key: null # Or set REQUESTY_API_KEY env var
O usa variables de entorno:```bash
export OPENAI_API_KEY="sk-your-key-here" export ANTHROPIC_API_KEY="sk-ant-your-key-here" export GOOGLE_API_KEY="your-gemini-key" export OPENROUTER_API_KEY="your-router-key" export REQUESTY_API_KEY="your-requesty-key"
$env:OPENAI_API_KEY="sk-your-key-here" $env:ANTHROPIC_API_KEY="sk-ant-your-key-here"
### Paso 4: Inicializar Configuración```bash
# Verify installation
python -m cli.main --help
# Check AI provider status
python -m cli.main models
python -m cli.main workflow list
python -m cli.main models
python -m cli.main workflow run --name web_pentest --target example.com --provider openai
### Escenarios de uso de ejemplo
#### 1. Prueba de penetración rápida de aplicaciones web```bash
# Fast security check with evidence capture
python -m cli.main workflow run --name web_pentest --target https://dvwa.csalab.app
Resultado esperado:
python -m cli.main workflow run --name network --target 192.168.1.0/24
#### 3. Flujo de trabajo personalizado con parámetros```bash
# Run with workflow-specific parameters
# Parameters in workflow YAML override config defaults
python -m cli.main workflow run --name web_pentest --target example.com
Prioridad de Parámetros del Flujo de Trabajo:
python -m cli.main report --session 20260203_175905 --format html
#### 5. Cambiar proveedores de IA```bash
# Use OpenAI GPT-4
python -m cli.main workflow run --name web_pentest --target example.com --provider openai
# Use Claude
python -m cli.main workflow run --name web_pentest --target example.com --provider claude
# Use Gemini
python -m cli.main workflow run --name web_pentest --target example.com --provider gemini
# Local Ollama (no cloud)
OLLAMA_HOST=http://localhost:11434 python -m cli.main workflow run --name recon --target scanme.nmap.org --provider ollama
# Any OpenAI-compatible endpoint (vLLM, LM Studio, Together, Groq)
python -m cli.main workflow run --name web_pentest --target example.com --provider openai_compatible
python -m cli.main kb seed
python -m cli.main kb status
python -m cli.main kb query "log4j JNDI" --top 5
python -m cli.main kb update --kind cve --file ./nvd-2025.json
Habilite la fundamentación del analista en `config/guardian.yaml`:```yaml
rag:
enabled: true
top_k: 5
python -m cli.main workflow run --name web_pentest_with_debate --target https://example.com
#### 8. Triaje visual (vision-LLM)
Tres roles (defensor rojo, defensor azul, juez) debaten solo hallazgos ambiguos — los veredictos seguros se saltan el debate para limitar el costo de tokens.```bash
# Captures full-page screenshots and feeds them to a vision-capable provider
python -m cli.main workflow run --name web_visual_pentest --target https://example.com --provider openai
Requiere playwright: pip install playwright && python -m playwright install chromium. Se omite silenciosamente cuando el proveedor activo no tiene soporte de visión.
python -m cli.main report --session 20260203_175905 --export sarif
python -m cli.main report --session 20260203_175905 --export sarif --export defectdojo --export slack
--slack-webhook https://hooks.slack.com/services/...
#### 10. Telemetría + Ranker Aprendido (fuera de línea)```bash
# Anonymise sessions into JSONL (no raw targets, no commands, no secrets)
python -m cli.main telemetry export ./reports --out telemetry.jsonl
# Train the offline tool ranker
python -m cli.main telemetry train telemetry.jsonl
# Inspect what the ranker learned
python -m cli.main telemetry status
Habilitar en la configuración:```yaml ai: use_learned_ranker: true # ToolAgent calls ranker before LLM selector
> **Usuarios de Windows**: Usa `python -m cli.main` en lugar de `guardian`
---
## 🔧 Configuración
### Referencia completa de configuración
Edita `config/guardian.yaml` para personalizar el comportamiento de Guardian:```yaml
# AI Configuration
ai:
provider: openai # openai, claude, gemini, openrouter, requesty
openai:
model: gpt-4o
api_key: sk-your-key # Or use OPENAI_API_KEY env var
claude:
model: claude-3-5-sonnet-20241022
api_key: null
gemini:
model: gemini-2.5-pro
api_key: null
temperature: 0.2
max_tokens: 8000
# Penetration Testing Settings
pentest:
safe_mode: true # Prevent destructive actions
require_confirmation: true # Confirm before each step
max_parallel_tools: 3 # Concurrent tool execution
max_depth: 3 # Maximum scan depth
tool_timeout: 300 # Tool timeout in seconds
# Output Configuration
output:
format: markdown # markdown, html, json
save_path: ./reports
include_reasoning: true
verbosity: normal # quiet, normal, verbose, debug
# Scope Validation
scope:
blacklist: # Never scan these
- 127.0.0.0/8
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
require_scope_file: false
max_targets: 100
# Tool Configuration (defaults)
tools:
httpx:
threads: 50
timeout: 10
tech_detect: true
nuclei:
severity: ["critical", "high", "medium"]
templates_path: ~/nuclei-templates
nmap:
default_args: "-sV -sC"
timing: T4
Crea flujos de trabajo personalizados en el directorio workflows/:```yaml
name: custom_web_assessment description: Custom web security testing
steps:
name: http_discovery type: tool tool: httpx parameters: threads: 100 # Override config default (50) timeout: 15 # Override config default (10) tech_detect: true
name: vulnerability_scan type: tool tool: nuclei parameters: severity: ["critical", "high"] # Override config templates_path: ".shared/nuclei/templates/"
name: generate_report type: report
**Prioridad de parámetros:**
- Los parámetros del flujo de trabajo **anulan** los parámetros de configuración
- Los parámetros de configuración **anulan** los valores predeterminados de la herramienta
- Flujos de trabajo autocontenidos y reutilizables
---
## 📖 Documentación
### Guías de usuario
- **[Guía de inicio rápido](https://github.com/zakirkun/guardian-cli/blob/main/QUICKSTART.md)** - Ponte en marcha en 5 minutos
- **[Referencia de comandos](https://github.com/zakirkun/guardian-cli/blob/main/docs)** - Documentación detallada de todos los comandos
- **[Guía de configuración](https://github.com/zakirkun/guardian-cli/blob/main/config/guardian.yaml)** - Referencia completa de configuración
- **[Guía de flujos de trabajo](https://github.com/zakirkun/guardian-cli/blob/main/docs/WORKFLOW_GUIDE.md)** - Creación de flujos de trabajo personalizados
- **[Guía de evaluación](https://github.com/zakirkun/guardian-cli/blob/main/docs/EVAL_GUIDE.md)** - Ejecución y extensión del entorno de evaluación
- **[Guía de plugins](https://github.com/zakirkun/guardian-cli/blob/main/docs/PLUGIN_GUIDE.md)** - Distribución de proveedores y herramientas de terceros
- **[Historial de cambios](https://github.com/zakirkun/guardian-cli/blob/main/CHANGELOG.md)** - Historial de versiones y notas de migración
### Guías de desarrollador
- **[Creación de herramientas personalizadas](https://github.com/zakirkun/guardian-cli/blob/main/docs/TOOLS_DEVELOPMENT_GUIDE.md)** - Construye tus propias integraciones de herramientas
- **[Desarrollo de flujos de trabajo](https://github.com/zakirkun/guardian-cli/blob/main/docs/WORKFLOW_GUIDE.md)** - Crea flujos de trabajo de prueba personalizados
- **[Herramientas disponibles](https://github.com/zakirkun/guardian-cli/blob/main/tools/README.md)** - Descripción general de las herramientas integradas
### Descripción general de la arquitectura```
Guardian Architecture:
┌─────────────────────────────────────────┐
│ AI Provider Layer │
│ (OpenAI, Claude, Gemini, OpenRouter, │
│ Requesty) │
└─────────────────────────────────────────┘
│
┌─────────────────────────────────────────┐
│ Multi-Agent System │
│ Planner → Tool Agent → Analyst → │
│ Reporter │
└─────────────────────────────────────────┘
│
┌─────────────────────────────────────────┐
│ Workflow Engine │
│ - Parameter Priority │
│ - Evidence Capture │
│ - Session Management │
└─────────────────────────────────────────┘
│
┌─────────────────────────────────────────┐
│ Tool Integration Layer │
│ (19 Security Tools) │
└─────────────────────────────────────────┘
guardian-cli/ ├── ai/ # AI integration │ └── providers/ # Multi-provider support │ ├── base_provider.py │ ├── openai_provider.py │ ├── claude_provider.py │ ├── gemini_provider.py │ ├── openrouter_provider.py │ └── requesty_provider.py ├── cli/ # Command-line interface │ └── commands/ # CLI commands (init, scan, recon, etc.) ├── core/ # Core agent system │ ├── agent.py # Base agent │ ├── planner.py # Planner agent │ ├── tool_agent.py # Tool selection agent │ ├── analyst_agent.py # Analysis agent │ ├── reporter_agent.py # Reporting agent │ ├── memory.py # State management │ └── workflow.py # Workflow orchestration ├── tools/ # Pentesting tool wrappers │ ├── nmap.py # Nmap integration │ ├── masscan.py # Masscan integration │ ├── httpx.py # httpx integration │ ├── subfinder.py # Subfinder integration │ ├── amass.py # Amass integration │ ├── nuclei.py # Nuclei integration │ ├── sqlmap.py # SQLMap integration │ ├── wpscan.py # WPScan integration │ ├── whatweb.py # WhatWeb integration │ ├── wafw00f.py # Wafw00f integration │ ├── nikto.py # Nikto integration │ ├── testssl.py # TestSSL integration │ ├── sslyze.py # SSLyze integration │ ├── gobuster.py # Gobuster integration │ ├── ffuf.py # FFuf integration │ └── ... # 15 tools total ├── workflows/ # Workflow definitions (YAML) ├── utils/ # Utilities (logging, validation) ├── config/ # Configuration files ├── docs/ # Documentation └── reports/ # Generated reports
---
## 🆕 Últimas actualizaciones
### Versión 4.0.0 — I+D novedosa + Expansión de cobertura
**Pista A — I+D de IA/Agente (7 elementos)**
| ID | Elemento | Aspectos destacados |
|---|---|---|
| A1 | Base de conocimiento RAG | `core/knowledge_base.py` SQLite + FTS5 + embeddings opcionales; fundamentación del analista mediante ranura `kb_references`; `guardian kb {seed,update,query,status}` |
| A2 | Triaje por debate multiagente | Rojo/Azul/Juez solo sobre hallazgos MEDIUM-fp; nuevo tipo de paso de análisis `agent: debate` |
| A3 | Análisis de capturas con Vision-LLM | `tools/playwright_screenshot.py` + `core/agents/visual_triage.py`; OpenAI + Claude `generate_with_images` |
| A4 | Contrato de plugins + proveedores locales | Descubrimiento por punto de entrada para proveedores Y herramientas; proveedores **Ollama** + **compatibles con OpenAI** incluidos |
| A5 | Selección aprendida de herramientas (offline) | `core/learners/tool_ranker.py` + `core/telemetry.py`; opt-in mediante `ai.use_learned_ranker: true` |
| A6 | Herramienta de evaluación | `evals/{__init__,scoring,fixtures_loader,test_*}.py` + fixtures dorados; 3 niveles (parser, flujo de trabajo, fundamentación del agente) |
| A7 | Actualización del modelo juez | `BaseAgent.think_deeply(judge_model=...)` intercambio y restauración; juzgar transcripciones para una reducción de coste de ~10x |
**Pista B — Expansión de cobertura de herramientas (7 elementos)**
| ID | Categoría | Herramientas añadidas |
|---|---|---|
| B8 | Active Directory | crackmapexec, bloodhound, kerbrute, impacket-secretsdump |
| B9 | Móvil Android | mobsf, apkleaks, objection |
| B10 | Fuzzers de API | schemathesis, restler, cariddi |
| B11 | SAST + secretos | semgrep, trufflehog, dependency-check |
| B12 | Equipo rojo LLM | garak, pyrit, prompt_fuzz |
| B13 | Puente Burp/ZAP | zap, burp |
| B14 | Exportadores de salida | SARIF v2.1.0, DefectDojo, Slack |
**Barrera de calidad:**
- 296 pruebas pasan (+93% respecto a la línea base de 153 de v3)
- Todas las medidas de endurecimiento de v3 preservadas: delimitadores de inyección de indicaciones, limpieza de claves, alcance de resolución DNS, puntos de control atómicos, rotación de logs, carga diferida de herramientas
- El tiempo de inicio de `guardian --help` se mantiene por debajo de 500ms a pesar de 50 herramientas
- Nuevas superficies de CLI: `guardian kb`, `guardian telemetry`
- 8 nuevos flujos de trabajo incluidos: `web_pentest_with_debate`, `web_visual_pentest`, `ad_assessment`, `mobile_android`, `llm_redteam`, `sast_review`, `api_pentest_v2`, más los flujos de trabajo existentes de v3
### Versión 3.0.0 — Endurecimiento + Motor v2
- Delimitadores de inyección de indicaciones (`<UNTRUSTED_TOOL_OUTPUT>`) en toda la salida de herramientas
- Planificador DAG, esquemas Pydantic, puntos de control atómicos, `--resume`
- 11 nuevos envoltorios (nube/contenedor/SBOM/GraphQL/JWT/OSINT)
- Recomputación de CVSS v3.1 + detección de desviación
- Rotación de logs, limpieza de claves al escribir
- Compuerta de confirmación cableada para herramientas activas+
### Versión 2.0.0
- IA multiproveedor (OpenAI, Claude, Gemini, OpenRouter, Requesty)
- Vinculación de evidencia mediante `execution_id`
- Sistema de prioridad de parámetros de flujo de trabajo
---
## 🤝 Cómo contribuir
¡Aceptamos contribuciones! Así es como puedes hacerlo:
### Configuración del entorno de desarrollo```bash
# Fork and clone
git clone https://github.com/zakirkun/guardian-cli.git
cd guardian-cli
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/
# Format code
black .
Consulta CONTRIBUTING.md para obtener pautas detalladas.
Entregado en v4.0.0:
--resumeFuturo:
Errores de Importación```bash
pip install -e . --force-reinstall
**Errores del Proveedor de IA**```bash
# Verify API key is set
python -m cli.main models
# Check provider configuration
cat config/guardian.yaml | grep -A 5 "ai:"
Herramienta no encontrada```bash
which nmap which httpx
**Flujo de trabajo no se carga**```bash
# Check workflow file exists
ls workflows/web_pentest.yaml
# Verify YAML syntax
python -c "import yaml; yaml.safe_load(open('workflows/web_pentest.yaml'))"
Comando de Windows no encontrado```powershell
python -m cli.main --help
Para más ayuda, [abre un issue](https://github.com/zakirkun/guardian-cli/issues).
---
## 📄 Licencia
Este proyecto está bajo la licencia MIT - consulta el archivo [LICENSE](https://github.com/zakirkun/guardian-cli/blob/main/LICENSE) para más detalles.
---
## 🙏 Agradecimientos
- **OpenAI** - Capacidades de GPT-4
- **Anthropic** - Claude AI
- **Google** - Gemini AI
- **LangChain** - Marco de orquestación de IA
- **ProjectDiscovery** - Herramientas de seguridad de código abierto (httpx, subfinder, nuclei)
- **Nmap** - Exploración de redes y auditoría de seguridad
- **Comunidad de Seguridad** - Desarrolladores e investigadores de herramientas
---
## 📞 Soporte y Contacto
- **Issues de GitHub**: [Reporta errores o solicita funciones](https://github.com/zakirkun/guardian-cli/issues)
- **Discusiones**: [Únete a las discusiones de la comunidad](https://github.com/zakirkun/guardian-cli/discussions)
- **Documentación**: [Lee la documentación](https://github.com/zakirkun/guardian-cli/blob/main/docs)
- **Seguridad**: Reporta vulnerabilidades de forma privada a [email protected]
---
## 🌟 Historial de Estrellas
<a href="https://github.com/zakirkun/guardian-cli/stargazers">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=zakirkun/guardian-cli&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=zakirkun/guardian-cli&type=Date" />
Star History Chart
</picture>
</a>
---
---
<div align="center">
**Guardian** - Pruebas de Penetración Inteligentes, Éticas y Automatizadas
Hecho con ❤️ por la Comunidad de Seguridad
[⬆ Volver al Inicio](#-guardian)
</div>
| Categoría | Herramientas |
|---|
| Red | nmap, masscan |
| Reconocimiento Web | httpx, whatweb, wafw00f, cmseek |
| Subdominio / DNS | subfinder, amass, dnsrecon |
| Escaneo de Vulnerabilidades | nuclei, nikto, sqlmap, wpscan |
| Pruebas SSL/TLS | testssl, sslyze |
| Descubrimiento de Contenido | gobuster, ffuf, arjun |
| Análisis de Seguridad | xsstrike, gitleaks |
| Nube / Contenedor / SBOM | trivy, grype, syft, scoutsuite, prowler, kube-bench |
| Web Moderna + OSINT | graphw00f, clairvoyance, jwt_tool, shodan, theharvester |
| SAST + Secretos (B11) | semgrep, trufflehog, dependency-check |
| Fuzzers API (B10) | schemathesis, cariddi, restler |
| Puente Burp/ZAP (B13) | zap, burp |
| Equipo Rojo LLM (B12) | garak, pyrit, prompt_fuzz |
| Android Móvil (B9) | mobsf, apkleaks, objection |
| Active Directory (B8) | crackmapexec, bloodhound, kerbrute, impacket-secretsdump |
| Evidencia Visual (A3) | playwright_screenshot |
| Herramienta | Propósito | Instalación |
|---|
| nmap | Escaneo de puertos | apt install nmap / choco install nmap |
| masscan | Escaneo ultrarrápido | apt install masscan / Compilar desde fuente |
| httpx | Sondeo HTTP | go install github.com/projectdiscovery/httpx/cmd/httpx@latest |
| subfinder | Enumeración de subdominios | go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest |
| amass | Mapeo de red | go install github.com/owasp-amass/amass/v4/...@master |
| nuclei | Escaneo de vulnerabilidades | go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest |
| whatweb | Huella tecnológica | gem install whatweb / apt install whatweb |
| wafw00f | Detección de WAF | pip install wafw00f |
| nikto | Escaneo de vulnerabilidades web | apt install nikto |
| sqlmap | Inyección SQL | pip install sqlmap / apt install sqlmap |
| wpscan | Escaneo de WordPress | gem install wpscan |
| testssl | Pruebas SSL/TLS | Descargar de testssl.sh |
| sslyze | Análisis SSL/TLS | pip install sslyze |
| gobuster | Fuerza bruta de directorios | go install github.com/OJ/gobuster/v3@latest |
| ffuf | Fuzzing web | go install github.com/ffuf/ffuf/v2@latest |
| arjun | Descubrimiento de parámetros | pip install arjun |
| xsstrike | XSS avanzado | git clone https://github.com/s0md3v/XSStrike |
| gitleaks | Escaneo de secretos | go install github.com/zricethezav/gitleaks/v8@latest |
| cmseek | Detección de CMS | pip install cmseek |
| dnsrecon | Enumeración DNS | pip install dnsrecon |