CRTO Cheatsheet


Cobalt Strike

Arquitectura y Componentes

Cobalt Strike está compuesto por 3 elementos principales:

1. Beacon

  • Agente de post-explotación que gestiona la comunicación con el Team Server
  • Implementado como DLL de Windows
  • Puede empaquetarse en múltiples formatos: EXE, PS1, DLL, etc.

2. Team Server

  • Sistema central donde se almacenan datos y se gestionan las conexiones
  • Punto de control para todos los beacons activos

3. Cliente

  • Interface utilizada por los operadores para gestionar beacons
  • Permite interactuar con los sistemas comprometidos

💡 Tip de Seguridad Operacional (OPSEC): Es recomendable usar múltiples Team Servers para diferentes etapas de la operación. Esto previene la pérdida total de acceso si uno de los servidores es detectado y bloqueado.


Listeners

Los listeners definen el método de comunicación entre el beacon y el Team Server. Se clasifican en dos categorías principales:

Tipos de Listeners

TipoProtocoloComunicaciónUso Principal
EgressHTTP/HTTPS, DNSDirecta con Team ServerC2 principal
Peer-to-PeerSMB, TCPEntre beaconsMovimiento lateral

Listeners Egress

  • HTTP/HTTPS: Comunicación directa con el Team Server vía web
  • DNS: Canal de comunicación mediante queries DNS

Listeners Peer-to-Peer

  • SMB: Comunicación mediante named pipes
  • TCP: Comunicación mediante sockets TCP

Configuración Práctica

Crear Listener HTTP/HTTPS

Paso 1: Acceder al menú de listeners

Cobalt Strike → Listeners

Paso 2: Configurar parámetros del listener

ParámetroDescripciónEjemplo
NameNombre identificativo del listenerhttp
PayloadTipo de beaconBeacon HTTP
HTTP HostsDominios/IPs para callbackwww.bleepincomputer.com
HTTP Host (Stager)Host para el stagerwww.bleepincomputer.com
HTTP Port (C2)Puerto para C280 o 443
Host Rotation StrategyEstrategia de rotaciónround-robin
Max Retry StrategyReintentosnone
ProfilePerfil malleable C2default

Paso 3: Guardar configuración


Crear Listener SMB

Configuración de Beacon SMB:

ParámetroValorDescripción
NamesmbIdentificador del listener
PayloadBeacon SMBTipo de payload
Pipename (C2)E-4b2f70b3-ceba-42a5-a4b5-...Named pipe para comunicación

📝 Nota: El pipename debe ser único y puede personalizarse para mejorar OPSEC.


Crear Listener TCP

TCP Estándar

Name: tcp
Payload: Beacon TCP
Port (C2): 4444
□ Bind to localhost only

TCP Local (Bind)

Name: tcp-local
Payload: Beacon TCP
Port (C2): 1337
☑ Bind to localhost only

⚠️ Importante: El listener TCP con “Bind to localhost only” solo acepta conexiones locales, útil para pivoting interno.


Generación de Payloads

Windows Executable (Stageless)

Ruta: Attacks → Packages → Windows Executable (Stageless)

Opciones de generación:

OpciónDescripción
FolderDirectorio de salida
System CallMétodo de syscall (usar profile o especificar)
HTTP LibraryLibrería HTTP (usar profile o especificar)
DNS Comm ModeModo de comunicación DNS
SignFirma digital de ejecutables (requiere profile)

Características:

  • Genera payloads x86 y x64 stageless para cada listener
  • Los payloads stageless incluyen el beacon completo (no requieren stage adicional)
  • Opción de firma de EXE y DLL (requiere configuración de code-signing profile)

Comandos Rápidos

# Generar payload stageless
Attacks Packages Windows Executable (Stageless)

# Crear nuevo listener
Cobalt Strike Listeners Add

# Verificar listeners activos
View Listeners

Referencias


Initial Access - Acceso Inicial

MITRE ATT&CK: TA0001

El acceso inicial es la táctica que permite establecer un initial foothold (punto de apoyo inicial) en la red objetivo. Las técnicas más comunes incluyen:

  • Explotación de servicios públicos (servidores web, portales VPN, RDP)
  • Compromiso de cadena de suministro (Supply Chain)
  • Ingeniería social y phishing (método más efectivo y común)

Taxonomía de Ataques de Phishing

La siguiente taxonomía describe la estructura de una campaña de phishing moderna:

DELIVERY → CONTAINER → (TRIGGER + PAYLOAD + DECOY)

Componentes de la Cadena de Ataque

ComponenteDescripciónEjemplos
DeliveryMétodo de entrega del paquete al usuarioEmail, link malicioso, USB drop, sitio comprometido
ContainerFormato usado para empaquetar los archivosZIP, ISO, IMG, VHD, RAR, 7z
TriggerMecanismo que inicia la ejecución del payloadMacro VBA, LNK, HTA, JavaScript, MSI
PayloadCódigo malicioso a ejecutarBeacon C2, Stager, Shellcode, Script
DecoyArchivo legítimo mostrado a la víctimaPDF, imagen, documento, factura

Caso de Estudio: Lumma Stealer

Cadena de Infección Completa

[Usuarios] → [Click en Link] → [Descarga PDF]

[PowerShell Script ejecutado] → [Descarga payload encriptado]

[Segunda etapa PowerShell] → [Ejecuta Lumma Stealer]

[Exfiltración de datos] → [C2 encriptado]

Delivery Method: Link malicioso en email Container: PDF weaponizado Trigger: PowerShell ejecutado al abrir Payload: Lumma Stealer (infostealer) Decoy: Documento PDF legítimo mostrado

Dominios C2 utilizados:

  • unbeatable0.org
  • yury-gagarin.com
  • vladimir-ulyanov.com
  • nikolay-rimsky.su
  • aleksandr-block.com
  • mikhail-lomonosov.com
  • petr-tchaikovsky.com
  • lev-tolstoi.com

Payloads y Decoys

Payload: El Núcleo del Ataque

El payload contiene el código malicioso que se ejecutará en el sistema comprometido. En operaciones de Red Team, típicamente incluye:

Tipos de Payloads Comunes

Beacons de C2

  • Cobalt Strike Beacon
  • Sliver implant
  • Mythic agents
  • Havoc Demon

Stagers

  • Descargadores de segunda etapa
  • Shellcode loaders
  • Reflective DLL injection

Scripts

  • PowerShell Empire
  • Macros VBA
  • HTA (HTML Applications)
  • JavaScript malicioso

Shellcode

  • Shellcode embebido con evasión
  • Position-independent code
  • Syscall directo para evasión EDR

Decoy: Manteniendo la Credibilidad

El decoy es contenido legítimo mostrado al usuario después de activar el trigger, diseñado para no levantar sospechas.

Tipos de Decoys Efectivos

Tipo de DecoyUsoEjemplo
PDF legítimoDocumentos corporativosFactura, reporte, política
ImagenContenido visual esperadoLogo, infografía, foto
Hoja de cálculoDatos tabularesPresupuesto, inventario, lista
Documento WordTexto formateadoContrato, propuesta, memo

Consideraciones de OPSEC para Decoys

🎯 Regla de Oro: El decoy debe ser coherente con el pretexto de ingeniería social.

Ejemplos de Coherencia:

PretextoDecoy Apropiado
Email de facturación de proveedorFactura realista con logo y datos correctos
Currículum enviado a RRHHCV bien formateado con experiencia relevante
Política de IT internaDocumento con branding corporativo real
Reporte financiero Q4Excel con gráficos y datos creíbles

Importancia Crítica:

La calidad del decoy es fundamental para:

  • Evitar que la víctima reporte el incidente inmediatamente
  • Ganar tiempo para establecer persistencia
  • Mantener credibilidad para futuros ataques
  • Reducir el tiempo de respuesta del equipo de seguridad

DLL Side-Loading (DLL Hijacking)

Concepto

El DLL Hijacking explota el orden de búsqueda de librerías dinámicas en Windows, forzando a una aplicación legítima a cargar una DLL maliciosa en lugar de su dependencia legítima.


Orden de Búsqueda de DLLs en Windows

Windows busca DLLs en el siguiente orden (simplificado):

1. Directorio de la aplicación
2. C:\Windows\System32
3. C:\Windows\System (16-bit)
4. C:\Windows
5. Directorio de trabajo actual
6. Directorios en la variable PATH

💡 Tip: El hijacking es posible cuando una aplicación intenta cargar una DLL que no existe o no está en una ubicación prioritaria.


Metodología de Identificación

Herramienta: Process Monitor (Sysinternals)

Filtros recomendados:

Path ends with: .dll
Result is: NAME NOT FOUND

Estos filtros identifican DLLs que la aplicación intenta cargar pero no encuentra, creando oportunidades de hijacking.


WinSxS: Windows Component Store

Ubicación: C:\Windows\WinSxS

El directorio WinSxS (Windows Side-by-Side) almacena múltiples versiones de dependencias del sistema para prevenir conflictos entre aplicaciones.

¿Por qué es importante para DLL Hijacking?

Ventajas para el atacante:

  1. Versiones desactualizadas coexisten con parcheadas

    • DLLs vulnerables permanecen incluso después de parches
    • Versión antigua y vulnerable disponible en WinSxS
  2. Superficie de ataque expandida

    • Múltiples versiones de bibliotecas explotables
    • Oportunidades de side-loading aumentadas
  3. Bypass de parches

    • Explotar vulnerabilidades “oficialmente parcheadas”
    • Sistema considera el patch aplicado, pero versión vieja existe

Ejemplo Práctico: ngentask.exe

Paso 1: Ejecutar ngentask.exe desde System32

C:\Users\Attacker> C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngentask.exe

Observación en Process Monitor:

  • Busca DLLs en directorio local
  • Busca en GAC (Global Assembly Cache)
  • Múltiples NAME NOT FOUND para DLLs

Paso 2: Buscar versiones alternativas en WinSxS

PS C:\Users\Attacker> ls -Path C:\Windows\WinSxS -Recurse -Filter ngentask.exe | Select -expand FullName

Resultados encontrados:

C:\Windows\WinSxS\amd64_netfx4-ngentask_exe_b03f5f7f11d50a3a_4.0.15805.0_none_d4039dd5692796db\ngentask.exe

C:\Windows\WinSxS\amd64_netfx4-ngentask_exe_b03f5f7f11d50a3a_4.0.15805.285_none_cbd46ba524299690\ngentask.exe

C:\Windows\WinSxS\amd64_netfx4-ngentask_exe_b03f5f7f11d50a3a_4.0.15840.3_none_d3fea185692c10e1\ngentask.exe

C:\Windows\WinSxS\x86_netfx4-ngentask_exe_b03f5f7f11d50a3a_4.0.15805.0_none_1bb0d4ac7da3bfe1\ngentask.exe

C:\Windows\WinSxS\x86_netfx4-ngentask_exe_b03f5f7f11d50a3a_4.0.15805.285_none_1381a27c38a5bf96\ngentask.exe

C:\Windows\WinSxS\x86_netfx4-ngentask_exe_b03f5f7f11d50a3a_4.0.15840.3_none_1babd85c7da839e7\ngentask.exe

Paso 3: Ejecutar versión antigua desde WinSxS

PS C:\Users\Attacker> C:\Windows\WinSxS\amd64_netfx4-ngentask_exe_b03f5f7f11d50a3a_4.0.15805.0_none_d4039dd5692796db\ngentask.exe

Análisis en Process Monitor:

  • Versión antigua busca DLLs en su directorio local primero
  • Oportunidad de colocar DLL maliciosa en ese directorio
  • Aplicación legítima cargará nuestra DLL antes que las del sistema

Explotación: DLL Side-Loading

Workflow del ataque:

1. Identificar ejecutable vulnerable en WinSxS
2. Analizar sus dependencias con Process Monitor
3. Crear DLL maliciosa con exports esperados
4. Colocar EXE legítimo + DLL maliciosa en directorio de ataque
5. Ejecutar: EXE legítimo carga DLL maliciosa
6. Evasión: Firma digital del EXE permanece válida

Ventajas de esta técnica:

  • ✅ Ejecutable firmado y legítimo de Microsoft
  • ✅ Bypass de AppLocker/WDAC
  • ✅ Menor detección por EDR
  • ✅ Living-off-the-land binaries (LOLBins)

Comandos de Referencia Rápida

# Buscar ejecutables en WinSxS
Get-ChildItem -Path C:\Windows\WinSxS -Recurse -Filter *.exe | Select FullName

# Buscar DLLs específicas
ls -Path C:\Windows\WinSxS -Recurse -Filter <nombre>.dll

# Analizar imports de un ejecutable
dumpbin /imports <ejecutable.exe>

# Monitorear carga de DLLs con Process Monitor
# Filtro 1: Path ends with .dll
# Filtro 2: Result is NAME NOT FOUND

Recursos Adicionales


Última actualización: 2024