Procmon, Process Hacker y API Monitor: Monitorización en Tiempo Real
Guía práctica de herramientas de monitorización para análisis dinámico de malware. Process Monitor para I/O y registro, Process Hacker para procesos y memoria, API Monitor para llamadas a APIs, y los filtros que todo analista necesita.
Tres herramientas, tres perspectivas
El análisis dinámico requiere ver el sistema desde múltiples ángulos. Procmon muestra la actividad de I/O (archivos, registro). Process Hacker muestra el estado de procesos y memoria. API Monitor muestra las llamadas a funciones de Windows. Juntas, proporcionan una imagen completa de lo que el malware hace en el sistema.
Process Monitor (Procmon)
Qué monitoriza
Procmon captura en tiempo real toda la actividad del sistema en cuatro categorías:
| Categoría | Icono | Ejemplo de eventos |
|---|---|---|
| File System | Disco | CreateFile, ReadFile, WriteFile, DeleteFile, QueryDirectory |
| Registry | Registro | RegCreateKey, RegSetValue, RegQueryValue, RegDeleteKey |
| Process | Proceso | Process Create, Process Exit, Thread Create, Load Image |
| Network | Red | TCP Connect, TCP Send, TCP Receive, UDP Send |
Filtros para malware analysis
El sistema genera miles de eventos por segundo. Sin filtros, es imposible encontrar lo relevante.
Filtro básico: solo actividad del malware
Process Name | is | sample.exe | Include
Filtros avanzados para detectar comportamiento malicioso:
# Persistencia en registro
Operation | is | RegSetValue | Include
Path | contains | CurrentVersion\Run | Include
# Archivos creados
Operation | is | CreateFile | Include
Result | is | SUCCESS | Include
# DLLs cargadas (injection detection)
Operation | is | Load Image | Include
# Conexiones de red
Operation | begins with | TCP | Include
# Procesos hijos
Operation | is | Process Create | Include
Excluir ruido del sistema:
Process Name | is | svchost.exe | Exclude
Process Name | is | MsMpEng.exe | Exclude
Process Name | is | SearchIndexer.exe | Exclude
Process Name | is | System | Exclude
Path | begins with | C:\Windows\Prefetch | Exclude
Path | begins with | C:\$Extend | Exclude
Workflow con Procmon
1. Abrir Procmon (ya incluido en FLARE VM)
2. Detener captura (Ctrl+E)
3. Limpiar eventos (Ctrl+X)
4. Configurar filtros (Ctrl+L)
5. Iniciar captura (Ctrl+E)
6. Ejecutar malware
7. Esperar 2-5 minutos
8. Detener captura
9. Analizar:
- Tools > Process Tree: ver arbol de procesos creados
- Filtrar por operacion para ver archivos/registro/red
- Buscar strings (Ctrl+F): C2 URLs, paths
10. File > Save: guardar como PML o CSV para analisis posterior
Trucos avanzados
# Ver solo operaciones exitosas de escritura
Operation | is | WriteFile | Include
Result | is | SUCCESS | Include
# Detectar inyeccion de codigo
# Buscar CreateFile + WriteProcessMemory en secuencia
# O filtrar por Load Image en procesos que no deberian cargar esa DLL
# Destacar eventos importantes (colores)
# Highlight: Operation is CreateFile, Color = Yellow
# Highlight: Path contains \Run\, Color = Red
# Copiar eventos al portapapeles con Ctrl+C (incluyendo stack trace)
# El stack trace muestra la cadena de funciones que llevo a la operacion
Process Hacker / System Informer
Capacidades principales
| Capacidad | Descripción | Uso en malware analysis |
|---|---|---|
| Process tree | Visualización jerárquica parent-child | Ver qué proceso creó qué. Malware creando cmd.exe/powershell.exe |
| DLL list | DLLs cargadas por cada proceso | Detectar DLL injection (DLL inesperada en proceso legítimo) |
| Handles | Handles abiertos (archivos, registro, mutexes) | Ver mutex del malware, archivos abiertos |
| Memory | Regiones de memoria del proceso | Buscar strings, PE headers inyectados en memoria RWX |
| Network | Conexiones TCP/UDP por proceso | Ver C2 connections directamente vinculadas al proceso |
| Threads | Threads del proceso con start address | Detectar threads inyectados (start address fuera del módulo principal) |
| Services | Servicios asociados al proceso | Detectar servicios maliciosos |
| GPU | Uso de GPU por proceso | Detectar cryptominers GPU |
Detección de inyección con Process Hacker
1. Abrir Process Hacker
2. Buscar procesos sospechosos:
- svchost.exe con conexiones de red inusuales
- explorer.exe con threads con start address en regiones RWX
- Procesos con nombre que imita procesos del sistema
3. Click derecho en proceso sospechoso > Properties
4. Tab "Modules":
- Buscar DLLs sin firma digital
- Buscar DLLs cargadas desde ubicaciones no estandar (%TEMP%, %APPDATA%)
5. Tab "Memory":
- Buscar regiones con proteccion RWX (Read-Write-Execute)
- Click derecho > "Strings": buscar URLs, IPs, comandos
6. Tab "Threads":
- Start address: debe apuntar a un modulo cargado
- Si apunta a una direccion que no pertenece a ningun modulo: inyeccion
7. Tab "Network":
- Conexiones del proceso a IPs externas
Memory scanning
1. En Process Hacker: click derecho en proceso > Properties > Memory
2. Buscar regiones con Protection = RWX (sospechoso)
3. Click derecho en la region > "Strings"
4. Buscar: URLs, IPs, paths, mensajes del malware
5. Si encuentras un PE header (MZ) en una region RWX:
- Es muy probable que sea codigo inyectado
- Click derecho > "Save": guardar la region para analisis
API Monitor
Concepto
API Monitor (rohitab.com) intercepta y registra llamadas a APIs de Windows con parámetros completos y valores de retorno. Es como poner un breakpoint en cada API sin el overhead de un debugger.
Configuración para malware
1. Abrir API Monitor
2. Seleccionar APIs a monitorizar:
- API Filter > expandir "Windows"
- Marcar: "File Management", "Registry", "Process and Thread",
"Winsock", "Cryptography", "Memory Management"
3. Monitorizar proceso:
- File > Monitor New Process > seleccionar sample.exe
- O Attach to running process
4. El malware se ejecuta y API Monitor registra cada API call:
- Nombre de la funcion
- Parametros (incluyendo strings, buffers, flags)
- Valor de retorno
- Thread ID
- Timestamp
APIs clave para monitorizar
File: CreateFileW, WriteFile, DeleteFileW, MoveFileW
Registry: RegCreateKeyExW, RegSetValueExW, RegDeleteKeyW
Process: CreateProcessW, OpenProcess, CreateRemoteThread
Memory: VirtualAllocEx, WriteProcessMemory, VirtualProtect
Network: connect, send, recv, InternetConnectW, HttpSendRequestW
Crypto: CryptEncrypt, CryptDecrypt, BCryptEncrypt
Security: AdjustTokenPrivileges, OpenProcessToken
Debug: IsDebuggerPresent, CheckRemoteDebuggerPresent
Output ejemplo
CreateFileW("C:\Users\Public\payload.exe", GENERIC_WRITE, ...) = 0x00000124
WriteFile(0x00000124, buffer=0x00A40000, size=245760, ...) = TRUE
CloseHandle(0x00000124) = TRUE
RegCreateKeyExW(HKCU, "Software\Microsoft\Windows\CurrentVersion\Run", ...) = 0
RegSetValueExW(HKCU\...\Run, "UpdateService", REG_SZ, "C:\Users\Public\payload.exe") = 0
connect(socket=0x188, addr=192.168.1.100:4444, ...) = 0
send(socket=0x188, buffer="HOST:WIN10-PC\r\n", size=16, ...) = 16
Este output revela el comportamiento completo: escribe un archivo, crea persistencia en Run key, y conecta al C2.
Comparativa de las tres herramientas
| Aspecto | Procmon | Process Hacker | API Monitor |
|---|---|---|---|
| Foco | Actividad de I/O | Estado de procesos | Llamadas a APIs |
| Vista | Timeline de eventos | Snapshot del sistema | Log de API calls |
| Filtrado | Excelente | Básico | Por API group |
| Impacto rendimiento | Medio | Bajo | Alto (mucho logging) |
| Detección por malware | Sí (proceso conocido) | Sí (proceso conocido) | Sí |
| Mejor para | Ver QUÉ hace el malware | Ver DÓNDE opera | Ver CÓMO lo hace |
| Incluido en FLARE VM | Sí | Sí | Sí |
Workflow combinado
1. Process Hacker: abierto para monitorizar arbol de procesos
2. Procmon: capturando con filtros configurados
3. Ejecutar malware
4. Process Hacker: ver procesos nuevos, conexiones
5. Procmon: ver archivos y registro modificados
6. Si necesario: API Monitor para detalle de API calls especificas
7. Wireshark: trafico de red completo
Mapeo MITRE ATT&CK
| Herramienta | Técnicas que revela |
|---|---|
| Procmon (archivos) | T1105 (Ingress Tool Transfer), T1070 (Indicator Removal) |
| Procmon (registro) | T1547.001 (Run Keys), T1543.003 (Services) |
| Procmon (procesos) | T1055 (Process Injection), T1059 (Scripting) |
| Process Hacker (memoria) | T1055 (inyección visible en memoria RWX) |
| Process Hacker (red) | T1071 (C2 por proceso) |
| API Monitor | T1003 (credential APIs), T1056 (input capture APIs) |
Fuentes y referencias
- Russinovich, M. "Process Monitor." Sysinternals, Microsoft.
- wj32. "Process Hacker / System Informer." https://systeminformer.sourceforge.io/
- Rohitab. "API Monitor." http://www.rohitab.com/apimonitor
- Sikorski, M. & Honig, A. "Practical Malware Analysis." No Starch Press, 2012.
- Russinovich, M. et al. "Windows Internals Part 1." Microsoft Press, 2017.
Preguntas frecuentes
Libros recomendados
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.