plataforma autónoma de red teaming; meta-herramienta de seguridad ofensiva multiagente
▄▄▄█████▓▓█████ ███▄ ▄███▓ ██▓███ ▓█████ ██████ ▄▄▄█████▓
▓ ██▒ ▓▒▓█ ▀ ▓██▒▀█▀ ██▒▓██░ ██▒▓█ ▀ ▒██ ▒ ▓ ██▒ ▓▒
▒ ▓██░ ▒░▒███ ▓██ ▓██░▓██░ ██▓▒▒███ ░ ▓██▄ ▒ ▓██░ ▒░
░ ▓██▓ ░ ▒▓█ ▄ ▒██ ▒██ ▒██▄█▓▒ ▒▒▓█ ▄ ▒ ██▒░ ▓██▓ ░
▒██▒ ░ ░▒████▒▒██▒ ░██▒▒██▒ ░ ░░▒████▒▒██████▒▒ ▒██▒ ░
▒ ░░ ░░ ▒░ ░░ ▒░ ░ ░▒▓▒░ ░ ░░░ ▒░ ░▒ ▒▓▒ ▒ ░ ▒ ░░
░ ░ ░ ░░ ░ ░░▒ ░ ░ ░ ░░ ░▒ ░ ░ ░
░ ░ ░ ░ ░░ ░ ░ ░ ░ ░
░ ░ ░ ░ ░ ░
Un marco de seguridad ofensiva multiagente, diseñado para convertir al agente de codificación con IA que ya ejecutas en un cazador de día cero.
Tu agente de codificación con IA ya es un hacker — T3MP3ST le entrega un arsenal.
Apúntalo a un objetivo autorizado y la cadena de eliminación se ejecuta sola: recon → exploit → informe, desde una Sala de Guerra en el navegador o la CLI, impulsado por el agente en el que ya has iniciado sesión — Claude Code, Codex, Hermes — o un modelo que ejecutas completamente sin conexión (Ollama, LM Studio, vLLM). Sin nuevas claves API, sin inquilino en la nube, sin segunda factura. Tu agente es el cerebro; T3MP3ST es la máquina de guerra montada a su alrededor. Tormenta autoalojada. Guerra sin claves. ⚡
Y no te pedirá que confíes en su palabra. En la propia suite de 104 desafíos de XBOW obtiene un 90.1% pass@1 — por encima del 85% auto-reportado por XBOW — junto con resoluciones de CTF sin pistas y una cacería en frío sobre CVEs reales posteriores al corte que el modelo nunca había visto. Cada número en este README se recalcula a partir de datos confirmados con un solo comando (npm run verify-claims). Ruidoso sobre la misión, honesto sobre la construcción — la tabla de estado dice exactamente qué está en vivo, qué es andamio y qué sigue siendo hoja de ruta; recibos completos en Benchmarks.
Tres cosas lo diferencian:
npm run verify-claims los deriva todos, 24/24 en verde. Una afirmación que no se pueda reproducir no se entrega. Nunca números de confianza ciega.Saltar a → Inicio rápido · Qué caza · Qué se entrega hoy · Benchmarks · Arquitectura · Docs
T3MP3ST es una herramienta de seguridad ofensiva, construida para pruebas, investigación y educación autorizadas. Apúntala solo a sistemas que poseas o para los que tengas permiso explícito y por escrito para probar. El acceso no autorizado a computadoras, redes o datos es ilegal en la mayoría de las jurisdicciones — tú eres el único responsable de cómo usas este software y de mantenerte dentro de la ley y tus reglas de enfrentamiento. Trae la tormenta a tus objetivos, no a los de otros.
T3MP3ST se proporciona tal cual bajo la licencia AGPL-3.0, sin garantía ni responsabilidad por cualquier daño, pérdida o uso indebido. Los autores no respaldan, apoyan ni condonan actividades no autorizadas. Obtén permiso. Mantente dentro del alcance. No seas una amenaza. 🫡
La seguridad ofensiva está detrás de años de práctica y herramientas costosas. La apuesta detrás de T3MP3ST es que un enjambre de agentes coordinados pone la caza real de errores al alcance de personas que nunca recibieron la invitación, en aplicaciones web, CTF, contratos inteligentes, código fuente y OSS de sistemas embebidos/robótica. Esa es una apuesta ambiciosa, y las secciones siguientes se esfuerzan en separar lo que ya funciona de lo que sigue siendo una apuesta.
| Dominio | Qué hace | Estado |
|---|---|---|
| 🕸️ Aplicaciones web | Reconocimiento de caja negra, atacante externo → exploit (suite XBEN) | ✅ Estable |
| 🚩 CTF | Resoluciones sin pistas, en recinto aislado (Cybench) | ✅ Estable |
| 🤖 Robótica / OT / embebidos | Pipeline de divulgación coordinada para caza de vulnerabilidades en OSS (OSV + PoC en vivo + refutador) | ✅ Pipeline estable |
| 📂 Código fuente | Análisis de repositorio de caja blanca con descomposición ciega de master-builder | ⚠️ Solo ingestión en Python |
| 💰 Contratos inteligentes | Damn Vulnerable DeFi | ⚠️ Reproducción, no descubrimiento novedoso |
| ☁️ Nube (IaC) | Benchmark de detección de malas configuraciones (cloud:bench) + arsenal en la nube opcional (aws/az/gcloud + scoutsuite/cloudfox/pmapper; pacu restringido) | 🚧 Andamio de detección de malas configuraciones en IaC — explotación en nube en vivo aún no evaluada |
| 📱 Móvil | Analizador estático integrado (manifest misconfig + detección de secretos/texto claro, mobile:bench) + arsenal opcional (mobsfscan/objection/drozer; frida restringido) | 🚧 Andamio de detección estática — explotación dinámica no evaluada |
| 🔩 Binario / RE | Detector de sumideros en salida descompilada (copia insegura / cadena de formato / inyección de comandos / desbordamiento de enteros, binary:bench) + arsenal opcional (ghidra/radare2/objdump/checksec/strings; gdb restringido) | 🚧 Andamio de detección de sumideros estáticos — resolución/pwn no evaluado |
Camino más rápido a una Sala de Guerra en funcionamiento (sin claves, ~2 min de configuración; el tiempo de misión depende del objetivo):
npm install
npm run server # Sala de Guerra → http://127.0.0.1:3333/ui/
En la Sala de Guerra, abre Configuración y conecta un agente local (Claude Code / Codex / Hermes). Luego describe un objetivo a Op Admiral en inglés sencillo y lánzalo. El agente que conectaste es el cerebro. No se requiere clave.
¿Prefieres traer una clave? Configúrala y omite el paso de conexión:
export OPENROUTER_API_KEY=... # o VENICE_API_KEY / ANTHROPIC_API_KEY / OPENAI_API_KEY
export XAI_API_KEY=... # Grok Build (grok-build-0.1) — modelo de codificación de xAI, llamada a herramientas nativa
A los agentes locales lentos se les puede dar más margen con T3MP3ST_LOCAL_AGENT_TIMEOUT_MS
para cada llamada CLI, T3MP3ST_TASK_TIMEOUT_MS para tareas de misión, y
T3MP3ST_GENERAL_TIMEOUT_MS para solicitudes de planificación. Los valores están en milisegundos.
O ejecútalo completamente sin conexión en tu propio modelo — sin clave, sin nube. Por defecto usa Ollama; apúntalo a cualquier servidor compatible con OpenAI (LM Studio, vLLM, llama.cpp):
ollama serve && ollama pull llama3 # o un servidor compatible con OpenAI
export TEMPEST_LOCAL_BASE_URL=http://localhost:11434/api # LM Studio: http://localhost:1234/v1
export TEMPEST_LOCAL_MODEL=llama3
npx tempest # → "Change default provider" → local
La llamada a herramientas funciona en cualquier modelo local (se maneja mediante texto), por lo que el Arsenal se ejecuta incluso en modelos sin capacidad nativa de llamada a funciones.
Verifica los números por ti mismo:
npm run verify-claims # recalcula cada titular a partir de JSON confirmado en bench/
El uso como biblioteca/SDK, la API HTTP completa y la configuración de MCP están en docs/.
El marco es una cadena de eliminación de 8 operadores, y esta tabla no echará humo al respecto. El Reconocimiento es un motor en vivo respaldado por herramientas — y los dientes ya son reales: 90.1% pass@1 en XBEN, 8/10 CVEs retenidos posteriores al corte fijados en archivo/línea/CWE exactos, y un pipeline de divulgación coordinada que está lo suficientemente en vivo como para tener borradores retenidos para coordinación con proveedores en este momento. Lo que no está probado es el enjambre. Cada operador descendente — Exploiter, Infiltrator, Exfiltrator, Ghost — ejecuta el mismo bucle ReAct real respaldado por herramientas que el reconocimiento (herramientas de explotación reales, no stubs), pero los titulares provinieron de un solo agente, no de la célula coordinada de 8 operadores, y la explotación del enjambre de extremo a extremo no está evaluada y sigue siendo poco fiable. El motor es real; el enjambre es la parte que aún está ganándose sus galones. Ruidoso donde nos lo hemos ganado, contundente sobre el resto.
| Componente | Estado | Notas |
|---|---|---|
Medición re-derivable (verify-claims) | ✅ Estable | cada titular se recalcula a partir de artefactos confirmados |
| Motor de Reconocimiento | ✅ Estable | impulsa nmap / DNS / HTTP / fingerprinting; cada hallazgo se remite a la salida real de la herramienta |
| Motor de Misión + Sala de Guerra + Op Admiral | ✅ Estable | sin claves a través de un agente local conectado |
| Arsenal, servidor MCP, API HTTP | ✅ Estable | 35 herramientas integradas por defecto; 83 con el T3MP3ST_FULL_ARSENAL opcional (+48 adaptadores, con los controladores de post-explotación peligrosos — metasploit, hydra — detrás de una puerta de aprobación humana) — ambos recuentos se recalculan mediante verify-claims. security_recon sobre MCP |
| Contención de alcance de egreso | ✅ Estable (activado por defecto) | una vez que se establece un objetivo de misión, las herramientas de red integradas rechazan hosts públicos fuera del alcance — no el objetivo/subdominios, no loopback/privado (SCOPE DENIED) — un valor predeterminado ajustado, no un simple ejecutor de herramientas |
| Pipeline de divulgación coordinada | ✅ Estable | Novedad OSV + PoC en vivo + panel refutador + CVSS; solo borradores, un humano envía |
| Análisis de código fuente de caja blanca | ⚠️ Experimental | Ingestión solo con regex en Python; la descomposición multimodelo cuesta más tokens, no menos |
| DeFi (Damn Vulnerable DeFi) | ⚠️ Experimental | Reproduce clases de exploit conocidas; no es descubrimiento novedoso |
| Exploiter / Infiltrator / Exfiltrator / Ghost | ⚠️ Experimental | Ejecutan el bucle ReAct real respaldado por herramientas (mismo motor que el reconocimiento); no probados como enjambre coordinado — el agente único es la ruta evaluada, la explotación del enjambre en vivo sigue siendo poco fiable |
| Módulos avanzados (nube, persistencia, enjambre, cognición) | 🚧 Planificado | Solo interfaz en src/stubs/ |
| Bucle de auto-mejora | 🧪 Investigación | Hoy registra lecciones + propuestas; retroalimentarlos en la planificación es hoja de ruta |
Desglose completo característica por característica: FEATURES.md.
Hasta dónde llega la tormenta hoy — y hacia dónde se dirige. La misma disciplina que en todo lo demás: un dominio es ✅ solo cuando hay un recibo detrás.
| Dominio | Qué cubre | Estado |
|---|---|---|
| 🕸️ Web | aplicaciones, API, flujos de autenticación, OWASP Top 10 | ✅ Núcleo — XBEN 90.1% pass@1 |
| 📂 Código | auditorías de código fuente de caja blanca, caza de vulnerabilidades estilo SAST | ✅ Probado (resultado de cacería) — CVE-Zero retenido: agente único 8/10 archivo/línea/CWE exactos, 10/10 encontrados (7 idiomas); el motor de ingestión de repositorios en sí mismo sigue siendo ⚠️ experimental |
| 🚩 CTF | juegos de guerra, rangos de práctica, desafíos | ✅ Probado — Cybench 23/40 sin pistas |
| 🔌 Red / Infra | reconocimiento, fingerprinting de servicios/stack; movimiento lateral + escalada de privilegios | ✅ reconocimiento (motor nmap/DNS/HTTP en vivo) · ⚠️ lateral/escalada de privilegios experimental |
| 🤖 Embebidos / IoT / OT | firmware, robótica, OSS de ICS/SCADA | ✅ Pipeline de CVE en vivo — borradores de divulgación coordinada retenidos para proveedores |
| 📦 Cadena de suministro | auditorías de dependencias, instalación sin confirmación | ⚠️ Real — clase dedicada; alcanzó un CWE-829 en el conjunto retenido |
| 💰 Blockchain | contratos inteligentes, DeFi, Solidity | ⚠️ Solo reproducción — Damn Vulnerable DeFi, no descubrimiento novedoso |
| ☁️ Nube | AWS/GCP/Azure malas configuraciones, IAM, sin servidor | 🚧 En desarrollo |
| 📱 Móvil | seguridad de aplicaciones Android/iOS | 🚧 En desarrollo |
| 🏢 Identidad / AD | Kerberos, pass-the-hash, ataques AD | 🚧 En desarrollo |
| 🔐 Binario / RE | desbordamientos, ROP, desarrollo de exploits | 🚧 En desarrollo — necesita herramientas especializadas |
La arquitectura de clase/escuadrón significa que los nuevos dominios componen en lugar de bifurcar — cada uno es una carga (clases especializadas + arsenal + adaptador de objetivo + un benchmark). 🚧 los dominios se envían oscuros hasta que tienen un número.
Resultados principales. Cada uno se recalcula a partir del JSON confirmado con npm run verify-claims; la metodología completa y las advertencias están en los documentos vinculados.
| Suite | Resultado | Contexto |
|---|---|---|
| XBEN — Suite de 104 desafíos de XBOW, caja negra | media pass@1 90.1% (Wilson-95 86.2–92.9), mínimo 91/104 · gpt-5.5 | XBOW auto-reporta 85% en la misma suite; el nuestro recalcula el veredicto calificado a partir de artefactos confirmados (transcripciones sin procesar omitidas por privacidad) |
| XBEN — caja blanca (reportado por separado) | pass@1 98.7%, mejor bola 104/104 · gpt-5.5 | nunca mezclado con el número de caja negra |
| Cybench — Benchmark académico de 40 tareas, Opus 4.8, sin pistas | 23/40 (58%) sin pistas, pass@1 de una sola ejecución (verificado por verify-claims) | no es el récord de puntuación bruta (Anthropic: 76.5% pass@10); cada bandera calificada contra el oráculo confirmado |
| CVE-Zero — 10 CVEs reales posteriores al corte (2026), retenidos, 7 idiomas | agente único 8/10 archivo/línea/CWE exactos (verificado todo exacto, estable) · 10/10 encontrados (paquete completo) | Prueba de memorización y ajuste: posterior al corte, y los prompts endurecidos nunca se ajustaron en estos; verify-claims lo recalcula. n=10, direccional; la ventaja del enjambre aquí es el recuerdo, no una prueba de que la coordinación supera al solitario |
Cómo leer estos:
verify-claims recalcula el aprobado/reprobado. Las transcripciones sin procesar por paso se omiten por privacidad del operador, por lo que verificas el veredicto calificado, no la salida sin procesar de la herramienta. Cero fabricado, reforzado por un guardia contra el sobreajuste que se ejecuta en cada push.El número no es el alarde — el recibo lo es. Un arnés de código abierto y sin claves que te entrega la re-ejecución en lugar de pedirte que confíes: clónalo, ejecuta npm run verify-claims, y cada veredicto anterior se recalcula a partir de su oráculo confirmado frente a ti.
Lectura más profunda: WALL_FORENSICS (fallos por desafío), CYBENCH, INTEGRITY_LEDGER (auditoría de contaminación y cada retractación), OBSIDIVM (nuestro propio rango web en vivo).
| Doc | Contenido |
|---|---|
| FEATURES.md | estado característica por característica ([x] enviado / [~] parcial / [ ] planificado) |
| SCOPE_AND_AUTHORIZATION | modelo de autoridad, recibos de alcance, reglas de evidencia y repetición de pruebas |
| VERIFIED_PROVENANCE | cómo los hallazgos se convierten en probados por herramientas en lugar de afirmados por el modelo |
| TEAM_PREVIEW | ruta de primera ejecución y script de revisión |
| INSTALL_MATRIX | tabla de preparación para macOS / Linux |
| ARSENAL_ACTIVATION_PLAN | configuración opcional de herramientas externas |
| CYBENCH · WALL_FORENSICS · INTEGRITY_LEDGER · COGNITIVE_ARCHITECTURE | metodología de benchmark |
| RELEASE_CHECKLIST | las puertas que una versión debe pasar |
┌─────────────────────────────────────────────────────────────────┐
│ COMANDO T3MP3ST │
├─────────────────────────────────────────────────────────────────┤
│ CONTROL DE MISIÓN ◄── MODELO OBJETIVO ──► ARSENAL (HERRAMIENTAS) │
│ ▲ │
│ CÉLULA DE AGENTES: RECON · SCANNER · EXPLOITER · INFILTRATOR · │
│ EXFILTRATOR · GHOST · COORDINATOR · ANALYST │
│ ▲ │
│ BÓVEDA DE EVIDENCIAS · ALMACÉN DE CREDENCIALES · LIBRO DE HALLAZGOS │
│ ▲ │
│ CAPA OPSEC · CANAL DE COMUNICACIONES · BACKBONE LLM │
└─────────────────────────────────────────────────────────────────┘
Los operadores se asignan a las fases de MITRE ATT&CK y Cyber Kill Chain (el reconocimiento está en vivo; las fases posteriores están andamiadas):
| Operador | Fase | MITRE | Función |
|---|---|---|---|
| Recon | Reconocimiento | TA0043 | OSINT, descubrimiento de red, enumeración de activos |
| Scanner | Descubrimiento | TA0007 | escaneo de vulnerabilidades, fingerprinting de servicios |
| Exploiter | Acceso Inicial | TA0001 | explotación, entrega de payload |
| Infiltrator | Movimiento Lateral | TA0008 | post-explotación, escalada de privilegios |
| Exfiltrator | Recopilación / Exfiltración | TA0009/10 | extracción de datos, recolección de credenciales |
| Ghost | Persistencia | TA0003 | persistencia, sigilo, limpieza |
| Coordinator | Comando y Control | TA0011 | control de misión, orquestación |
| Analyst | Análisis | — | análisis de patrones, informes |
Proveedores: OpenRouter, Venice, Anthropic, OpenAI, o un agente local sin claves (Claude Code / Codex / Hermes). Configura OPENROUTER_API_KEY / VENICE_API_KEY / ANTHROPIC_API_KEY, o conecta un agente en Configuración.
Integraciones: node dist/mcp-server.js expone security_recon a agentes compatibles con MCP. npm run server inicia la API HTTP (POST /api/mission/start, GET /api/mission/status, y más). Referencia completa en docs/.
El red-teaming no debería ser un sacerdocio. Trae un adaptador, un paquete de prompts, un runbook, una nueva herramienta del arsenal o un informe de error.
Una regla, no negociable: todo aquí es solo para pruebas autorizadas. Objetivos propios, con alcance definido o con consentimiento. Construye para defensores, o no construyas aquí.
npm run verify-claims debe permanecer en verde.Proceso de lanzamiento y puertas: RELEASE_CHECKLIST.
AGPL-3.0. Ver LICENSE.
Fortes fortuna iuvat — la fortuna favorece a los audaces.
⊰•-•✧ LOVE PLINY ✧•-•⊱ 🌩️