Mythic – El framework C2 colaborativo de código abierto que está ganando terreno a Cobalt Strike
Descripción del programa Mythic
Mythic es un framework de comando y control (C2) y post-explotación de código abierto, diseñado para ser una alternativa colaborativa, multiplataforma y altamente modular a herramientas comerciales como Cobalt Strike. Desarrollado por Cody Thomas (también conocido como its-a-feature), un reconocido investigador de seguridad y miembro de SpecterOps, Mythic fue lanzado públicamente alrededor de 2019 y desde entonces ha ganado una tracción significativa tanto entre equipos rojos legítimos como entre actores de amenazas.
A diferencia de otros frameworks que siguen un diseño monolítico, Mythic se basa en una arquitectura de microservicios construida sobre Docker. El núcleo del framework está escrito en GoLang, utiliza una base de datos PostgreSQL, se comunica internamente mediante RabbitMQ y presenta una interfaz web front-end en React. Esta arquitectura moderna permite que Mythic sea extremadamente modular y extensible, donde los agentes (payloads), los perfiles de comunicación (C2 profiles) y otras funcionalidades se instalan como componentes independientes que se comunican con el servidor central a través de APIs estandarizadas.
La principal innovación de Mythic es su filosofía de «lenguaje del lado del servidor» (server-side language). El repositorio principal de Mythic no alberga ningún agente ni perfil C2; en su lugar, proporciona un ecosistema donde desarrolladores y operadores pueden instalar, crear o modificar agentes y canales de comunicación sobre la marcha, sin necesidad de modificar el núcleo del framework. Esta arquitectura desacoplada permite que Mythic sirva como un «traductor universal» capaz de hablar con agentes escritos en Go, Python, C#, C, Rust, Nim y cualquier otro lenguaje que pueda comunicarse mediante mensajes JSON estandarizados.
Mythic es utilizado por equipos rojos (Red Teams) en pruebas de seguridad autorizadas, pero también ha sido observado en campañas maliciosas de grupos APT como Arcane Wolf (Mythic Likho) y Paper Werewolf (GOFFEE), lo que demuestra su creciente popularidad en el panorama de amenazas.
¿Necesitas un framework C2 moderno, colaborativo y de código abierto para tus operaciones de Red Team, con soporte para múltiples lenguajes de agente y canales de comunicación exóticos?
Características clave de Mythic
1. Arquitectura de microservicios basada en Docker
Mythic utiliza Docker y Docker Compose para todos sus componentes, lo que permite que el framework proporcione una amplia gama de funcionalidades sin requerir dependencias en el sistema anfitrión. Cada tipo de payload (agente) se ejecuta en su propio entorno containerizado, con sus propias dependencias de compilación y requisitos de ejecución. Esto significa que los desarrolladores pueden centrarse en la funcionalidad del agente sin preocuparse por conflictos de dependencias o requisitos del lado del servidor.
Los contenedores Docker de Mythic se alojan en DockerHub bajo itsafeaturemythic e incluyen imágenes base para Go, Python, y combinaciones con soporte.NET y macOS. La comunicación entre contenedores se gestiona mediante RabbitMQ, y el servidor Go maneja las solicitudes web a través de GraphQL APIs y WebSockets.
2. Arquitectura desacoplada: agentes, C2 profiles y traducción
Una de las características más distintivas de Mythic es su arquitectura de tres capas para la comunicación:
- Payload Containers: Contienen el código fuente de los agentes y son responsables de compilar los payloads. Cada agente se desarrolla de forma independiente y se instala en Mythic mediante el comando
./mythic-cli install github <url>. - C2 Profile Containers: Son responsables de la comunicación con los agentes. Reciben el tráfico del agente y lo envían a Mythic para su procesamiento. Existen perfiles para HTTP, HTTPS, WebSocket, TCP, SMB, DNS, MQTT, e incluso servicios públicos como Discord y GitHub.
- Translation Containers: Manejan el cifrado y descifrado del tráfico de red, permitiendo a los agentes implementar esquemas de cifrado personalizados sin que el servidor necesite conocerlos.
Esta separación permite que los agentes y los perfiles C2 se actualicen a un ritmo mucho más rápido, desacoplado del núcleo de Mythic.
3. Multiplayer mode (operaciones colaborativas)
Mythic está diseñado desde sus cimientos para ser multiusuario y colaborativo. La arquitectura cliente-servidor permite que múltiples operadores se conecten simultáneamente al mismo servidor y colaboren en las mismas operaciones. La interfaz web basada en React proporciona actualizaciones en tiempo real de los callbacks, tareas y resultados, lo que facilita el trabajo en equipo en ejercicios de Red Team complejos.
El framework también incluye soporte para scripting de navegador (browser scripting), que permite a los desarrolladores y operadores transformar dinámicamente la salida de los comandos en tablas interactivas, botones de descarga, visores de capturas de pantalla e incluso botones para tareas de seguimiento con parámetros preestablecidos.
4. Soporte para múltiples lenguajes de agente
A diferencia de Cobalt Strike (cuyos agentes están escritos en C/Java) o Metasploit (Ruby), Mythic adopta un enfoque agnóstico al lenguaje. Los agentes pueden implementarse en:
- Go: Apfell (el agente original de Mythic para macOS)
- C#: Apollo (agente para Windows, uno de los más populares)
- Python: Varios agentes para entornos Python
- C/C++: Para máximo rendimiento y evasión
- Nim: Creciente popularidad en la comunidad ofensiva
Esta flexibilidad permite a los operadores elegir el lenguaje más adecuado para cada objetivo y entorno, equilibrando sigilo, rendimiento y facilidad de desarrollo.
5. Múltiples perfiles C2 (HTTP/S, WebSocket, TCP, SMB, DNS, Discord, GitHub)
Mythic soporta una amplia gama de protocolos de comunicación para adaptarse a diferentes entornos de red y requisitos de evasión:
| Perfil C2 | Descripción | Caso de uso |
|---|---|---|
| HTTP | Comunicación asíncrona estándar GET/POST | Entornos con firewalls permisivos para HTTP |
| HTTPS | Comunicación cifrada sobre TLS | Mayor seguridad y evasión básica |
| WebSocket | Comunicación bidireccional persistente | Operaciones en tiempo real, menor latencia |
| TCP | Comunicación directa sobre TCP | Redes internas sin restricciones |
| SMB | Comunicación mediante pipes nombrados SMB | Movimiento lateral y P2P en entornos Windows |
| DNS | Túneles sobre consultas DNS | Redes donde el tráfico DNS no está inspeccionado |
| Discord | Comunica comandos a través de mensajes de Discord | Evasión usando servicios legítimos |
| GitHub | Utiliza issues, commits y forks para C2 | Evasión avanzada usando API de GitHub |
6. Ejecución de BOFs (Beacon Object Files)
Mythic soporta la ejecución de BOFs (Beacon Object Files), un formato popularizado por Cobalt Strike que permite ejecutar código compilado en el contexto de un proceso sin cargar un PE completo. Esta capacidad permite a los operadores:
- Ejecutar herramientas ofensivas ligeras en memoria
- Evitar la creación de procesos hijos (menos detección)
- Aprovechar el vasto ecosistema de BOFs de código abierto disponibles en GitHub
- Añadir nuevas técnicas sobre la marcha sin modificar el núcleo del agente
7. Browser scripting para visualización dinámica de datos
Una de las características más subestimadas de Mythic es su sistema de scripting de navegador. Esta funcionalidad permite que los desarrolladores de agentes o los operadores transformen la salida de los comandos en visualizaciones interactivas, como:
- Tablas con ordenación y filtrado: Para listados de procesos, archivos o conexiones de red
- Botones de tarea: Con parámetros preestablecidos para acciones de seguimiento (ej. «Descargar archivo», «Analizar con VirusTotal»)
- Visores de capturas de pantalla: Incrustación directa de imágenes en la interfaz
- Iconografía codificada por colores: Clasificación visual de archivos por extensión o riesgo
- Diálogos de confirmación: Para operaciones de alto riesgo con textos personalizados
Los scripts de navegador devuelven diccionarios con estructuras table que definen cabeceras, filas y botones de acción, permitiendo una experiencia de operador mucho más rica que la salida de texto plano tradicional.
8. Soporte para pivoting y comunicaciones P2P
Mythic implementa capacidades de pivoting que permiten a los agentes comunicarse entre sí, formando una cadena que eventualmente llega al servidor C2. Las comunicaciones P2P pueden realizarse mediante:
- Pipes nombrados SMB: Para movilidad lateral en entornos Windows
- Sockets TCP: Para redes donde SMB no está disponible
En el modo P2P sobre SMB, los agentes utilizan el formato MythicMessage que incluye campos de cabecera: tamaño total (4 bytes), número de bloques (4 bytes), bloque actual (4 bytes), y datos codificados en Base64.
9. Integración con servicios públicos para C2 encubierto
Mythic incluye perfiles C2 que se comunican a través de servicios legítimos de Internet, lo que permite que el tráfico malicioso se mezcle con actividad normal:
- Discord: Los comandos y resultados se disfrazan como mensajes regulares en canales de Discord, utilizando HTTPS/TLS para el transporte
- GitHub: Utiliza la API de GitHub para comunicarse a través de issues, commits y forks, evitando la detección de C2 directo
Estos canales de comunicación «living-off-trusted-services» (LOTS) son extremadamente difíciles de detectar, ya que se mezclan con el tráfico legítimo a servicios ampliamente utilizados.
Explicación detallada del funcionamiento
La arquitectura de Mythic es fundamentalmente diferente a la de otros frameworks C2 como Cobalt Strike o Metasploit. En lugar de un monolito donde el servidor, los agentes y los protocolos están estrechamente acoplados, Mythic adopta un enfoque de microservicios basado en contenedores.
El flujo de funcionamiento típico de una operación es el siguiente:
Fase 1: Instalación y configuración del servidor
El operador clona el repositorio de Mythic, ejecuta sudo make para generar el binario mythic-cli, y luego inicia el servidor con sudo./mythic-cli start. Este comando levanta todos los contenedores Docker necesarios (PostgreSQL, RabbitMQ, Hasura, etc.) y configura la base de datos.
Fase 2: Instalación de agentes y perfiles C2
El operador instala los componentes deseados usando comandos como:
sudo./mythic-cli install github https://github.com/MythicAgents/apollo
sudo./mythic-cli install github https://github.com/MythicC2Profiles/http
sudo./mythic-cli restartEsto descarga los contenedores de los agentes y perfiles C2 desde GitHub y los integra en la instancia de Mythic.
Fase 3: Generación del payload
El operador accede a la interfaz web en https://127.0.0.1:7443 e inicia sesión (las credenciales se encuentran en el archivo .env). Desde el panel «Payloads», puede crear un nuevo payload seleccionando el agente (ej. Apollo), el perfil C2 (ej. HTTP), y configurando parámetros como la dirección del servidor y el puerto de callback.
Fase 4: Entrega y ejecución
El payload generado se entrega al sistema objetivo mediante técnicas de ingeniería social o explotación de vulnerabilidades. Una vez ejecutado, el agente se comunica con el servidor C2 utilizando el perfil configurado.
Fase 5: Comunicación agente-servidor
El agente envía mensajes JSON cifrados al servidor a través del perfil C2 elegido. El servidor recibe estos mensajes, los procesa y envía comandos de vuelta al agente. La comunicación puede ser asíncrona (el agente «late» periódicamente) o síncrona (WebSocket para comunicación en tiempo real).
Fase 6: Post-explotación y movimiento lateral
Con una sesión establecida, el operador puede ejecutar comandos en el sistema comprometido, cargar BOFs para funcionalidades adicionales, robar credenciales y moverse lateralmente a otros sistemas usando pivoting sobre SMB o TCP.
Descarga e instalación de Mythic
- Desarrollador: Cody Thomas (its-a-feature), SpecterOps
- Página oficial: https://github.com/its-a-feature/Mythic
- Documentación: https://docs.mythic-c2.net
- Versión actual: 3.2.20+ (actualizaciones frecuentes)
- Tamaño: Variable (depende de los contenedores instalados)
- Sistemas operativos compatibles:
- Servidor: Linux (Ubuntu/Debian/Kali recomendado), macOS, Windows (vía WSL2)
- Agentes: Windows, macOS, Linux
- Requisitos mínimos: Docker, Docker Compose, 4 GB RAM (recomendado), 20 GB espacio en disco
- Licencia: Código abierto (licencia específica en el repositorio)
- Idioma: Interfaz en inglés
- Soporte técnico: Documentación oficial, comunidad en Slack/Discord, GitHub Issues
Instalación en Linux (recomendada):
# Clonar el repositorio
git clone https://github.com/its-a-feature/Mythic --depth 1
cd Mythic
# Instalar Docker (si no está instalado)
sudo./install_docker_ubuntu.sh # Para Ubuntu
# o
sudo./install_docker_kali.sh # Para Kali
# Iniciar Docker
sudo systemctl start docker
# Compilar mythic-cli
sudo make
# Iniciar Mythic
sudo./mythic-cli startInstalación de agentes y perfiles C2:
# Instalar perfil HTTP
sudo./mythic-cli install github https://github.com/MythicC2Profiles/http
# Instalar agente Apollo (Windows.NET)
sudo./mythic-cli install github https://github.com/MythicAgents/apollo
# Reiniciar Mythic para aplicar cambios
sudo./mythic-cli restartAcceso a la interfaz web:
- URL:
https://127.0.0.1:7443 - Usuario:
mythic_admin - Contraseña: consultar en el archivo
.envdentro del directorio Mythic
Cómo usar Mythic
Advertencia de seguridad: Mythic es una herramienta de prueba de penetración. Debe utilizarse únicamente en entornos autorizados y con permiso explícito del propietario del sistema.
Paso 1: Acceder al panel web
Abre tu navegador y ve a https://127.0.0.1:7443. Inicia sesión con las credenciales de administrador.
Paso 2: Crear un payload
- Navega a la sección «Payloads» en el menú lateral.
- Haz clic en «Create New Payload» (o el botón de acción correspondiente).
- Selecciona el agente (ej. «Apollo» para Windows.NET).
- Selecciona el perfil C2 (ej. «http» para comunicación HTTP).
- Configura los parámetros:
- Callback Host: La dirección IP o dominio de tu servidor Mythic (ej.
http://192.168.1.100) - Callback Port: El puerto configurado para el listener (ej. 80 para HTTP)
- Haz clic en «Generate» para crear el payload.
- Descarga el archivo generado (ej.
apollo.exe).
Paso 3: Configurar un listener
- Navega a «Listeners» en el menú lateral.
- Haz clic en «Create Listener».
- Selecciona el mismo perfil C2 utilizado en el payload.
- Configura la IP local (
LHOST) y el puerto (LPORT) donde Mythic escuchará las conexiones entrantes.
Paso 4: Entregar y ejecutar el payload
Transfiere el payload al sistema objetivo (usando phishing, descarga, etc.) y ejecútalo. Si todo funciona correctamente, aparecerá un nuevo callback en el panel «Callbacks».
Paso 5: Interactuar con el callback
- Haz clic en el callback activo para abrir la ventana de interacción.
- Escribe comandos en la consola (ej.
helppara ver comandos disponibles). - Los resultados se mostrarán en la interfaz, pudiendo formatearse dinámicamente si el agente soporta browser scripting.
Paso 6: Cargar y ejecutar BOFs (opcional)
Si el agente soporta BOFs (Beacon Object Files):
- Coloca el archivo BOF (
.oo.obj) en una ubicación accesible. - Usa el comando correspondiente para cargar y ejecutar el BOF en el sistema remoto.
Observaciones sobre el programa Mythic
El auge de Mythic en el panorama de amenazas
Mythic ha experimentado un crecimiento significativo en popularidad desde su lanzamiento. Según informes de Kaspersky y otras firmas de seguridad, el framework es cada vez más utilizado por actores de amenazas, incluyendo Arcane Wolf (Mythic Likho) y Paper Werewolf (GOFFEE). Su adopción se debe a varias razones:
- Es gratuito y de código abierto, a diferencia de Cobalt Strike que requiere costosas licencias
- Su arquitectura modular permite personalizarlo fácilmente para evadir detecciones específicas
- Los firmas de detección son menos maduras que para Cobalt Strike, ya que es más reciente
- Soporta canales C2 exóticos como Discord y GitHub, que son difíciles de detectar y bloquear
Mythic vs. Cobalt Strike vs. Sliver
| Característica | Mythic | Cobalt Strike | Sliver |
|---|---|---|---|
| Código | Open source | Comercial (cerrado) | Open source |
| Arquitectura | Microservicios (Docker) | Monolítica | Binario único |
| Interfaz | Web (React) | Escritorio (Java Swing) | CLI + Web |
| Multiplayer | Sí (nativo) | Sí | Sí |
| Lenguajes de agente | Múltiples (Go, C#, Python, C, etc.) | Principalmente C/Java | Go |
| Perfiles C2 | HTTP, HTTPS, WebSocket, TCP, SMB, DNS, Discord, GitHub, etc. | HTTP, HTTPS, DNS, SMB, TCP | mTLS, HTTP, HTTPS, DNS, WireGuard |
| Browser scripting | Sí (avanzado) | Limitado | No |
| BOF execution | Sí | Sí | Limitado |
| Ecosistema de agentes | En crecimiento (docenas) | Muy maduro | Moderado |
Detección y defensa contra Mythic
A pesar de su sofisticación, Mythic puede ser detectado mediante análisis de tráfico de red:
- Patrones SMB P2P: Las comunicaciones entre agentes sobre SMB utilizan pipes nombrados con nombres UUID y un formato de mensaje específico (
MythicMessage) con campos de cabecera característicos - Estructura de paquetes TCP: En comunicaciones TCP, los datos se transmiten en bloques con campos de tamaño y número de bloque que pueden ser detectados
- Tráfico a servicios públicos: El uso anómalo de APIs de Discord o GitHub puede ser detectado mediante análisis de comportamiento
Los equipos defensivos pueden implementar reglas Suricata específicas para detectar patrones de Mythic, como las proporcionadas en el artículo de Securelist. Además, soluciones modernas de EDR (Endpoint Detection and Response) y NDR (Network Detection and Response) pueden identificar comportamientos característicos de Mythic.
Casos de uso documentados
- SpecterOps: La empresa detrás de gran parte del desarrollo de Mythic lo utiliza en sus propias operaciones de Red Team
- Kaspersky pentesting: Los equipos de pruebas de penetración de Kaspersky han adoptado Mythic para operaciones ofensivas
- Arcane Wolf (Mythic Likho): Grupo APT que ha utilizado Mythic en campañas maliciosas
- Paper Werewolf (GOFFEE): Otro grupo APT que ha empleado Mythic en sus operaciones
El desarrollo de Mythic es muy activo
El proyecto tiene más de 1,600 commits en GitHub y recibe contribuciones regulares de desarrolladores de SpecterOps y de la comunidad. Las versiones se actualizan frecuentemente, y la documentación se mantiene en docs.mythic-c2.net. El framework también participa en iniciativas como Google Summer of Code.
Limitaciones importantes
- ❌ Complejidad de despliegue: Al estar basado en Docker, requiere familiaridad con contenedores y puede ser más complejo de desplegar que frameworks binarios como Sliver.
- ❌ Consumo de recursos: La arquitectura de microservicios (múltiples contenedores Docker) consume más recursos que frameworks más ligeros.
- ❌ Detección por soluciones NDR: A pesar de sus capacidades de evasión, el tráfico de red de Mythic puede ser detectado mediante análisis de patrones.
- ❌ Ecosistema menos maduro que Cobalt Strike: Aunque está creciendo rápidamente, el número de agentes, BOFs y scripts disponibles es menor que para Cobalt Strike.
- ❌ Curva de aprendizaje pronunciada: La arquitectura modular y la variedad de opciones pueden resultar abrumadoras para nuevos usuarios.
Alternativa recomendada
Si buscas alternativas a Mythic para operaciones de Red Team o pruebas de penetración, considera las siguientes opciones:
Cobalt Strike (comercial): Sigue siendo el estándar de oro para Red Teams profesionales, con un ecosistema maduro, excelente evasión de EDR y soporte empresarial. Ideal para operaciones de larga duración.
Sliver (open source): Framework de post-explotación escrito en Go, desarrollado por BishopFox. Es más ligero que Mythic y más fácil de desplegar, pero con menos capacidades de colaboración y scripting.
Havoc (open source): Framework moderno con interfaz gráfica similar a Cobalt Strike y payload «Demon». Está ganando popularidad, pero actualmente sufre problemas de estabilidad y OPSEC.
Metasploit Framework (open source): Mejor para la fase de explotación inicial que para post-explotación prolongada. Su payload Meterpreter es potente pero más detectable.
Empire (open source): Framework centrado en PowerShell y Python, ideal para entornos Windows, aunque su desarrollo se ha ralentizado.
Mythic es el framework C2 de código abierto más completo y prometedor del momento, ofreciendo una combinación única de arquitectura moderna, colaboración multiusuario, soporte para múltiples lenguajes de agente y canales de comunicación exóticos. Es ideal para equipos rojos que buscan una alternativa a Cobalt Strike sin coste de licencia, y para profesionales de seguridad que desean estudiar las técnicas avanzadas de post-explotación.
Sección FAQ
¿Mythic es gratis o de pago?
Mythic es completamente gratuito y de código abierto. No tiene versiones de pago ni funcionalidades bloqueadas. Puedes descargarlo, modificarlo y utilizarlo libremente.
¿Funciona en Linux, macOS, Windows 10 y Windows 11?
El servidor de Mythic funciona mejor en Linux (Ubuntu/Debian/Kali recomendado), aunque también puede ejecutarse en macOS y Windows (mediante WSL2). Los agentes generados por Mythic son multiplataforma y pueden ejecutarse en Windows, macOS y Linux.
¿Qué diferencia a Mythic de Sliver?
La principal diferencia es la arquitectura y la colaboración. Mythic está construido sobre microservicios Docker, tiene una interfaz web React, soporta múltiples lenguajes de agente (C#, Python, Go, C, etc.) y canales C2 exóticos como Discord y GitHub. Sliver es un único binario (escrito en Go) con interfaz CLI/Web, más ligero y fácil de desplegar, pero con menos capacidades de colaboración y lenguajes de agente.
¿Por qué los actores de amenazas usan Mythic?
Los actores de amenazas usan Mythic porque es gratuito, modular y difícil de detectar. Su arquitectura permite personalizar agentes y canales de comunicación para evadir defensas específicas. Además, los perfiles C2 como Discord y GitHub permiten que el tráfico malicioso se mezcle con actividad legítima de servicios ampliamente utilizados.
¿Qué ha pasado con el desarrollo de Mythic?
El desarrollo de Mythic es muy activo. El proyecto está mantenido por Cody Thomas (its-a-feature) y contribuidores de SpecterOps, con actualizaciones frecuentes en GitHub. El framework tiene más de 1,600 commits y una comunidad activa que desarrolla nuevos agentes y perfiles C2.
