Principianteanálisis dinámicosandboxdebuggerx64dbgProcmonbehavioral

Análisis Dinámico de Malware: Sandboxes, Debuggers y Monitorización

Guía completa de análisis dinámico de malware. Ejecución controlada en sandbox (ANY.RUN, Joe Sandbox, CAPE), debugging con x64dbg y GDB, monitorización con Procmon/Sysmon/Wireshark, y el workflow de análisis behavioral paso a paso.

MalwareIntel Research··8 min lectura
Serie: Entornos de Análisis — Parte 3

Ver al malware en acción

El análisis estático te dice qué puede hacer el malware. El análisis dinámico te dice qué hace realmente. Un PE puede importar CreateRemoteThread (capacidad de inyección) pero ¿en qué proceso inyecta? ¿Qué código inyecta? ¿Cuándo lo hace? Solo la ejecución controlada responde estas preguntas.

Sandboxes automatizados

Sandboxes online

SandboxTipoInteractivoAnálisisCoste
ANY.RUNCloudSí (control en tiempo real)Procesos, red, archivos, registro, MITRE mappingFree tier + comercial
Joe SandboxCloudNo (automatizado)El más profundo: behavioral, YARA, Sigma, clasificaciónComercial (community free)
Hybrid AnalysisCloudNoFalcon sandbox (CrowdStrike). Buenos resultados, gratuitoGratuito
Triage (Hatching)CloudParcialRápido, buen análisis de red y behavioralFree tier + comercial
VirusTotal (behavior)CloudNoEjecución en sandbox de VT, behavioral reportGratuito

Sandboxes self-hosted

SandboxBaseVentaja
CAPE (Cuckoo fork)Python/KVMOpen source, altamente configurable, extracción de configs
Cuckoo 3Python/KVMVersión moderna de Cuckoo (reescrito)
DrakvufXenIntrospección via hypervisor (sin agente en la VM)
FAMEPythonFramework de análisis modular

Workflow con ANY.RUN

1. Subir muestra a ANY.RUN
2. Seleccionar OS (Windows 10/11, Office version)
3. Configurar: 
   - Duracion (60-300 segundos)
   - Red (permitir o simular)
   - Interactividad (si necesita click del usuario)
4. Observar en tiempo real:
   - Procesos creados (arbol de procesos)
   - Conexiones de red (DNS, HTTP, TCP)
   - Archivos creados/modificados
   - Registro modificado
5. Interactuar si necesario (hacer click en "Enable Macros", etc.)
6. Descargar informe: IOCs, PCAP, dropped files, screenshots

Workflow con CAPE (self-hosted)

# Instalar CAPE
git clone https://github.com/kevoreilly/CAPEv2
cd CAPEv2
./installer/cape2.sh base

# Subir muestra via API
curl -F "[email protected]" http://localhost:8000/apiv2/tasks/create/file/

# Ver resultados
# Web UI: http://localhost:8000
# Resultados incluyen: extracted configs, dumped payloads, YARA matches

CAPE es especialmente valioso por su capacidad de extraer configuraciones de malware automáticamente (Agent Tesla configs, Cobalt Strike beacon configs, RAT configs).

Análisis dinámico manual

Herramientas de monitorización en Windows

HerramientaQué monitorizaUso
Process Monitor (Procmon)Archivos, registro, procesos, red (básico)Monitorización en tiempo real de toda actividad
Process Hacker / System InformerProcesos, threads, handles, memoria, redInspección detallada de procesos
RegshotCambios en el registroSnapshot antes/después de ejecución
WiresharkTráfico de red completoCaptura y análisis de PCAP
FakeNet-NGDNS, HTTP, SMTP, FTP falsosSimular servicios de red para que el malware "funcione"
INetSimServicios de red simuladosAlternativa a FakeNet (Linux)
API MonitorLlamadas a APIs de WindowsLogging detallado de API calls
SysmonEventos del sistema (procesos, red, registro, archivos)Telemetría persistente

Workflow de análisis dinámico manual

ANTES de ejecutar:
1. Snapshot de la VM (poder revertir)
2. Iniciar Procmon con filtros (excluir ruido del sistema)
3. Iniciar Wireshark (captura de tráfico)
4. Iniciar FakeNet-NG o INetSim (servicios falsos de red)
5. Iniciar Process Hacker (monitorización de procesos)
6. Tomar snapshot de registro con Regshot (primer snapshot)

EJECUTAR la muestra:
7. Ejecutar el malware
8. Esperar 2-5 minutos (observar comportamiento)
9. Si el malware requiere interacción: proporcionar input

DESPUÉS:
10. Tomar segundo snapshot de Regshot (comparar cambios)
11. Detener Procmon, Wireshark
12. Guardar logs, PCAPs, screenshots
13. Analizar:
    - Procmon: qué archivos/registro modificó
    - Wireshark: a qué IPs/dominios conectó
    - Process Hacker: qué procesos creó, inyecciones
    - Regshot: qué claves de registro cambió
14. Revertir VM al snapshot limpio

Procmon: filtros esenciales

# Filtros recomendados para malware analysis:

# Incluir solo actividad del proceso malware
Process Name is sample.exe then Include

# Excluir ruido del sistema
Process Name is System then Exclude
Process Name is svchost.exe then Exclude
Process Name is explorer.exe then Exclude
Process Name is MsMpEng.exe then Exclude
Operation is QueryBasicInformationFile then Exclude
Operation is QueryStandardInformationFile then Exclude
Operation is RegQueryKey then Exclude
Result is SUCCESS then Include  # Solo operaciones exitosas

FakeNet-NG: simular Internet

FakeNet-NG (Mandiant) simula servicios de Internet para que el malware pueda comunicarse sin conexión real a Internet:

# Instalar (incluido en FlareVM)
# Ejecutar:
FakeNet.exe

# FakeNet intercepta:
# - DNS queries → responde con IP local
# - HTTP requests → responde con pagina generica
# - HTTPS → certificado falso
# - SMTP → acepta emails
# - FTP → acepta conexiones
# - IRC → simula servidor

# El malware "cree" que tiene conexion a Internet
# y ejecuta su comportamiento completo

Debugging con x64dbg

Por qué debuggear malware

El debugging permite:

  • Ejecutar el malware instrucción por instrucción
  • Inspeccionar memoria en cada momento
  • Modificar la ejecución (cambiar registros, parchear código)
  • Extraer datos descifrados de memoria
  • Encontrar el OEP (Original Entry Point) en malware empaquetado
  • Bypasear checks anti-analysis (NOP las instrucciones de detección)

Workflow básico con x64dbg

1. Cargar muestra en x64dbg (File > Open)
2. x64dbg se detiene en el entry point del loader (ntdll)

3. Ejecutar hasta el entry point del programa:
   Debug > Run to User Code (Alt+F9)
   O poner breakpoint en el entry point (Ctrl+G > address)

4. Navegar el codigo:
   F7 = Step Into (entrar en funciones)
   F8 = Step Over (ejecutar funciones sin entrar)
   F9 = Run (ejecutar hasta el siguiente breakpoint)
   
5. Poner breakpoints en funciones interesantes:
   - CreateRemoteThread (inyeccion)
   - VirtualAllocEx (asignacion de memoria remota)
   - InternetConnectA/W (conexion de red)
   - CryptEncrypt (cifrado)
   - RegSetValueExA/W (persistencia)
   
   Ctrl+G > escribir nombre de funcion > F2 (toggle breakpoint)

6. Cuando un breakpoint se activa:
   - Inspeccionar registros (panel derecho)
   - Inspeccionar stack (panel inferior derecho)
   - Inspeccionar memoria (Memory Map, Ctrl+M)
   - Ver parametros de la funcion en la stack

7. Extraer datos:
   - Seleccionar memoria > Follow in Dump
   - Click derecho > Copy > Selection to File

Breakpoints útiles para malware

APIPor qué poner breakpoint
CreateRemoteThreadVer en qué proceso inyecta y qué código
VirtualAllocExVer dónde asigna memoria (tamaño, permisos)
WriteProcessMemoryVer qué datos escribe en otro proceso
InternetConnectAVer el servidor C2 (hostname, puerto)
HttpSendRequestAVer datos enviados al C2
CryptEncryptVer datos antes del cifrado
RegSetValueExAVer qué persistencia configura
CreateFileAVer qué archivos crea
IsDebuggerPresentBypasear anti-debug (cambiar EAX a 0 al retornar)

Anti-debug bypass en x64dbg

# Metodo 1: plugin ScyllaHide
# Plugins > ScyllaHide > Options > seleccionar protecciones
# ScyllaHide parchea automaticamente los checks anti-debug

# Metodo 2: manual
# Breakpoint en IsDebuggerPresent
# Cuando se activa: cambiar EAX a 0 (falso) antes de retornar
# O NOP la instruccion de comparacion

Regshot: comparar estado del registro

1. Ejecutar Regshot
2. Click "1st shot" (snapshot del registro antes)
3. Ejecutar el malware, esperar
4. Click "2nd shot" (snapshot del registro despues)
5. Click "Compare" (ver diferencias)

# Output muestra:
# Keys added: 3
#   HKCU\Software\Microsoft\Windows\CurrentVersion\Run\UpdateService
# Values modified: 5
#   HKCU\...\Run\UpdateService: "C:\Users\user\AppData\svc.exe"

Mapeo MITRE ATT&CK de las técnicas observadas

Después del análisis dinámico, mapear el comportamiento observado a ATT&CK:

Comportamiento observadoTécnica ATT&CK
Conexión HTTP a IP externaT1071.001 (Web Protocols)
Creación de Run keyT1547.001 (Registry Run Keys)
Creación de scheduled taskT1053.005 (Scheduled Task)
Inyección en svchost.exeT1055.001 (DLL Injection)
Eliminación de shadow copiesT1490 (Inhibit System Recovery)
Dump de LSASST1003.001 (LSASS Memory)
Captura de tecladoT1056.001 (Keylogging)
ScreenshotT1113 (Screen Capture)
Exfiltración via HTTP POSTT1041 (Exfiltration Over C2)
DNS query a dominio DGAT1568.002 (Domain Generation Algorithms)

Fuentes y referencias

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.