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
| Tipo | Protocolo | Comunicación | Uso Principal |
|---|---|---|---|
| Egress | HTTP/HTTPS, DNS | Directa con Team Server | C2 principal |
| Peer-to-Peer | SMB, TCP | Entre beacons | Movimiento 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ámetro | Descripción | Ejemplo |
|---|---|---|
| Name | Nombre identificativo del listener | http |
| Payload | Tipo de beacon | Beacon HTTP |
| HTTP Hosts | Dominios/IPs para callback | www.bleepincomputer.com |
| HTTP Host (Stager) | Host para el stager | www.bleepincomputer.com |
| HTTP Port (C2) | Puerto para C2 | 80 o 443 |
| Host Rotation Strategy | Estrategia de rotación | round-robin |
| Max Retry Strategy | Reintentos | none |
| Profile | Perfil malleable C2 | default |
Paso 3: Guardar configuración
Crear Listener SMB
Configuración de Beacon SMB:
| Parámetro | Valor | Descripción |
|---|---|---|
| Name | smb | Identificador del listener |
| Payload | Beacon SMB | Tipo 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ón | Descripción |
|---|---|
| Folder | Directorio de salida |
| System Call | Método de syscall (usar profile o especificar) |
| HTTP Library | Librería HTTP (usar profile o especificar) |
| DNS Comm Mode | Modo de comunicación DNS |
| Sign | Firma 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
| Componente | Descripción | Ejemplos |
|---|---|---|
| Delivery | Método de entrega del paquete al usuario | Email, link malicioso, USB drop, sitio comprometido |
| Container | Formato usado para empaquetar los archivos | ZIP, ISO, IMG, VHD, RAR, 7z |
| Trigger | Mecanismo que inicia la ejecución del payload | Macro VBA, LNK, HTA, JavaScript, MSI |
| Payload | Código malicioso a ejecutar | Beacon C2, Stager, Shellcode, Script |
| Decoy | Archivo legítimo mostrado a la víctima | PDF, 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.orgyury-gagarin.comvladimir-ulyanov.comnikolay-rimsky.sualeksandr-block.commikhail-lomonosov.competr-tchaikovsky.comlev-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 Decoy | Uso | Ejemplo |
|---|---|---|
| PDF legítimo | Documentos corporativos | Factura, reporte, política |
| Imagen | Contenido visual esperado | Logo, infografía, foto |
| Hoja de cálculo | Datos tabulares | Presupuesto, inventario, lista |
| Documento Word | Texto formateado | Contrato, 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:
| Pretexto | Decoy Apropiado |
|---|---|
| Email de facturación de proveedor | Factura realista con logo y datos correctos |
| Currículum enviado a RRHH | CV bien formateado con experiencia relevante |
| Política de IT interna | Documento con branding corporativo real |
| Reporte financiero Q4 | Excel 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:
-
Versiones desactualizadas coexisten con parcheadas
- DLLs vulnerables permanecen incluso después de parches
- Versión antigua y vulnerable disponible en WinSxS
-
Superficie de ataque expandida
- Múltiples versiones de bibliotecas explotables
- Oportunidades de side-loading aumentadas
-
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 FOUNDpara 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
- MITRE ATT&CK - Initial Access
- DLL Hijacking Order
- WinSxS Explained
- Hijacklibs.net - Base de datos de DLL Hijacking
Última actualización: 2024