HALO (GEMMA-by-GOOGLE)
https://github.com/user-attachments/assets/ba467fae-a4c9-4f63-b2e6-3fc30fb023f3
🔐 GEMMA-by-GOOGLE — HALO
Un agente autónomo de pruebas de penetración con IA, 100 % local — Gemma 4-12B dirige un arsenal de 42 herramientas a través de reconocimiento, ataque y generación de informes, expuesto como un servidor estándar de Model Context Protocol (MCP). Sin nube, sin claves API.
Qué hace · Herramientas · Arquitectura · Stack · Inicio rápido · Registro de cambios · Contribuir
HALO es un agente de seguridad autónomo que se ejecuta en un entorno Linux controlado por un LLM local — Gemma 4-12B (sin censura / abliterado) servido a través de LM Studio. Planifica, realiza reconocimiento, encadena ataques según lo que encuentra y redacta por sí mismo un informe profesional de pentest. Todo se ejecuta localmente: sin nube, sin claves API, nada sale de tu máquina.
Una sola palabra inicia una operación: engage.
Qué hace
🔍 Reconocimiento autónomo — masscan + nmap para descubrir puertos y servicios abiertos
⚔️ Bucle de ataque autónomo — selecciona y encadena herramientas según lo que encuentra
🌐 Pipeline de reconocimiento web → ataque — enumeración de apex a URL (subdominios, hosts, URLs históricas), descubrimiento de contenido, escaneo de plantillas y XSS, con captura automática de flags en objetivos web estilo CTF
✅ Brechas verificadas, no banners — cada intento lleva un challenge/nonce de un solo uso que el exploit debe repetir desde dentro de la shell comprometida; ni un simple banner
uid=0ni un tarpit pueden falsificarlo, así que una brecha confirmada es real (evidencia derivada de la ejecución, consumo único en la puerta)🎯 Biblioteca de PoCs curada — exploits deterministas y autoevidentes (vsftpd 2.3.4, ingreslock, UnrealIRCd) lanzados a través de una primitiva de entrega con sandbox que devuelve una shell real, no una suposición
🧠 Caché persistente de experiencias negativas — aprende lo que falla en todas las sesiones y deja de perder ciclos en callejones sin salida comprobados
🧩 Inyección adaptativa de habilidades — carga playbooks de ataque relevantes en el prompt según el objetivo actual
📝 Informes HTML automáticos — compila los hallazgos en un informe con la marca al salir
🔒 100 % local — Gemma 4-12B en LM Studio; nada sale de tu máquina
Related MCP server: Debugg AI MCP
Arsenal de herramientas
42 herramientas se sitúan detrás del bucle de decisión del agente, todas enrutadas a través de la misma
capa de caché de fallos. Se definen una sola vez en el registro de esquemas TOOLS de
halo_tools.py y se sirven a través de ambos transportes (MCP y HTTP).
Reconocimiento y OSINT
Herramienta | Propósito |
| Enumeración de subdominios |
| OSINT pasivo: correos, subdominios, hosts |
| Sondeo y fingerprinting HTTP |
| Rastreo web |
| OSINT de nombres de usuario en más de 90 plataformas |
| Consultas de inteligencia de exposición en Internet |
| OSINT de números de teléfono |
| OSINT / extracción de números de teléfono |
| OSINT para nombre de usuario / IP / teléfono |
| Enumeración de infraestructura en la nube |
| Fingerprinting de WAF / soluciones de seguridad |
| Enumeración de subdominios (pasiva por defecto) |
| Resolución y sondeo de DNS |
| URLs conocidas de OTX / Wayback / Common Crawl |
| URLs históricas de Wayback Machine |
| Capturas de pantalla web para reconocimiento visual |
| Escaneo OSINT multimódulo sin interfaz |
| Framework OSINT recon-ng (no interactivo) |
Escaneo
Herramienta | Propósito |
| Detección rápida de puertos |
| Escaneo profundo de servicios/versiones |
| Escaneo de vulnerabilidades web |
| Escaneo de vulnerabilidades basado en plantillas |
| Análisis de conexiones de red |
Web y fuzzing
Herramienta | Propósito |
| Fuerza bruta de directorios web |
| Fuzzing web |
| Descubrimiento recursivo de contenido |
| Escaneo de XSS (reflejado / almacenado / DOM) |
| Pruebas de peticiones HTTP |
| Descarga de archivos |
Explotación
Herramienta | Propósito |
| Pruebas de inyección SQL |
| Búsqueda de exploits |
| Lanzar un módulo de Metasploit elegido contra un objetivo (aprobado por humano) |
| Ejecución en sandbox de scripts PoC personalizados |
| Kit de ingeniería social |
Credenciales
Herramienta | Propósito |
| Fuerza bruta de credenciales |
| Cracking de autenticación de red |
| Fuerza bruta paralela rápida |
| Cracking de hashes |
Enumeración y sistema
Herramienta | Propósito |
| Enumeración de SMB / Samba |
| Ejecución de comandos arbitrarios |
| Leer el contenido de archivos |
| Escribir salida en archivos |
Arquitectura
Un único motor de herramientas (halo_tools.py) posee el arsenal y sus esquemas; dos
transportes ligeros se sitúan sobre él, de modo que las herramientas se definen exactamente una vez:
agent_loop.py ──HTTP─► tool_server.py ─┐
├─► halo_tools.py ──► security tools
MCP clients ──stdio► mcp_server.py ──┘ (42-tool engine +
schema registry)
│
├─► agent_cache.py (persistent negative-experience cache)
├─► skills.py (adaptive playbook injection)
└─► report_generator.py (auto HTML pentest report on exit)mcp_server.py— un servidor Model Context Protocol conforme a la especificación (stdio, JSON-RPC 2.0). Apunta cualquier cliente MCP (Claude Desktop, agentes de IDE, inspectores) o un registro MCP a él para usar el arsenal de HALO como herramientas estándar.tool_server.py— el servidor local de herramientas HTTP Flask (puerto 8000) que controla el bucle del agente autónomo.
Usar HALO como servidor MCP
// e.g. an MCP client config
{
"mcpServers": {
"halo": { "command": "python3", "args": ["/abs/path/to/mcp_server.py"] }
}
}Un manifiesto de registro listo para enviar se encuentra en server.json.
Capa multiagente
Las operaciones son coordinadas por un conjunto de agentes especialistas que pasan un esquema
de mensaje compartido (agent_schema.py):
Agente | Rol |
| Convierte un objetivo en un plan ordenado |
| Enruta las tareas al especialista adecuado |
| Saca a la luz vulnerabilidades candidatas |
| Se ramifica en especialistas por clase de vulnerabilidad (SQLi, fuerza bruta, IDOR, SSRF, XSS, auth) |
| Confirma los hallazgos con evidencia real antes de que cuenten |
| Diagnostica ejecuciones fallidas de herramientas y ajusta |
Capa de agente soberano
La caché de experiencias negativas toma la huella de cada llamada a herramienta. Una llamada que falla recibe un reintento; si falla dos veces, se la incluye en la lista negra, por lo que el agente pasa a una herramienta más práctica para el trabajo. A lo largo de una operación, el agente estructura su propio aprendizaje por ensayo y error — creando contexto, evitando callejones sin salida repetidos y escalando de forma inteligente — en lugar de volver a ejecutar lo que ya ha demostrado que no funciona.
Brechas verificadas, no corazonadas
El problema difícil con un atacante autónomo es saber si realmente entró o solo repitió un banner esperanzador. HALO responde con una puerta de desafío-respuesta:
El orquestador genera un nonce por intento, vinculado a ese objetivo y al hash exacto del payload, antes de disparar.
Una brecha solo cuenta si la salida de la herramienta incluye una línea estructurada
HALO-EVIDENCE nonce=… level=…que repite ese nonce — algo que la primitiva de entrega (pocs/_delivery.py) solo puede producir ejecutando código dentro de la shell que afirma tener.El nonce es de un solo uso: la puerta (
exploitation_core.py:breach_confirmed) rechaza un nonce reutilizado o nunca generado, por lo que un tarpit, una cadena reflejada o un banner estáticouid=0no pueden falsificar una confirmación.
Los PoCs curados en pocs/ son bugs deterministas y autoevidentes
(vsftpd 2.3.4, ingreslock 1524, UnrealIRCd 3.2.8.1) que superan esta puerta con honestidad:
o consiguen una shell root real o no reportan nada.
Cómo se construyó
HALO fue construido en solitario, desde cero, en menos de seis meses por un desarrollador e investigador de seguridad autodidacta. El núcleo multiagente se ensambló especialista a especialista, verificando cada uno contra un objetivo real antes de seguir:
Lenguaje compartido: un esquema de mensaje común (
agent_schema.py) para que los agentes puedan hablarse entre síPlanificador: convierte un objetivo en un plan ordenado, verificado contra LM Studio en vivo
Orquestador: enruta cada tarea al especialista adecuado
Detección de Vulnerabilidades: saca a la luz vulnerabilidades candidatas, probadas contra un objetivo Metasploitable en vivo
Atacante: se ramifica en especialistas de SQLi / fuerza bruta / IDOR / SSRF / XSS / auth
Depurador: diagnostica ejecuciones fallidas de herramientas y ajusta
Validador + informes: los hallazgos se confirman con evidencia real antes de que cuenten, y luego se compilan en un informe legible para el cliente
A partir de ahí, el arsenal creció hasta 42 herramientas, un pipeline completo de reconocimiento web → ataque con captura de flags y confirmación de brechas por desafío-respuesta, mientras la caché de experiencias negativas convirtió el ensayo y error en aprendizaje persistente entre sesiones. El desarrollo activo continúa: se publican nuevas capacidades con regularidad; consulta el registro de cambios para ver los hitos publicados.
Stack
Modelo: Gemma 4-12B Instruct Abliterated (GGUF a través de LM Studio) — funciona con cualquier modelo local que elijas
Agente: bucle autónomo en Python con llamadas a herramientas MCP
Transportes de herramientas: un servidor Model Context Protocol (stdio) para clientes MCP, más un servidor de herramientas HTTP Flask en el puerto 8000 para el bucle del agente
SO: Kali Linux (probado en UTM en Apple Silicon M1)
Referencia de hardware: MacBook Pro M1, 16 GB de RAM
Inicio rápido
Consulta docs/QUICKSTART.md para la configuración completa. En resumen:
git clone https://github.com/XenoCoreGiger31/GEMMA-by-GOOGLE.git
cd GEMMA-by-GOOGLE
python3 -m pip install -r requirements.txt
cp engagement.example.yaml engagement.yaml # then fill in authorization + scope_targets
python3 tool_server.py # terminal 1 — HTTP tool server on port 8000
python3 agent_loop.py # terminal 2 — the agent
>>> engage 203.0.113.3 # full autonomous recon + attack
>>> run nmap on 10.0.0.1 # single-goal query
>>> exit # triggers HTML report generationNota: Los endpoints y las rutas usan por defecto una configuración local estándar (LM Studio en
localhost:1234, servidor de herramientas HTTP enlocalhost:8000). Puedes anular cualquiera de ellos con las variables de entornoHAL_*(consulta la tabla de anulaciones de entorno). Algunas rutas de caché/registro específicas del autor permanecen enagent_cache.pyytool_server.py; las variables de entorno también las cubren.
agent_loop.py no arrancará sin engagement.yaml — es la autorización y el alcance por el que pasa cada llamada a herramienta, no es opcional. Ver el paso 5 de la guía de inicio rápido.
Ejecutando las pruebas
Las pruebas unitarias usan el unittest integrado de Python — sin dependencias adicionales:
python3 -m unittestContribuciones
Las contribuciones de las comunidades de seguridad, IA y Python son bienvenidas: consulta CONTRIBUTING.md. Si te resulta útil, marca el repositorio con una estrella, o abre un PR para construir algo juntos.
Desarrollado activamente por un desarrollador independiente autodidacta e investigador de seguridad. Se publican nuevas capacidades regularmente.
Aviso legal y exención
Este es un proyecto comunitario de un desarrollador independiente. No está afiliado a Google LLC, ni respaldado o patrocinado por esta. "Gemma" es una marca de Google LLC.
⚠️ Aviso de contenido: El modelo referenciado está fuertemente ablacionado y responderá a solicitudes sensibles sin los controles habituales. Úsalo con responsabilidad, solo en entornos adecuados.
🔒 Aviso legal: Esta herramienta está pensada estrictamente para pruebas de penetración autorizadas e investigación de seguridad en sistemas que poseas o para los que tengas autorización explícita por escrito. El uso no autorizado es ilegal.
Licencia
Publicado bajo la Licencia MIT.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceAn MCP server that integrates various penetration testing tools, enabling security professionals to perform reconnaissance, vulnerability scanning, and API testing through natural language commands in compatible LLM clients like Claude Desktop.7

Debugg AI MCPofficial
AlicenseAqualityAmaintenanceZero-Config, Fully AI-Managed End-to-End Testing for all code gen platforms.888068Apache 2.0- AlicenseAqualityAmaintenanceCybersecurity AI - MCP server providing AI-powered tools and automation by MEOK AI Labs56MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to run Kali Linux security tools in an isolated Docker container for tasks like network scanning, port checking, and service enumeration.781MIT
Related MCP Connectors
MEOK MCP Hardening MCP — automated security red-team for any MCP server. Maps OWASP LLM Top 10
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/XenoCoreGiger31/GEMMA-by-GOOGLE'
If you have feedback or need assistance with the MCP directory API, please join our Discord server