Playbook: Infección de Malware en Endpoint
Este es el momento donde dejas el simulador y te toca actuar. Hasta ahora todo era teoría, laboratorios, ejercicios. Pero cuando un ransomware explota a las 3 AM, no tienes tiempo de pensar. Solo tienes este playbook. Vamos paso a paso, sin pánico.
Objetivo de esta Guía
Aprender que la defensa no es improvisación. Es una ejecución metódica militar basada en un manual pre-escrito.
Cuando un motor del avión explota en pleno vuelo, el piloto no se sienta a meditar creativamente sobre qué botón apretar. El piloto saca de su guantera una tarjeta plástica llamada Emergency Checklist (Playbook) y ejecuta los pasos mecánicamente. En ciberseguridad corporativa, cuando un Ransomware ataca a las 3:00 AM, el Analista del Blue Team abre este documento.
Fases de Respuesta a Incidentes (El Ciclo PICERL)
Todo Playbook profesional se basa en la metodología del Instituto SANS o NIST. Hoy ejecutaremos: Contención, Erradicación y Recuperación.
Escenario (La Alarma)
3:14 AM: El EDR dispara una alerta crítica tipo "Ransomware.Crysis" en la computadora de la Directora de Finanzas.
Indicadores de Compromiso Iniciales
Alertas de EDR a las que responder:
| Alerta | Descripción | Severidad |
|---|---|---|
| Proceso creando archivos con extensión .encrypted | Ransomware clásico en acción | Crítica |
| Conexión saliente a IP de C2 conocida | Beaconing del malware | Alta |
| Modificación masiva de archivos | Cifrado en progreso | Crítica |
| Desactivación de servicios de seguridad | Defense Evasion | Alta |
| Ejecución de script desde Office | Macro maliciosa activada | Alta |
Reglas de Detección SIEM:
Splunk - Detección de Ransomware (Creación Masiva de Archivos):
index=windows source=WinEventLog:Security EventCode=4663 | search ObjectName IN ("*.encrypted", "*.locked", "*.crypted", "*.ryk") | stats count by ComputerName, UserName | where count > 50 | eval severity = "CRITICAL" # Detección de procesos hijos anómalos desde Office index=windows source=WinEventLog:Security EventCode=4688 | search ParentProcessName IN ("*WINWORD.EXE", "*EXCEL.EXE", "*OUTLOOK.EXE") | where NewProcessName IN ("*powershell.exe", "*cmd.exe", "*wscript.exe", "*cscript.exe", "*mshta.exe") | table _time, ComputerName, ParentProcessName, NewProcessName, CommandLine
KQL (Microsoft Sentinel) - Procesos Anómalos de Office:
DeviceProcessEvents | where Timestamp > ago(1h) | where InitiatingProcessFileName in ("WINWORD.EXE", "EXCEL.EXE", "OUTLOOK.EXE", "POWERPNT.EXE") | where FileName in ("powershell.exe", "cmd.exe", "wscript.exe", "cscript.exe", "mshta.exe", "regsvr32.exe") | project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, FileName, ProcessCommandLine
Sysmon - Eventos Clave para Detección de Malware:
| Sysmon Event ID | Nombre | Uso |
|---|---|---|
| 1 | Process Creation | Detectar procesos hijos sospechosos |
| 3 | Network Connect | Conexiones a IPs C2 conocidas |
| 7 | Image Loaded | DLL sideloading |
| 8 | CreateRemoteThread | Process injection |
| 10 | Process Access | Acceso a LSASS (robo de credenciales) |
| 11 | FileCreate | Creación de archivos en directorios sospechosos |
| 13 | RegistryEvent | Persistencia en registro |
| 15 | FileCreateStreamHash | Alternate Data Streams (ADS) |
| 22 | DNSEvent | Consultas DNS a dominios DGA |
Paso 1: Contención (Cortar la Hemorragia)
El objetivo inmediato no es borrar el virus. El objetivo es evitar que el virus salte de la computadora de Finanzas hacia el Servidor de Bases de Datos (Movimiento Lateral).
-
Aislamiento de Red: Usar la consola del EDR para hacer clic en "Isolate Host". Esto desconecta la computadora de Finanzas del internet y de la red de la oficina, cerrando las "puertas estancas" del submarino.
Comandos de Aislamiento:
# Si no hay EDR, aislamiento manual: # En Windows: netsh advfirewall set allprofiles state on netsh interface set interface "Ethernet" admin=disable ipconfig /release # Bloquear todo el tráfico saliente excepto al SIEM netsh advfirewall firewall add rule name="BLOCK_ALL_OUT" dir=out action=block -
No Apagar el Equipo: ¡Error clásico de novato! Si apagas la computadora, borras la Memoria RAM. La Memoria RAM es donde están las pruebas forenses de cómo entró el hacker.
Preservación de Evidencia Volátil (Orden de Volatilidad):
- Memoria RAM: Capturar con
DumpIt.exe,WinPmem, oFTK Imager(Modo memoria). - Procesos en ejecución:
tasklist /v, PowerShellGet-Process. - Conexiones de red activas:
netstat -anob,Get-NetTCPConnection. - Conexiones de red establecidas:
netstat -no | findstr ESTABLISHED. - Sesiones de usuario:
qwinsta,query user. - Archivos abiertos:
handle.exe(Sysinternals),net file. - Registro de eventos: Exportar
.evtxde System, Security, Application, PowerShell.
- Memoria RAM: Capturar con
-
Deshabilitar la Cuenta: Suspender la cuenta de Active Directory de la Directora de Finanzas para bloquear su identidad temporalmente.
Disable-ADAccount -Identity "directora.finanzas" Get-ADUser -Identity "directora.finanzas" | Set-ADUser -AccountNotDelegated $true
Paso 2: Erradicación (Extirpar el Cáncer)
Una vez que el paciente dejó de sangrar, procedemos a la cirugía.
-
Kill Process: Terminar forzosamente el proceso malicioso (
.exe) desde la consola central.# Identificar proceso malicioso Get-Process | Where-Object {$_.ProcessName -match "ransom|encrypt|crypto"} # Terminar el proceso Stop-Process -Id <PID> -Force # Encontrar y matar por nombre taskkill /F /IM ransom.exe /T -
Borrado Quirúrgico: Eliminar el archivo del disco duro y borrar las llaves de Registro de Windows que el virus usó para intentar sobrevivir al reinicio de la computadora (Persistencia).
Mecanismos de Persistencia a Revisar:
Mecanismo Ruta/Localización Comando de Revisión Run Keys HKLM\Software\Microsoft\Windows\CurrentVersion\Runreg query HKLM\...\RunRunOnce HKLM\Software\Microsoft\Windows\CurrentVersion\RunOncereg query HKLM\...\RunOnceScheduled Tasks schtasksschtasks /query /fo LIST /vStartup Folder %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startupdir "%APPDATA%\...\Startup"Service HKLM\System\CurrentControlSet\Servicessc query type= service state= allWMI Persistence __EventFilter+__FilterToConsumerBindingGet-WmiObject -Namespace root\subscription -Class __EventFilterBoot Execute HKLM\System\CurrentControlSet\Control\Session Manager\BootExecutereg query "HKLM\...\BootExecute"AppInit_DLLs HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLsreg query "HKLM\...\AppInit_DLLs"LSA Providers HKLM\SYSTEM\CurrentControlSet\Control\Lsareg query HKLM\...\Lsa -
Escaneo de la Empresa: Tomar el "Hash" (La huella dactilar matemática del virus) y buscarlo en las otras 5,000 computadoras de la empresa para asegurar que el cáncer no hizo metástasis.
# Calcular hash del archivo malicioso Get-FileHash -Path "C:\Malware\ransom.exe" -Algorithm SHA256 # Buscar el hash en toda la red (ejemplo con KQL) DeviceFileEvents | where SHA256 == "<hash_del_malware>" | project DeviceName, FileName, FolderPath # YARA scan masivo yara64.exe -r regla_malware.yara C:\
Análisis de Memoria RAM (Volatility)
Si se preservó la RAM, ejecutar análisis forense:
# Identificar perfil del sistema volatility -f memory.dump imageinfo # Listar procesos volatility -f memory.dump --profile=Win10x64 pslist volatility -f memory.dump --profile=Win10x64 pstree # Encontrar conexiones de red volatility -f memory.dump --profile=Win10x64 netscan # Extraer cmdlines volatility -f memory.dump --profile=Win10x64 cmdline # Buscar inyección de código volatility -f memory.dump --profile=Win10x64 malfind volatility -f memory.dump --profile=Win10x64 hollowfind # Extraer archivos de la RAM volatility -f memory.dump --profile=Win10x64 filescan | findstr "documento" volatility -f memory.dump --profile=Win10x64 dumpfiles -Q 0xXXXXXXXX -D ./output/
Indicadores de Compromiso (IoCs) a Recolectar
| Tipo | Descripción | Ejemplo |
|---|---|---|
| File Hash | SHA256 del ejecutable malicioso | e3b0c44298fc1c14... |
| C2 IP | IP del servidor de comando y control | 185.130.5.100 |
| C2 Domain | Dominio usado para beaconing | evilcorp.ddns.net |
| Wallet Address | Dirección Bitcoin/Monero del rescate | 1A1zP1eP5QGefi2... |
| Extensión | Extensiones de archivos cifrados | .encrypted, .locked, .ryk |
| Ransom Note | Nombre del archivo de rescate | README_RECOVER.txt, HOW_TO_DECRYPT.html |
| Registry Key | Claves de persistencia creadas | HKLM\...\Run\WindowsUpdate |
| Named Pipe | Pipes usados para IPC entre procesos | \\.\pipe\srvsvc |
| Mutex | Nombre del mutex creado por el malware | Global\MSOfficeUpdateMutex |
Paso 3: Recuperación (Volver a Volar)
El virus ha muerto. Es hora de devolverle la computadora a la Directora.
-
Restaurar desde Cero: Regla de oro militar. Nunca confíes en un sistema que fue hackeado. Se debe formatear el disco duro de la Directora de Finanzas y reinstalar Windows desde una imagen limpia corporativa.
# Automatización de rebuild con MDT/SCCM o Intune: # Windows Autopilot Reset desde Intune # O reinstalación manual con USB corporativo: # diskpart -> clean -> convert GPT -> install -
Restaurar Datos: Recuperar los archivos Excel de Finanzas utilizando el servidor de Backups. (Gracias al RPO, solo perdió el trabajo de 4 horas).
Verificación de Integridad de Backups:
- Verificar que el backup no esté infectado (fecha anterior a la infección).
- Escanear archivos restaurados con antivirus.
- Comparar hashes de archivos conocidos con la baseline.
-
Reconectar a la Red: Levantar el aislamiento del EDR y reactivar la cuenta de Active Directory.
Enable-ADAccount -Identity "directora.finanzas" # Verificar conectividad después de restaurar Get-NetAdapter | Restart-NetAdapter
Análisis Forense Post-Incidente
YARA Rules para Detección de Malware
rule Ransomware_Generic { meta: description = "Detección genérica de ransomware" author = "SOC Team" strings: $mz = {4D 5A} // MZ header $ransom_note = "README_RECOVER" nocase $decrypt_ext = ".encrypted" nocase $wallet = /1[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{25,34}/ $c2_domain = /(http|https):\/\/([a-z0-9]+\.)?(ddns|duckdns|noip)\.(net|org|com)/ condition: $mz at 0 and 2 of ($ransom_note, $decrypt_ext, $wallet, $c2_domain) } rule Process_Injection { meta: author = "DFIR Team" strings: $api = "CreateRemoteThread" ascii $api2 = "VirtualAllocEx" ascii $api3 = "WriteProcessMemory" ascii condition: all of ($api*) and filesize < 2MB }
Wooden/Enterprise Reporting Template
# INFORME DE INCIDENTE: Ransomware **ID:** INC-2026-001 **Fecha:** YYYY-MM-DD **Clasificación:** CRÍTICO **Reportado por:** [Nombre] ## Resumen Ejecutivo [2-3 líneas del incidente, impacto y acción tomada] ## Timeline | Hora | Evento | Detalle | |------|--------|---------| | 03:14 | Alerta EDR | Ransomware.Crysis detectado en HOST-FIN-01 | | 03:16 | Contención | Host aislado de red | | 03:22 | Erradicación | Proceso malicioso terminado | | 04:00 | Rebuild | Inicio de reinstalación de SO | ## IoCs Identificados - **SHA256:** e3b0c44298fc1c... - **C2 IP:** 185.130.5.100 - **Extensión:** .encrypted - **Dominio:** evilcorp.ddns.net ## Sistemas Afectados - HOST-FIN-01 (Directora de Finanzas) - COMPROMETIDO - Reconstruido ## Datos Afectados - Archivos corporativos locales: ~45GB cifrados (restaurados de backup) ## Acciones de Contención 1. Aislamiento de red del host afectado 2. Deshabilitación de cuenta de usuario 3. Bloqueo de IP C2 en firewall perimetral ## Lecciones Aprendidas 1. [Recomendación] 2. [Recomendación]
4. Criterio de Dominio (Autoevaluación)
Revisa si puedes seguir el manual del piloto:
- A las 4:00 AM, el analista de seguridad entra en pánico al ver una alerta de Ransomware y decide "apagar la computadora" tirando del cable de electricidad. Explica por qué esta violación directa del Playbook de Contención destruye las esperanzas del equipo Forense de descubrir qué vulnerabilidad usó el atacante.
- Explica la diferencia de objetivos entre la fase de Contención y la fase de Erradicación. ¿Por qué es un error fatal intentar erradicar un virus de la computadora antes de aislarla de la red corporativa?
- En la fase de Recuperación, el Playbook dicta formatear el disco duro en lugar de simplemente "borrar el virus detectado". Usando el concepto de "Confianza Cero" (Zero Trust), justifica por qué un Arquitecto de Seguridad jamás volvería a confiar en ese sistema operativo.
- ¿Por qué es fundamental que estos Playbooks se escriban, aprueben y practiquen (Simulacros de Mesa / Tabletop Exercises) meses antes de que ocurra un incidente real?
- Nombra tres mecanismos de persistencia en Windows que un analista debe revisar durante la Erradicación.
Fuentes oficiales y referencias
Consulta estas fuentes primarias para verificar y ampliar la información de esta guía.
En esta página
- Objetivo de esta Guía
- Fases de Respuesta a Incidentes (El Ciclo PICERL)
- Escenario (La Alarma)
- Indicadores de Compromiso Iniciales
- Paso 1: Contención (Cortar la Hemorragia)
- Paso 2: Erradicación (Extirpar el Cáncer)
- Análisis de Memoria RAM (Volatility)
- Indicadores de Compromiso (IoCs) a Recolectar
- Paso 3: Recuperación (Volver a Volar)
- Análisis Forense Post-Incidente
- YARA Rules para Detección de Malware
- Wooden/Enterprise Reporting Template
- Resumen Ejecutivo
- Timeline
- IoCs Identificados
- Sistemas Afectados
- Datos Afectados
- Acciones de Contención
- Lecciones Aprendidas
- 4. Criterio de Dominio (Autoevaluación)