Guía de Campo y Hardening con Sysinternals
Manual Técnico de Auditoría, Forense y Defensa de Sistemas Windows
Sammi De Blas
Alias: PoisonXploIT 2>/dev/null
Perfil Técnico
-
FPI Grado Medio en Sistemas Microinformáticos y Redes (SMIR)
-
FPII Grado Superior en Administración de Sistemas y Redes, especialidad Ciberseguridad (ASIR)
-
Certificación CompTIA Security+
-
Especialista en administración y post-explotación de sistemas Linux (LOTL)
Entorno de Laboratorio: Windows 11 Enterprise/Pro
Índice de Contenidos
-
Módulo 1: Análisis Forense Básico de Procesos y Telemetría de Red Process Explorer & TCPView
-
Módulo 2: Gestión de Persistencia y Auditoría de ASEPs Autoruns
-
Módulo 3: Administración Remota y Escalada de Privilegios PsExec
-
Módulo 4: Análisis Forense de Sistema de Archivos (I/O) Process Monitor
-
Módulo 7: Detección de Flujos de Datos Ocultos (ADS) Streams
Módulo 1: Análisis Forense Básico de Procesos y Telemetría de Red
Herramientas: Sysinternals Process Explorer & TCPView
Perfil: Blue Team / Administración de Sistemas
Objetivo: Identificación de malware, análisis de conexiones C2 y troubleshooting de rendimiento
1.1 Introducción Teórica
Limitaciones del Administrador de Tareas Nativo
El Administrador de Tareas de Windows (taskmgr.exe) proporciona una vista superficial de los procesos en ejecución, pero carece de capacidades críticas para análisis forense y detección de amenazas avanzadas:
-
Ausencia de jerarquía de procesos: No muestra relaciones padre-hijo, dificultando la detección de técnicas de inyección de procesos (Process Hollowing, DLL Injection)
-
Verificación de integridad limitada: No valida firmas digitales de binarios en ejecución
-
Visibilidad de handles restringida: No permite inspeccionar qué archivos, claves de registro o puertos tiene abiertos cada proceso
-
Integración con Threat Intelligence inexistente: No ofrece capacidad de consulta automática a bases de datos de IOC (Indicators of Compromise)
Process Explorer: Arquitectura y Capacidades
Process Explorer (procexp.exe) es una herramienta de nivel enterprise desarrollada por Microsoft Sysinternals que proporciona visibilidad total sobre la actividad de procesos del sistema mediante las siguientes tecnologías:
Componentes Técnicos Clave
-
Árbol de Procesos Jerárquico: Utiliza la API NtQueryInformationProcess para reconstruir la relación Parent Process ID (PPID), esencial para detectar anomalías como:
-
Procesos de Office (Word, Excel) lanzando PowerShell o cmd.exe
-
Procesos de navegador iniciando binarios desde ubicaciones no estándar
-
Procesos huérfanos (sin padre identificable, típico de malware que elimina su proceso padre)
-
-
Verificación de Firmas Digitales: Implementa WinVerifyTrust API para validar la cadena de certificados Authenticode, permitiendo identificar:
-
Binarios no firmados ejecutándose desde System32 (posible suplantación)
-
Certificados revocados o expirados
-
Suplantación de procesos legítimos (ej: svch0st.exe vs svchost.exe)
-
-
Integración con VirusTotal: Calcula el hash SHA-256 del binario y lo consulta contra la base de datos de VirusTotal mediante API REST, proporcionando detection ratio en tiempo real
-
Vista de Handles: Enumera todos los objetos del kernel (archivos, mutexes, eventos, registry keys, sockets) que cada proceso tiene abiertos, útil para:
-
Identificar archivos bloqueados que impiden operaciones de borrado
-
Detectar mutexes utilizados por malware para evitar reinfección
-
Analizar claves de registro accedidas (potencial persistencia)
-
-
Vista de DLLs: Lista todas las librerías dinámicas cargadas en el espacio de direcciones del proceso, crítico para detectar:
-
DLL Injection (librerías maliciosas inyectadas en procesos legítimos)
-
DLL Side-Loading (carga de DLLs maliciosas con nombres legítimos)
-
Reflective DLL Injection (DLLs cargadas sin pasar por LoadLibrary)
-
TCPView: Análisis de Sockets en Tiempo Real
TCPView complementa a Process Explorer proporcionando una vista especializada de todas las conexiones de red activas del sistema:
Capacidades de Detección
-
Mapeo Proceso-Socket: Asocia cada conexión TCP/UDP a un Process ID específico mediante la API GetExtendedTcpTable
-
Estados de Conexión: Muestra el estado TCP/IP (LISTEN, ESTABLISHED, TIME_WAIT, CLOSE_WAIT), permitiendo identificar:
-
Backdoors en estado LISTENING en puertos no estándar
-
Conexiones ESTABLISHED hacia IPs geolocalizadas en países de riesgo
-
Conexiones TIME_WAIT masivas (posible DDoS o exfiltración)
-
-
Resolución de Direcciones: Capacidad de desactivar DNS reverse lookup para obtener IPs puras y evitar evasión mediante Fast Flux DNS
-
Identificación de Protocolos: Diferencia entre TCPv4, TCPv6, UDP y UDPv6, crítico en entornos con transición IPv6
1.2 Práctica de Laboratorio
Escenario: Auditoría de Arquitectura de Sandboxing en Navegador
En entornos empresariales, es crítico comprender cómo los navegadores modernos (Chrome, Edge, Firefox) implementan aislamiento de procesos para mitigar vulnerabilidades de ejecución remota de código (RCE).
Configuración de Process Explorer
Preparación del Entorno de Análisis:
-
Elevación de Privilegios: Ejecutar procexp.exe como Administrador para acceder a procesos protegidos (servicios del sistema, procesos de otros usuarios)
-
Habilitación de Verificación de Firmas:
-
Options → Verify Image Signatures
-
Esto agrega la columna “Verified Signer” que muestra el propietario del certificado
-
-
Configuración de VirusTotal:
-
Options → VirusTotal.com → Check VirusTotal.com
-
Aceptar los términos de uso de la API pública
-
Aparecerá la columna “VirusTotal” con el ratio de detección (ej: 0/70)
-
-
Columnas Adicionales Recomendadas:
-
Company Name: Fabricante del software
-
Command Line: Argumentos completos de ejecución
-
Image Path: Ruta completa del ejecutable
-
Integrity Level: Nivel de privilegio (Low/Medium/High/System)
-
Ejecución del Análisis
Paso 1: Identificación del Proceso Objetivo
Se navegó a un sitio con contenido multimedia (YouTube) para generar múltiples procesos de Chrome.
Observación en Process Explorer:
chrome.exe (PID 12345) - Parent: explorer.exe
├─ chrome.exe (PID 12346) - Type: GPU Process
├─ chrome.exe (PID 12347) - Type: Network Service
├─ chrome.exe (PID 12348) - Type: Renderer (Sandbox: Enabled)
└─ chrome.exe (PID 12349) - Type: Renderer Video
Paso 2: Uso de la Herramienta “Target” (Diana)
Se utilizó la función de selección visual (botón de diana en la barra de herramientas) arrastrándola sobre la pestaña específica del navegador. Esto permitió identificar el PID exacto del proceso de renderizado responsable del contenido visual.
Paso 3: Inspección de Conexiones TCP/IP
Al seleccionar el proceso identificado y navegar a la pestaña TCP/IP en el panel inferior de Process Explorer, se observó:
Hallazgo Inicial: El proceso de renderizado (chrome.exe con Integrity Level: Low) solo mostraba conexiones UDP locales al puerto 5353 (mDNS - Multicast DNS), utilizado para descubrimiento de servicios en red local (Chromecast, impresoras). No se observaron conexiones HTTPS (puerto 443) ni HTTP (puerto 80).
Explicación Técnica: Arquitectura Multi-Proceso de Chrome
Google Chrome implementa un modelo de seguridad basado en sandboxing por proceso según el siguiente esquema:
Tipo de Proceso Integrity Level Capacidades de Acceso a Disco Red
Browser Process Medium Completas Lectura/Escritura (Principal)
Network Service Medium Sockets TCP/UDP Solo caché
Renderer Process Low (Sandbox) IPC con Network Sin acceso directo Service
GPU Process Low Sin acceso Solo memoria compartida
Implicación de Seguridad: Si un atacante logra explotar una vulnerabilidad en el proceso de renderizado (ej: mediante JavaScript malicioso), está confinado en un proceso con Integrity Level Low que no puede:
-
Establecer conexiones de red directas (mitigación de exfiltración)
-
Escribir archivos en ubicaciones sensibles (C:\Windows, C:\Program Files)
-
Modificar configuración de registro HKLM
-
Acceder a procesos de mayor integridad
Resolución con TCPView
Para identificar qué proceso específico de Chrome maneja las conexiones HTTPS reales, se procedió con TCPView:
Paso 1: Configuración de TCPView
Ejecutar: tcpview.exe (como Administrador)
Options → Resolve Addresses (DESMARCAR para ver IPs reales)
View → Update Speed → Fast (actualización cada 1 segundo)
Paso 2: Filtrado y Análisis
Se filtró la vista para mostrar únicamente procesos chrome.exe, revelando:
Proceso Identificado:
PID: 23016
Proceso: chrome.exe (Network Service)
Protocolo: TCPv6
Estado: ESTABLISHED
Dirección Local: [fe80::1234]:54321
Dirección Remota: [2a00:1450:4002:803::200e]:443 (Google Ireland)
Puerto Remoto Adicional: 5228 (Google Firebase Cloud Messaging)
Análisis del Puerto 5228
El puerto 5228 es utilizado por Google Cloud Messaging (GCM) / Firebase Cloud Messaging (FCM) para:
-
Push notifications de aplicaciones web (PWAs)
-
Sincronización en tiempo real de extensiones de Chrome
-
Actualizaciones de componentes del navegador
Validación de Legitimidad: La conexión al puerto 5228 hacia infraestructura de Google (geolocated in Ireland, AS15169) es legítima y esperada en navegadores Chrome sincronizados. No constituye indicador de compromiso (IOC).
1.3 Conclusión Profesional
Capacidades Defensivas Adquiridas
1. Superación de Limitaciones del Task Manager: Se ha demostrado que herramientas nativas son insuficientes para análisis forense profesional. Process Explorer y TCPView deben formar parte del toolkit estándar de cualquier equipo de Blue Team.
2. Comprensión de Arquitecturas de Seguridad: El análisis del modelo de sandboxing multi-proceso de Chrome permite entender por qué ciertos exploits requieren “sandbox escapes” para lograr compromiso completo del sistema, lo que justifica la asignación de severidad crítica (CVSS 9.0+) a estas vulnerabilidades.
3. Metodología de Validación de Tráfico: Se estableció un flujo de trabajo reproducible:
-
Identificar proceso sospechoso en Process Explorer
-
Validar firma digital y consultar VirusTotal
-
Inspeccionar conexiones en TCPView
-
Correlacionar puertos con servicios conocidos (IANA registry)
-
Geolocalizar IPs destino para identificar anomalías geográficas
-
Decidir: Tráfico legítimo vs. Comando y Control (C2)
4. Detección de Patrones Maliciosos: Esta base permite identificar indicadores de compromiso como:
-
Procesos sin padre (orphaned) o con padres anómalos (ej: svchost.exe como hijo de cmd.exe)
-
Binarios sin firma ejecutándose desde AppData o Temp
-
Conexiones ESTABLISHED hacia IPs en países no correlacionados con la operación del negocio
-
Procesos con nombres similares a legítimos pero con faltas ortográficas (typosquatting)
Próximo Módulo: Autoruns - Auditoría de mecanismos de persistencia y Auto-Start Extensibility Points (ASEPs)
Módulo 2: Gestión de Persistencia y Auditoría de ASEPs
Herramienta: Sysinternals Autoruns v14.xx
Perfil: Hardening de Sistemas / Respuesta a Incidentes
Objetivo: Detección de malware persistente y limpieza de configuración de arranque
2.1 Introducción Teórica
Concepto de Persistencia en Sistemas Windows
La persistencia es la capacidad de un software (legítimo o malicioso) para mantener su ejecución activa después de eventos como:
-
Reinicio del sistema
-
Cierre de sesión de usuario
-
Suspensión/hibernación
-
Actualizaciones del sistema operativo
En el contexto de ciberseguridad, el análisis de mecanismos de persistencia es crítico porque:
-
Malware APT (Advanced Persistent Threat): Los actores de amenazas sofisticados priorizan mantener acceso prolongado sobre sistemas comprometidos
-
Ransomware: Muchas variantes modernas instalan mecanismos de persistencia antes de cifrar, permitiendo reinfección incluso después de la restauración
-
Backdoors: Requieren persistencia para permitir acceso remoto continuo
-
Cryptominers: Maximizan ganancias manteniéndose activos el mayor tiempo posible
Auto-Start Extensibility Points (ASEPs)
Windows proporciona más de 100 ubicaciones diferentes donde el software puede registrarse para ejecución automática. Estas ubicaciones se denominan colectivamente ASEPs y incluyen:
1. Claves de Registro (Registry Keys)
Ubicación Scope Privilegios Uso Común Necesarios
HKLM\Software\Microsoft\Windows\CurrentVersion\Run Sistema (todos Administrador Software los usuarios) empresarial, agentes de seguridad
HKCU\Software\Microsoft\Windows\CurrentVersion\Run Usuario actual Usuario estándar Aplicaciones personales, malware sin privilegios
HKLM\…\RunOnce Sistema Administrador Scripts de (ejecución única) post-instalación
HKLM\…\RunServices Sistema (legacy) Administrador Obsoleto desde Windows XP
2. Scheduled Tasks (Tareas Programadas)
El Task Scheduler de Windows permite programar ejecución basada en:
-
Triggers temporales: Horarios específicos, intervalos recurrentes
-
Triggers de eventos: Inicio de sesión, arranque del sistema, conexión de red
-
Triggers de sistema: Eventos del Event Log, estado de batería, bloqueo de pantalla
Vector de Ataque: Las tareas programadas son preferidas por malware moderno porque:
-
Pueden ejecutarse con privilegios SYSTEM sin intervención del usuario
-
Permiten ocultación (Hidden attribute en XML de tarea)
-
Son más difíciles de detectar que claves Run para usuarios no técnicos
-
Pueden usar triggers complejos para evitar ejecución en entornos sandbox (ej: solo ejecutar después de 7 días de uptime)
3. Servicios de Windows
Los servicios (Services) se ejecutan en segundo plano con privilegios elevados y pueden iniciarse:
-
Automatic: Al arrancar el sistema
-
Automatic (Delayed Start): 2 minutos después del arranque (reduce impacto en tiempo de inicio)
-
Manual: Cuando otro servicio o aplicación lo solicita
-
Disabled: No puede iniciarse
4. Drivers de Modo Kernel
Los controladores (Drivers) operan en Ring 0 (nivel de privilegio máximo) y se cargan durante el arranque del sistema. Son el objetivo preferido de rootkits avanzados porque permiten:
-
Ocultar procesos, archivos y claves de registro
-
Interceptar llamadas al sistema (System Call Hooking)
-
Bypassear soluciones de seguridad (EDR, Antivirus)
-
Acceder directamente a hardware (teclado, red, disco)
5. Otros ASEPs Relevantes
-
Winlogon Notifications: DLLs cargadas durante el proceso de login
-
Shell Extensions: DLLs que extienden funcionalidad de Explorer.exe (menús contextuales, handlers de archivos)
-
Browser Helper Objects (BHO): Plugins de Internet Explorer (obsoleto pero aún presente en sistemas legacy)
-
Print Monitors: DLLs que procesan trabajos de impresión
-
LSA Providers: Módulos de autenticación
-
WMI Event Subscriptions: Scripts que se ejecutan en respuesta a eventos WMI
-
AppInit_DLLs: DLLs inyectadas en todos los procesos GUI (deprecated por Microsoft desde Windows 8)
Autoruns: Capacidades de Auditoría Exhaustiva
Autoruns es la herramienta más completa para análisis de ASEPs, ofreciendo:
-
Vista Consolidada: Muestra todos los ASEPs en una interfaz unificada con categorización por tipo
-
Verificación de Firmas: Valida la autenticidad de todos los binarios referenciados
-
Detección de Archivos Faltantes: Identifica entradas que apuntan a archivos inexistentes (residuos de desinstalaciones)
-
Integración con VirusTotal: Consulta automática de hashes contra base de datos de malware
-
Comparación de Snapshots: Permite guardar estado baseline y detectar cambios después de instalaciones o infecciones
-
Deshabilitación/Eliminación: Capacidad de deshabilitar temporalmente o eliminar permanentemente entradas sospechosas
-
Salto a Ubicación: Jump to Entry permite navegar directamente al archivo en disco o clave de registro
-
Información de Timestamp: Muestra fecha de creación/modificación de archivos para análisis forense temporal
2.2 Práctica de Laboratorio
Metodología de Auditoría: Establecimiento de Línea Base
Se procedió a realizar una auditoría completa del sistema siguiendo las mejores prácticas de hardening y forensic analysis:
Configuración Inicial
Parámetros de Reducción de Ruido:
-
Elevación de Privilegios: Ejecutar autoruns.exe o autoruns64.exe como Administrador
-
Filtrado de Entradas de Microsoft:
-
Options → Hide Microsoft Entries
-
Options → Hide Windows Entries
-
Esto oculta componentes nativos del sistema operativo, permitiendo foco en software de terceros
-
-
Verificación de Firmas: Options → Verify Code Signatures
-
Integración VirusTotal: Options → Scan Options → Check VirusTotal.com
-
Mostrar Archivos Faltantes: Options → Hide Signed Microsoft Entries (mantener DESMARCADO para ver residuos)
Análisis por Categorías
1. Auditoría de Logon Tab
Esta sección muestra programas que se ejecutan automáticamente al iniciar sesión de usuario:
Hallazgo: Entrada Huérfana Detectada
Entry Name: DeepAgent Listener
Publisher: electron.app.DeepAgent
Image Path: File not found (resaltado en amarillo)
Registry Location: HKCU\Software\Microsoft\Windows\CurrentVersion\Run
Análisis de la Entrada:
-
Naturaleza: Residuo de software Electron (framework para aplicaciones desktop basadas en Chromium)
-
Causa Raíz: Desinstalación incompleta que eliminó el ejecutable pero no la entrada de registro
-
Riesgo: Bajo - No hay ejecutable presente, pero genera error en cada inicio de sesión
-
Recomendación: Eliminar mediante clic derecho → Delete (requiere privilegios de administrador si está en HKLM)
Software Legítimo Validado:
Programa Publisher Verificación Propósito
Malwarebytes Malwarebytes ✓ Firmado Protección Agent Corporation anti-malware en tiempo real
VMware User VMware, Inc. ✓ Firmado Integración de VM Process (clipboard, drag&drop)
Tailscale Tailscale Inc. ✓ Firmado VPN mesh networking
2. Auditoría de Scheduled Tasks
Las tareas programadas requieren análisis más detallado porque pueden ejecutarse con privilegios SYSTEM y en contextos no interactivos:
Alerta 1: Script de Backup Personalizado
Task Name: \Copia SSD D a E
Task Action: C:\Scripts\backup_d_to_e.bat
Status: Not Verified (resaltado en rojo)
Trigger: Daily at 02:00 AM
Run As: SYSTEM
Análisis de Seguridad:
-
¿Por qué aparece como “Not Verified”? Los archivos Batch (.bat) y PowerShell (.ps1) no soportan firma digital incrustada (Authenticode). Windows solo puede firmar ejecutables PE (Portable Executable: .exe, .dll, .sys)
-
Validación Manual: Se debe abrir el script con un editor de texto para auditar su contenido:
notepad C:\Scripts\backup_d_to_e.bat -
Indicadores de Legitimidad:
-
Ruta en carpeta administrativa (C:\Scripts, no en AppData o Temp)
-
Nombre descriptivo coherente con función
-
Horario de ejecución razonable (2 AM, ventana de mantenimiento)
-
-
Clasificación: Falso Positivo - Script administrativo legítimo
Alerta 2: Npcap Watchdog
Task Name: \npcapwatchdog
Task Action: C:\Program Files\Npcap\CheckStatus.bat
Publisher: Npcap (Insecure.Com LLC)
Status: Not Verified (script .bat)
Contexto de Npcap:
-
Función: Npcap es el driver moderno de captura de paquetes de red (sucesor de WinPcap), requerido por herramientas como Wireshark, Nmap
-
Watchdog Purpose: Verifica que el driver de captura esté funcionando correctamente después de actualizaciones de Windows que puedan deshabilitarlo
-
Validación:
-
Fabricante legítimo: Insecure.Com LLC (desarrolladores de Nmap)
-
Ubicación estándar: C:\Program Files\Npcap\
-
Comportamiento esperado para software de captura de red
-
-
Clasificación: Legítimo - Componente de mantenimiento de herramientas de análisis de red
Entradas Huérfanas (Amarillo): Windows Update Tasks
Se detectaron varias tareas programadas de Windows Update apuntando a rutas inexistentes después de actualizaciones del sistema. Estas no representan riesgo de seguridad pero ensucian la configuración.
Acción Recomendada: Exportar lista de tareas huérfanas y eliminarlas mediante PowerShell:
Get-ScheduledTask | Where-Object {$_.State -eq ‘Ready’ -and -not (Test-Path $_.Actions.Execute)} | Unregister-ScheduledTask
3. Auditoría de Services Tab
Los servicios representan el nivel de persistencia más profundo (exceptuando drivers de kernel):
Estado de Integridad: ÓPTIMO
Todos los servicios de terceros auditados presentan firma digital válida y cadena de certificación íntegra.
Servicios de Terceros Validados:
Servicio Publisher Startup Type Propósito
Adobe Acrobat Adobe Systems Automatic Actualizaciones Update Service Incorporated (Delayed) de seguridad de PDF reader
Brave Update Brave Software, Manual Actualizaciones Service Inc. de navegador
Intel Driver & Intel Corporation Automatic Actualizaciones Support Assistant de drivers de hardware
HP Support HP Inc. Automatic Diagnóstico de Solutions hardware HP Framework
Interpretación de Certificados: Cada servicio muestra la cadena completa de certificación:
-
Root CA: DigiCert, Sectigo, GlobalSign (autoridades de certificación de confianza global)
-
Intermediate CA: Certificado intermedio de la cadena
-
End Entity: Certificado de firma de código del fabricante
Indicador de Sistema Seguro: La ausencia completa de servicios sin firmar descarta la presencia de:
-
Malware instalado como servicio persistente
-
Backdoors de acceso remoto no autorizado
-
Cryptominers configurados para inicio automático
-
Software pirata o modificado que haya instalado componentes de servicio
2.3 Conclusión Profesional
Resultados de la Auditoría de Persistencia
Estado de Seguridad del Sistema: SATISFACTORIO
1. Residuos Identificados y Saneados:
-
1 entrada de registro huérfana eliminada (DeepAgent Listener)
-
Múltiples tareas programadas obsoletas de Windows Update identificadas para limpieza
-
0 entradas maliciosas detectadas
2. Diferenciación Crítica: “Not Verified” vs. Malicioso:
Se ha establecido la metodología para distinguir entre:
-
Falsos Positivos: Scripts administrativos legítimos (.bat, .ps1) que por naturaleza no pueden ser firmados digitalmente
-
Software Legítimo de Nicho: Herramientas de administración (Npcap, Tailscale) que pueden usar scripts para tareas de mantenimiento
-
Amenazas Reales: Ejecutables sin firmar en ubicaciones anómalas, con nombres sospechosos, o con comportamiento inconsistente con su supuesta función
3. Certificación de Confianza del Software Persistente:
Todos los servicios y la mayoría de las tareas programadas presentan cadena de certificación válida, confirmando que:
-
El sistema no ha sido comprometido por malware que instale persistencia
-
Todo el software de terceros proviene de fabricantes identificables y confiables
-
No existen componentes de kernel no autorizados (ausencia de rootkits)
4. Capacidades Defensivas para Blue Team:
El dominio de Autoruns permite:
-
Incident Response: Durante investigación de infección, ejecutar Autoruns en modo offline (análisis de hive de registro montada desde otro sistema) para detectar persistencia sin ejecutar el malware
-
Baseline Comparison: Guardar snapshot de sistema limpio (File → Save) y comparar después de eventos sospechosos (Compare)
-
Threat Hunting: Buscar patrones típicos de APT (tareas programadas con nombres genéricos, servicios con descripciones vagas, entradas en ASEPs menos comunes como WMI Event Subscriptions)
-
Hardening: Eliminar entradas innecesarias para reducir superficie de ataque y mejorar tiempo de arranque
Indicadores de Compromiso (IOC) a Buscar:
-
Ejecutables sin firmar en System32, Windows, Program Files
-
Rutas que incluyan %AppData%\Local\Temp o carpetas con nombres aleatorios
-
Nombres de archivo con caracteres Unicode similares a legítimos (homograph attack)
-
Tareas programadas con triggers complejos (evasión de sandbox)
-
Servicios con rutas UNC (\\remote_server\share\malware.exe)
-
Certificados emitidos recientemente por CAs poco comunes
Próximo Módulo: PsExec - Técnicas de administración remota y escalada de privilegios locales
Módulo 3: Administración Remota y Escalada de Privilegios
Herramienta: Sysinternals PsExec (Suite PsTools) v2.43
Perfil: Red Team / Administración de Sistemas
Objetivo: Ejecución remota de procesos y elevación a SYSTEM
3.1 Introducción Teórica
Arquitectura de PsExec: Protocolo SMB/RPC
PsExec es una utilidad de línea de comandos que permite la ejecución de procesos en sistemas Windows remotos sin necesidad de instalar software cliente previamente. Su funcionamiento se basa en la infraestructura nativa de Windows:
Flujo Técnico de Ejecución
-
Autenticación SMB:
-
PsExec establece conexión al recurso compartido administrativo ADMIN$ (mapea a C:\Windows) del sistema destino mediante el protocolo SMB (Server Message Block)
-
La autenticación utiliza las credenciales del usuario actual o credenciales explícitas proporcionadas con el parámetro -u
-
Requiere que el usuario tenga permisos de Administrador Local en el sistema destino
-
-
Copia del Ejecutable de Servicio:
-
PsExec copia un binario temporal (PSEXESVC.exe) al directorio %SystemRoot% del sistema remoto a través de ADMIN$
-
Este ejecutable actúa como stub de comunicación
-
-
Instalación de Servicio Temporal:
-
PsExec utiliza el Service Control Manager (SCM) remoto mediante RPC (Remote Procedure Call) para instalar y arrancar un servicio temporal
-
El servicio se ejecuta bajo la cuenta LocalSystem por defecto
-
Protocolo utilizado: MS-SCMR (Service Control Manager Remote Protocol)
-
-
Ejecución del Comando:
-
El servicio PSEXESVC.exe recibe el comando/binario a ejecutar
-
Crea un nuevo proceso con el token de seguridad especificado
-
Redirige STDIN/STDOUT/STDERR al cliente PsExec local
-
-
Limpieza:
-
Al finalizar, PsExec detiene el servicio
-
Elimina la entrada del servicio del registro
-
Borra el archivo PSEXESVC.exe
-
Modelo de Seguridad de Windows: Jerarquía de Tokens
Para comprender la capacidad de escalada de privilegios de PsExec, es fundamental entender el modelo de seguridad de tokens de Windows:
Account/Token SID Integrity Level Capacidades
Usuario Estándar S-1-5-21-{domain}-{user} Medium Acceso a perfil de usuario, no puede modificar sistema
Administrador (UAC S-1-5-21-{domain}-{user} + High Puede modificar elevado) Admin SID sistema, instalar software, gestionar usuarios
NT S-1-5-18 System Control total: AUTHORITY\SYSTEM acceso a SAM, archivos protegidos, sesión 0, puede actuar como cualquier usuario
NT AUTHORITY\LOCAL S-1-5-19 Low Servicios con SERVICE privilegios mínimos, acceso anónimo a red
NT AUTHORITY\NETWORK S-1-5-20 Low Servicios con SERVICE acceso a red usando identidad de la máquina
Session 0 Isolation
Desde Windows Vista, Microsoft implementó Session 0 Isolation para mejorar la seguridad:
-
Session 0: Reservada exclusivamente para servicios y procesos del sistema. No tiene acceso al escritorio interactivo.
-
Session 1+: Sesiones de usuario interactivas. Cada inicio de sesión de usuario obtiene un número de sesión único.
El parámetro -i (Interactive) de PsExec permite que un proceso ejecutado como servicio (Session 0) interactúe con el escritorio del usuario en sesiones superiores, bypassing esta restricción de seguridad.
Admin Shares y Recursos Administrativos
Windows crea automáticamente recursos compartidos ocultos en sistemas miembros de dominio o con usuarios administrativos:
Recurso Ruta Física Propósito Requisitos
ADMIN$ C:\Windows Administración Miembro del grupo remota del Administrators sistema
C$, D$, E$… Raíz de cada Acceso Miembro del grupo volumen administrativo a Administrators todos los discos
IPC$ N/A Named pipes para Autenticación de (Inter-Process RPC red Communication)
Implicaciones de Seguridad: Si un atacante obtiene credenciales de Administrador Local (mediante phishing, password spraying, hash dumping), puede usar PsExec para:
-
Movimiento Lateral: Ejecutar comandos en todos los equipos donde esas credenciales sean válidas
-
Pass-the-Hash: Herramientas como Impacket’s psexec.py permiten autenticación usando hashes NTLM sin conocer la contraseña en texto claro
-
Living off the Land (LoL): PsExec es una herramienta legítima firmada por Microsoft, por lo que puede no generar alertas en sistemas sin EDR
Uso Legítimo en Administración de Sistemas
A pesar de su abuso por atacantes, PsExec es fundamental para:
-
Gestión de Infraestructura: Ejecución de scripts de mantenimiento en múltiples servidores
-
Troubleshooting Remoto: Diagnóstico de problemas sin interrumpir sesiones de usuario
-
Despliegue de Software: Instalación desatendida de actualizaciones
-
Auditoría de Configuración: Recolección de información de sistemas (inventario, configuración de red, logs)
-
Gestión de Servicios: Reinicio de servicios críticos sin RDP
3.2 Práctica de Laboratorio
Escenario 1: Escalada de Privilegios Local a SYSTEM
Objetivo: Demostrar la elevación desde un contexto de Administrador estándar hasta la cuenta de máxima privilegio del sistema.
Contexto Inicial
Estado de privilegios antes de la escalada:
C:\Tools> whoami
desktop-lab\admin_user
C:\Tools> whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
=========================== ================================
======
SeShutdownPrivilege Shut down the system Disabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeUndockPrivilege Remove computer from docking station Disabled
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
SeTimeZonePrivilege Change the time zone Disabled
Ejecución de PsExec con Parámetro -s (System)
Comando ejecutado:
PsExec64.exe -i -s -d cmd.exe
-i (Interactive): Ejecuta el proceso en la sesión de escritorio interactiva actual (Desktop Session). Permite interacción con GUI.
-s (System): Ejecuta el proceso bajo la cuenta NT AUTHORITY\SYSTEM. Este es el nivel de privilegio más alto en Windows, superior a Administrador.
-d (Don’t wait / Detach): No espera a que el proceso termine. Desacopla el proceso para liberar la terminal original.
cmd.exe Especifica el ejecutable a lanzar. En este caso, una consola de comandos con privilegios SYSTEM.
Verificación de Escalada Exitosa
En la nueva consola generada por PsExec:
C:\Windows\system32> whoami
nt authority\system
C:\Windows\system32> whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
=========================== =====================================
======
SeAssignPrimaryTokenPrivilege Replace a process level token Disabled
SeLockMemoryPrivilege Lock pages in memory Enabled
SeIncreaseQuotaPrivilege Adjust memory quotas for a process Disabled
SeTcbPrivilege Act as part of the operating system Enabled
SeSecurityPrivilege Manage auditing and security log Disabled
SeTakeOwnershipPrivilege Take ownership of files or other objects
Disabled
SeLoadDriverPrivilege Load and unload device drivers Disabled
SeSystemProfilePrivilege Profile system performance Enabled
SeSystemtimePrivilege Change the system time Disabled
SeProfileSingleProcessPrivilege Profile single process Enabled
SeIncreaseBasePriorityPrivilege Increase scheduling priority Enabled
SeCreatePagefilePrivilege Create a pagefile Enabled
SeCreatePermanentPrivilege Create permanent shared objects Enabled
SeBackupPrivilege Back up files and directories Disabled
SeRestorePrivilege Restore files and directories Disabled
SeShutdownPrivilege Shut down the system Disabled
SeDebugPrivilege Debug programs Enabled
SeAuditPrivilege Generate security audits Enabled
SeSystemEnvironmentPrivilege Modify firmware environment values
Disabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeUndockPrivilege Remove computer from docking station Disabled
SeManageVolumePrivilege Perform volume maintenance tasks Disabled
SeImpersonatePrivilege Impersonate a client after authentication
Enabled
SeCreateGlobalPrivilege Create global objects Enabled
SeTrustedCredManAccessPrivilege Access Credential Manager as trusted
Enabled
SeRelabelPrivilege Modify an object label Disabled
SeIncreaseWorkingSetPrivilege Increase a process working set Enabled
SeTimeZonePrivilege Change the time zone Enabled
SeCreateSymbolicLinkPrivilege Create symbolic links Enabled
Escalada Exitosa Confirmada
La cuenta SYSTEM posee privilegios críticos como:
-
SeDebugPrivilege: Permite adjuntarse a cualquier proceso (incluyendo protegidos) para inyección de código
-
SeTcbPrivilege: Actuar como parte del sistema operativo (Trusted Computer Base)
-
SeBackupPrivilege/SeRestorePrivilege: Leer/escribir cualquier archivo sin restricciones NTFS
-
SeImpersonatePrivilege: Suplantar identidad de cualquier usuario (base de ataques Potato)
Proof of Concept: Acceso a SAM (Security Account Manager)
Para demostrar el nivel de acceso obtenido, se procedió a acceder a la hive del registro SAM, normalmente inaccesible incluso para Administradores:
C:\Windows\system32> regedit.exe
Desde el Registry Editor ejecutado como SYSTEM, se navegó a:
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users
Importancia Forense: Esta ubicación contiene:
-
Hashes NTLM de todas las cuentas locales (en subclaves con nombres como 000001F4 para RID 500 - Administrator)
-
Información de políticas de contraseña
-
Historial de contraseñas (si está habilitado)
-
Metadata de cuentas (última fecha de cambio de contraseña, lockout status)
Nota de Seguridad: Los hashes están cifrados con una clave almacenada en HKLM\SYSTEM. Herramientas como Mimikatz, secretsdump.py o pwdump pueden extraer y descifrar estos hashes offline para ataques de Pass-the-Hash o cracking con Hashcat.
Escenario 2: Casos de Uso en Administración Remota
1. Auditoría de Configuración de Red Remota
Escenario: Verificar configuración IP/DHCP de endpoint remoto sin interrumpir al usuario.
PsExec64.exe \\192.168.1.100 ipconfig /all
Output Esperado: Información completa de adaptadores de red del sistema remoto, incluyendo:
-
Direcciones IPv4/IPv6
-
Servidores DNS configurados
-
Servidores DHCP y duración de concesión
-
Direcciones MAC (útil para filtrado de red)
-
Sufijos DNS de conexión específica
2. Gestión de Sesiones Interactivas Remotas
Escenario: Obtener shell inversa (reverse shell) en sistema remoto para troubleshooting.
PsExec64.exe \\WORKSTATION-05 -u DOMAIN\admin -p Password123 cmd.exe
Resultado: Consola CMD interactiva ejecutándose en WORKSTATION-05 con las credenciales especificadas.
Comandos útiles una vez dentro:
# Ver procesos en ejecución
tasklist
# Ver servicios
sc query type= service state= all
# Ver conexiones de red
netstat -ano
# Navegar a registro remoto
reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
/s
# Recopilar logs del sistema
wevtutil qe System /c:10 /f:text /rd:true
3. Operaciones de Mantenimiento Masivo
A. Forzar Actualización de Políticas de Grupo:
PsExec64.exe \\* -u DOMAIN\admin -p Password123 gpupdate /force
El comodín \\* ejecuta el comando en todas las computadoras accesibles en el dominio.
B. Reiniciar Servicio de Cola de Impresión:
PsExec64.exe \\PRINT-SERVER net stop Spooler & net start Spooler
C. Instalación Desatendida de Software:
PsExec64.exe \\192.168.1.100 -c -f “C:\Packages\software.msi” msiexec /i software.msi /qn /norestart
-c Copia el archivo especificado al sistema remoto antes de ejecutar.
-f Fuerza la copia incluso si el archivo ya existe en el destino.
Requisitos de Red y Configuración de Firewall
Para que PsExec funcione en entornos empresariales, se deben cumplir los siguientes requisitos:
Puertos Necesarios
Puerto Protocolo Servicio Propósito
445 TCP SMB (Server Acceso a recursos Message Block) compartidos administrativos (ADMIN$, C$)
135 TCP RPC Endpoint Negociación de Mapper puerto dinámico para RPC
49152-65535 TCP RPC Dynamic Ports Comunicación con Service Control Manager (SCM)
Configuración de Firewall en Destino
# Habilitar reglas predefinidas de Windows Firewall para File and
Printer Sharing
comando:: netsh advfirewall firewall set rule group=“File and Printer Sharing”
new enable=Yes
# Habilitar reglas para Remote Service Management
comando:: netsh advfirewall firewall set rule group=“Remote Service Management”
new enable=Yes
# Crear regla personalizada para RPC
comando:: netsh advfirewall firewall add rule name=“RPC for PsExec” dir=in
action=allow protocol=TCP localport=135
Configuración de Políticas de Seguridad
LocalAccountTokenFilterPolicy: En sistemas Windows no unidos a dominio, User Account Control (UAC) filtra el token de administradores remotos excepto la cuenta built-in Administrator (RID 500). Para permitir PsExec con cuentas administrativas locales:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
Advertencia de Seguridad: Esta configuración reduce la postura de seguridad del sistema permitiendo acceso administrativo total mediante cuentas locales. Solo debe habilitarse en entornos controlados (laboratorios, redes de gestión aisladas).
3.3 Conclusión Profesional
Capacidades Adquiridas y Consideraciones de Seguridad
1. Comprensión del Modelo de Privilegios de Windows:
Se ha demostrado empíricamente la diferencia entre los niveles de acceso:
-
Usuario Estándar: Limitado a su perfil y aplicaciones instaladas
-
Administrador: Puede modificar configuración del sistema y gestionar otros usuarios
-
NT AUTHORITY\SYSTEM: Control total del sistema operativo, incluyendo estructuras de seguridad críticas (SAM, LSA Secrets, certificados de máquina)
2. Aplicaciones en Administración de Sistemas:
PsExec es indispensable para:
-
Gestión de Infraestructura a Escala: Ejecutar comandos en decenas o cientos de sistemas simultáneamente
-
Troubleshooting No Invasivo: Diagnosticar problemas sin necesidad de RDP (que podría desconectar sesión de usuario)
-
Automatización de Tareas: Integración en scripts PowerShell para despliegues y mantenimiento
-
Gestión de Contextos de Privilegio: Ejecutar herramientas de diagnóstico que requieren SYSTEM (ej: acceder a archivos bloqueados, auditar handles)
3. Perspectiva Defensiva (Blue Team):
El conocimiento de PsExec permite detectar su uso malicioso mediante:
-
Event Log Monitoring: Event ID 7045 (Service Installation) para detectar instalación de PSEXESVC
-
Network Traffic Analysis: Conexiones SMB (port 445) desde hosts no autorizados
-
File System Monitoring: Creación de archivos en %SystemRoot% con nombres como PSEXE*.exe
-
EDR Behavioral Analytics: Procesos cmd.exe o powershell.exe con parent process PSEXESVC.exe
4. Perspectiva Ofensiva (Red Team / Pentesting):
PsExec es fundamental para:
-
Movimiento Lateral: Después de obtener credenciales (via password spraying, Kerberoasting), PsExec permite pivotar a otros sistemas
-
Persistence: Instalar backdoors o scheduled tasks con privilegios SYSTEM
-
Pass-the-Hash: Variantes como Impacket psexec.py permiten autenticación usando solo hashes NTLM
-
Living off the Land: PsExec es un binario legítimo firmado por Microsoft, reduciendo probabilidad de detección en entornos sin EDR
5. Recomendaciones de Hardening:
-
Deshabilitar recursos compartidos administrativos (ADMIN$, C$) en sistemas que no requieren gestión remota
-
Implementar Local Administrator Password Solution (LAPS) para prevenir reutilización de credenciales de administrador local
-
Configurar reglas de firewall estrictas permitiendo SMB solo desde sistemas de gestión autorizados
-
Habilitar auditoría detallada de logon events (Event ID 4624, 4625, 4672)
-
Monitorizar instalación de servicios en tiempo real mediante Sysmon (cubierto en Módulo 5)
-
Considerar deshabilitar NTLM y forzar Kerberos para autenticación (mitiga Pass-the-Hash)
6. Alternativas Modernas:
En entornos empresariales actuales, considerar:
-
PowerShell Remoting (WinRM): Protocolo nativo de Microsoft para gestión remota, usa puerto 5985/5986 (HTTP/HTTPS), soporta autenticación Kerberos
-
Enter-PSSession / Invoke-Command: Cmdlets nativos de PowerShell para ejecución remota
-
SSH for Windows: Desde Windows 10 1809, OpenSSH es componente nativo opcional
-
RMM Solutions: Herramientas enterprise como Microsoft Endpoint Manager, PDQ Deploy, Group Policy
Próximo Módulo: Process Monitor (ProcMon) - Análisis forense de operaciones I/O en tiempo real
Módulo 4: Análisis Forense de Sistema de Archivos (I/O)
Herramienta: Sysinternals Process Monitor (ProcMon) v3.xx
Perfil: Forensic Analysis / Malware Analysis / System Troubleshooting
Objetivo: Captura y análisis de System Calls en tiempo real
4.1 Introducción Teórica
Arquitectura de Process Monitor: Captura a Nivel Kernel
Process Monitor (procmon.exe / procmon64.exe) es una herramienta avanzada de monitorización que captura actividad del sistema en tiempo real mediante un driver de modo kernel (procmon24.sys o procmon23.sys). A diferencia de herramientas de espacio de usuario, ProcMon intercepta llamadas al sistema operativo antes de que sean procesadas, proporcionando visibilidad completa y sin posibilidad de evasión.
Tipos de Operaciones Capturadas
Process Monitor registra cinco categorías principales de actividad:
comando:: Categoría Operaciones Típicas Casos de Uso Forense
Registry RegOpenKey, Detección de RegSetValue, persistencia, RegQueryValue, modificación de RegDeleteKey, configuración, RegEnumKey extracción de credenciales
File System CreateFile, ReadFile, Análisis de malware WriteFile, DeleteFile, (archivos creados), QueryDirectory, identificación de SetFileInformation exfiltración, detección de ransomware
Network TCP Connect, TCP Send, Identificación de C2, TCP Receive, UDP Send, análisis de protocolos, UDP Receive detección de beaconing
Process/Thread Process Create, Thread Análisis de cadena de Create, Process Exit, ejecución, detección de Image Load (DLL inyección de procesos, loading) DLL hijacking
Profiling Stack traces, CPU usage Identificación de por operación llamadas originales en malware ofuscado
Sistema de Filtros: Include vs. Exclude
Dada la cantidad masiva de eventos generados por el sistema (miles por segundo en un sistema activo), Process Monitor implementa un sistema de filtros de dos niveles:
Lógica de Filtrado
-
Filtros Include (Inclusión): Solo muestra eventos que coincidan con AL MENOS UN filtro de inclusión
-
Filtros Exclude (Exclusión): Oculta eventos que coincidan con CUALQUIER filtro de exclusión (tiene prioridad sobre Include)
-
Orden de Procesamiento: Include primero, luego Exclude
Columnas de Filtrado Disponibles
Columna Tipo Ejemplo de Uso
Process Name String Process Name is cmd.exe
PID Numeric PID is 1234
Operation String Operation is RegSetValue
Path String (supports Path contains wildcards) AppData\Local\Temp
Result String Result is ACCESS DENIED
Detail String Detail contains password
Operadores de Comparación
-
is - Coincidencia exacta (case-insensitive)
-
is not - Negación de coincidencia exacta
-
contains - Substring match
-
begins with - Coincidencia de prefijo
-
ends with - Coincidencia de sufijo
-
less than / more than - Comparación numérica (para PID, duración)
Operaciones Críticas para Análisis Forense
File System Operations
CreateFile: Operación multifunción que puede:
-
Abrir archivo existente para lectura/escritura
-
Crear nuevo archivo
-
Abrir directorio para enumeración
-
Acceder a dispositivos (ej: \\.\PhysicalDrive0 para acceso directo a disco)
Flags de Desired Access Relevantes:
-
GENERIC_READ - Lectura de contenido
-
GENERIC_WRITE - Escritura de contenido
-
DELETE - Permiso para eliminar el archivo
-
WRITE_DAC - Modificar permisos NTFS
-
WRITE_OWNER - Cambiar propietario del archivo
WriteFile: Escritura de datos en archivo. En análisis de malware, permite identificar:
-
Creación de payloads secundarios (droppers)
-
Modificación de archivos de sistema (rootkits)
-
Exfiltración de datos (escritura a archivo temporal antes de envío)
-
Encriptación de archivos (ransomware - se observan múltiples WriteFile al mismo archivo)
SetDispositionInformationFile: Marcado de archivo para eliminación. Útil para detectar anti-forensics (malware que borra sus trazas).
Registry Operations
RegSetValue: Escritura de valores en el registro. Crítico para detectar:
-
Instalación de persistencia (claves Run, Services, Scheduled Tasks)
-
Modificación de configuración de seguridad (desactivación de UAC, Firewall)
-
Instalación de filtros de red (LSP - Layered Service Providers)
-
Modificación de políticas del sistema
RegDeleteKey/RegDeleteValue: Eliminación de configuración. Puede indicar:
-
Desinstalación de software de seguridad
-
Limpieza de rastros de infección
-
Modificación de evidencia forense
Stack Traces y Call Stacks
Process Monitor puede capturar el call stack completo de cada operación, mostrando la secuencia de funciones que condujeron a una llamada al sistema:
Importancia en Análisis de Malware:
-
Identifica si la operación proviene del código principal del proceso o de una DLL inyectada
-
Permite detectar técnicas de ofuscación (ej: malware que usa APIs legítimas como `WinInet.dll` para networking)
-
Revela uso de técnicas de hooking (funciones intermedias sospechosas en el call stack)
-
Ayuda a correlacionar operaciones con módulos específicos (identificar qué DLL causó la operación)
4.2 Práctica de Laboratorio
Escenario: Análisis Forense de Actividad de Línea de Comandos
Objetivo: Capturar y analizar todas las operaciones de I/O realizadas por el proceso cmd.exe para identificar qué archivos fueron creados, modificados o accedidos durante una sesión de comandos.
Configuración Inicial de Process Monitor
Preparación del Entorno de Captura:
-
Ejecutar como Administrador: Lanzar procmon64.exe con privilegios elevados
-
Aceptar EULA: Primera ejecución requiere aceptación de términos de licencia
-
Instalación del Driver: ProcMon carga automáticamente el driver de kernel (procmon24.sys) en %SystemRoot%\System32\Drivers\
-
Captura Automática: Por defecto, ProcMon inicia captura inmediatamente
Paso 1: Detener Captura Inicial
Para limpiar el buffer de eventos generados antes del análisis:
Ctrl+E (o botón de captura en toolbar) - Detiene la captura
Ctrl+X (o Edit → Clear Display) - Limpia eventos existentes
Paso 2: Configuración de Filtros de Inclusión
Navegación: Filter → Filter… (Ctrl+L)
Filtro 1: Incluir solo operaciones de cmd.exe
Process Name → is → cmd.exe → Include → Add
Nota Técnica: Este filtro capturará TODAS las instancias de cmd.exe en ejecución (todos los PIDs). Si se requiere filtrado específico de un PID concreto, usar:
PID → is → 1234 → Include
Paso 3: Filtros de Exclusión para Reducir Ruido
Para enfocarse en operaciones de creación/modificación de archivos, excluir operaciones de solo lectura comunes:
Operation → is → QueryDirectory → Exclude → Add
Operation → is → QueryFileAttributes → Exclude → Add
Operation → is → CloseFile → Exclude → Add
Path → ends with → .dll → Exclude → Add
(Excluir cargas de DLLs para reducir ruido)
Paso 4: Iniciar Captura y Generar Actividad
Presionar Ctrl+E para reactivar captura, luego ejecutar en cmd.exe:
C:\> echo “Documento de prueba forense” >
C:\Users\Public\test_forense.txt
C:\> type C:\Users\Public\test_forense.txt
”Documento de prueba forense”
C:\> copy C:\Users\Public\test_forense.txt
C:\Users\Public\test_backup.txt
1 archivo(s) copiado(s).
C:\> del C:\Users\Public\test_backup.txt
Paso 5: Análisis de Eventos Capturados
Evento 1: Creación de Archivo (Operador >)
+-----------------------+-------------------------------------+------------------------+ | Campo | Valor | Interpretación | +-----------------------+-------------------------------------+------------------------+ | Process Name | cmd.exe | Shell de comandos | +-----------------------+-------------------------------------+------------------------+ | PID | 7890 | Process ID de la | | | | instancia de cmd.exe | +-----------------------+-------------------------------------+------------------------+ | Operation | CreateFile | Apertura/creación de | | | | archivo | +-----------------------+-------------------------------------+------------------------+ | Path | C:\Users\Public\test_forense.txt | Ruta completa del | | | | archivo objetivo | +-----------------------+-------------------------------------+------------------------+ | Result | SUCCESS | Operación completada | | | | exitosamente | +-----------------------+-------------------------------------+------------------------+ | Detail | Desired Access: Generic Write, | Desired Access: | | | Generic Read | Permisos solicitados | | | | (lectura/escritura) | | | Disposition: OverwriteIf | | | | | Disposition: | | | Options: Synchronous IO Non-Alert, | OverwriteIf = Crear | | | Non-Directory File | nuevo o sobrescribir | | | | existente | | | Attributes: N | | | | | ShareMode: Permite | | | ShareMode: Read, Write, Delete | que otros procesos | | | | lean/escriban/eliminen | | | | simultáneamente | +=====================+=================================+======================+
Evento 2: Escritura de Datos
Campo Valor
Operation WriteFile
Path C:\Users\Public\test_forense.txt
Result SUCCESS
Detail Offset: 0, Length: 32, Priority: Normal
Análisis del Length: Se escribieron 32 bytes, que corresponden al texto “Documento de prueba forense” más caracteres de retorno de carro y line feed (CRLF - \r\n).
Evento 3: Operación de Copia (copy command)
El comando copy genera múltiples operaciones:
-
CreateFile (Origen): Apertura de test_forense.txt con Desired Access: Generic Read
-
CreateFile (Destino): Creación de test_backup.txt con Desired Access: Generic Write
-
ReadFile (Origen): Lectura del contenido completo
-
WriteFile (Destino): Escritura del contenido leído
-
SetBasicInformationFile (Destino): Copia de metadata (timestamps)
-
CloseFile (ambos): Cierre de handles de archivo
Evento 4: Eliminación de Archivo (del command)
Campo Valor Interpretación
Operation SetDispositionInformationFile Marca archivo para eliminación
Path C:\Users\Public\test_backup.txt Archivo a eliminar
Detail Delete: True Flag de eliminación activado
Importante: En NTFS, SetDispositionInformationFile no elimina inmediatamente el archivo. Lo marca para eliminación, que se ejecuta cuando se cierra el último handle abierto. El archivo permanece recuperable hasta que su espacio en disco es sobrescrito.
Paso 6: Exportación de Evidencia Forense
Para documentar los hallazgos:
Método 1: Guardado Nativo (PML Format)
File → Save… → Seleccionar ubicación → Guardar como .PML
Formato propietario de ProcMon que preserva TODOS los detalles incluyendo stacks
Método 2: Exportación a CSV (Análisis en Excel/Python)
File → Save… → Save as type: CSV
Exporta eventos visibles con columnas seleccionadas
Método 3: Copia Selectiva
Seleccionar eventos de interés → Ctrl+C → Pegar en informe
Formato tabla compatible con Word/Markdown
Caso de Uso Avanzado: Detección de Ransomware
Process Monitor es extremadamente efectivo para identificar comportamiento de ransomware mediante patrones de I/O característicos:
Patrón de Detección: Ransomware File Encryption
-
Enumeración Masiva: Alto volumen de operaciones QueryDirectory en múltiples directorios (búsqueda de archivos objetivo)
-
Lectura Secuencial: ReadFile completo del archivo original
-
Creación de Archivo Temporal: CreateFile con nombre aleatorio (ej: file.txt.encrypted o .tmp)
-
Escritura Encriptada: WriteFile al archivo temporal con tamaño similar al original
-
Eliminación del Original: SetDispositionInformationFile marcando el archivo original para borrado
-
Renombramiento: SetRenameInformationFile cambiando extensión (ej: .locked, .encrypted, .crypted)
-
Modificación de Timestamps: SetBasicInformationFile para ocultar momento de cifrado
Filtros de Detección de Ransomware:
Operation → is → SetRenameInformationFile → Include
Path → contains → .encrypted → Include
Path → contains → .locked → Include
4.3 Conclusión Profesional
Capacidades Adquiridas en Análisis Forense de I/O
1. Comprensión de Syscalls y Operaciones de Bajo Nivel:
Se ha establecido conocimiento profundo de cómo las aplicaciones interactúan con el sistema operativo a nivel de kernel, permitiendo:
-
Distinguir entre tipos de acceso a archivos (lectura vs. escritura vs. eliminación)
-
Interpretar flags de CreateFile y sus implicaciones de seguridad
-
Comprender la diferencia entre eliminación lógica (SetDispositionInformationFile) y recuperación forense
-
Analizar operaciones de registro críticas para persistencia y configuración
2. Dominio del Sistema de Filtros:
La capacidad de construir filtros complejos (Include/Exclude) permite:
-
Reducción de Ruido: En un sistema típico, ProcMon captura 10,000+ eventos por segundo. El filtrado efectivo es crítico para análisis práctico
-
Investigación Dirigida: Foco en procesos, rutas o operaciones específicas de interés
-
Análisis de Malware: Aislamiento de comportamiento de muestras sospechosas
-
Troubleshooting de Aplicaciones: Identificación de archivos de configuración accedidos, claves de registro leídas, DLLs cargadas
3. Aplicaciones en Incident Response:
Process Monitor es indispensable durante investigaciones de incidentes de seguridad:
-
Post-Mortem Analysis: Capturar logs de ProcMon durante infección activa para análisis posterior
-
Identificación de IOCs: Descubrir archivos creados, claves de registro modificadas, conexiones de red establecidas
-
Timeline Reconstruction: Correlación temporal de eventos para reconstruir secuencia de ataque
-
Lateral Movement Detection: Identificar uso de PsExec, WMI, comando:: PowerShell Remoting mediante análisis de procesos hijo
4. Detección de Patrones de Amenaza:
-
Ransomware: Patrón de enumeración → lectura → cifrado → renombramiento masivo
-
Data Exfiltration: Creación de archivos ZIP/RAR, escritura a dispositivos extraíbles, copia a ubicaciones compartidas
-
Credential Theft: Acceso a SAM, SYSTEM, SECURITY hives; lectura de archivos LSA Secrets; dump de LSASS memory
-
Persistence Installation: Escritura a claves Run, creación de servicios, modificación de Scheduled Tasks
-
Anti-Forensics: Eliminación de Event Logs (System, Security, Application), limpieza de VSS (Volume Shadow Copies)
5. Integración en Workflow de Análisis:
Process Monitor debe usarse en conjunto con otras herramientas de Sysinternals:
-
Process Explorer: Identificar proceso sospechoso (firma, conexiones, memoria)
-
Process Monitor: Capturar comportamiento detallado del proceso (qué hace)
-
Autoruns: Verificar si instaló persistencia
-
TCPView: Confirmar conexiones de red activas
-
Sysmon: Registrar eventos para análisis forense posterior (cubierto en Módulo 5)
6. Consideraciones de Rendimiento:
-
ProcMon impacta rendimiento del sistema (típicamente 5-15% CPU overhead)
-
La captura genera grandes volúmenes de datos (varios GB por hora en sistemas activos)
-
Usar filtros agresivos en sistemas de producción para minimizar impacto
-
Considerar captura a archivo (File → Backing Files) para análisis offline
7. Alternativas y Limitaciones:
-
Limitación: ProcMon requiere ejecución en vivo durante el evento. No puede analizar actividad pasada.
-
Solución: Sysmon (Módulo 5) proporciona logging permanente similar a ProcMon
-
Limitación: En sistemas infectados con rootkits de kernel, ProcMon puede ser engañado
-
Solución: Análisis forense offline desde sistema limpio (mounting de disco/hive de registro)
Próximo Módulo: Sysmon - Telemetría permanente con hashing criptográfico para detección de amenazas
Módulo 5: Telemetría Avanzada y Hashing
Herramienta: Sysinternals Sysmon v15.15
Perfil: Blue Team / Threat Detection Engineering
Objetivo: Logging permanente de actividad crítica del sistema con hash criptográfico
5.1 Introducción Teórica
Sysmon: System Monitor como Sensor EDR Nativo
System Monitor (Sysmon) es un servicio y driver de sistema de Windows que, una vez instalado, permanece residente después de reinicios y registra actividad del sistema en el Event Log de Windows. A diferencia de Process Monitor (análisis en vivo de corta duración), Sysmon proporciona telemetría permanente y forense de eventos críticos de seguridad.
Diferencias Críticas: Event Log Nativo vs. Sysmon
+-----------------------+-----------------------+-----------------------+ | Característica | Windows Event Log | Sysmon Event Log | | | Nativo | | +-----------------------+-----------------------+-----------------------+ | Creación de | Event ID 4688 (si | Event ID 1 (Process | | Procesos | auditoría habilitada) | Create) | | | | | | | NO incluye hashes | ✓ MD5, SHA256 | | | | | | | NO incluye GUID de | ✓ GUID de proceso | | | proceso | | | | | ✓ Línea de comandos | | | | completa | | | | | | | | ✓ Información del | | | | padre | +-----------------------+-----------------------+-----------------------+ | Conexiones de Red | NO registrado | Event ID 3 (Network | | | nativamente | Connection) | | | | | | | (requiere Firewall | ✓ IP origen/destino | | | logging) | | | | | ✓ Puerto | | | | origen/destino | | | | | | | | ✓ Protocolo | | | | | | | | ✓ PID y proceso | +-----------------------+-----------------------+-----------------------+ | Carga de Drivers | Event ID 7045 | Event ID 6 (Driver | | | (Service Install) | Load) | | | | | | | Información básica | ✓ Firma digital | | | | | | | | ✓ Hash SHA256 | | | | | | | | ✓ Timestamp preciso | +-----------------------+-----------------------+-----------------------+ | Creación de | NO registrado | Event ID 11 (File | | Archivos | | Create) | | | | | | | | ✓ Ruta completa | | | | | | | | ✓ Proceso creador | | | | | | | | ✓ Timestamp | +-----------------------+-----------------------+-----------------------+ | Modificación de | Requiere auditoría | Event ID 13 | | Registry | detallada (impacto | (Registry Value | | | severo en | Set) | | | rendimiento) | | | | | Filtrable por clave | | | | específica | +=====================+===================+=====================+
Eventos de Sysmon: Taxonomía Completa
Sysmon registra más de 25 tipos de eventos diferentes. Los más críticos para detección de amenazas:
Eventos de Procesos y Threads
-
Event ID 1 - Process Create: Creación de proceso. EL EVENTO MÁS IMPORTANTE.
-
Hash MD5, SHA256 del ejecutable
-
Línea de comandos completa (incluyendo argumentos)
-
Process GUID (identificador único persistente)
-
Parent Process GUID y nombre
-
Usuario que ejecutó el proceso
-
Integrity Level (Low/Medium/High/System)
-
Directorio actual (CurrentDirectory)
-
-
Event ID 5 - Process Terminate: Finalización de proceso
-
Útil para correlacionar duración de ejecución
-
Detectar procesos de vida muy corta (posible evasión)
-
-
Event ID 8 - CreateRemoteThread: Inyección de thread en proceso remoto
-
Técnica común de malware para inyección de código
-
Registra proceso origen y destino
-
Crítico para detectar Reflective DLL Injection
-
-
Event ID 10 - Process Access: Acceso de un proceso a otro mediante OpenProcess
-
Detecta credential dumping (acceso a lsass.exe)
-
Identifica inyección de procesos
-
Registra GrantedAccess bitmask
-
Eventos de Red
-
Event ID 3 - Network Connection: Conexión TCP/UDP establecida
-
Dirección IP y puerto origen/destino
-
Protocolo (TCP/UDP/ICMP)
-
Proceso y usuario responsable
-
Crítico para detección de Command & Control (C2)
-
-
Event ID 22 - DNS Query: Consultas DNS realizadas
-
Nombre de dominio consultado
-
Proceso que realizó la consulta
-
Útil para detectar DGA (Domain Generation Algorithms)
-
Identifica beaconing a C2
-
Eventos de Persistencia
-
Event ID 12, 13, 14 - Registry Events:
-
12: Registry Object Create/Delete
-
13: Registry Value Set
-
14: Registry Key/Value Rename
-
Detecta instalación de persistencia en claves Run, Services, etc.
-
-
Event ID 19, 20, 21 - WMI Events:
-
19: WMI Event Filter Activity
-
20: WMI Event Consumer Activity
-
21: WMI Event Consumer To Filter Binding
-
Detecta persistencia vía WMI (técnica APT común)
-
Eventos de Sistema de Archivos
-
Event ID 11 - File Create: Creación de archivo
-
Ruta completa del archivo
-
Proceso creador
-
Timestamp preciso
-
Útil para detectar droppers y payload staging
-
-
Event ID 15 - File Create Stream Hash: Creación de Alternate Data Stream
-
Detecta ocultación de datos en ADS (cubierto en Módulo 7)
-
Incluye hash del stream oculto
-
-
Event ID 23 - File Delete: Eliminación de archivo
-
Detecta anti-forensics (borrado de logs)
-
Identifica comportamiento de ransomware
-
Registra archivo eliminado y proceso responsable
-
Eventos de Drivers y Módulos
-
Event ID 6 - Driver Load: Carga de driver de modo kernel
-
Detecta rootkits
-
Incluye firma digital y hash
-
Crítico para validar integridad del kernel
-
-
Event ID 7 - Image Load: Carga de DLL/módulo
-
Detecta DLL Hijacking
-
Identifica carga de módulos sospechosos
-
Útil para análisis de malware que usa librerías poco comunes
-
Configuración mediante XML: Filtrado Inteligente
Sysmon utiliza archivos XML para definir qué eventos capturar y bajo qué condiciones. Una configuración efectiva balancea visibilidad (detectar amenazas) vs. rendimiento (no saturar Event Log ni CPU).
Estructura Básica de Configuración XML
<Sysmon schemaversion=“4.90”>
<HashAlgorithms>md5,sha256</HashAlgorithms>
<EventFiltering>
<!— Configuración por tipo de evento ⇒
<ProcessCreate onmatch=“include”>
<!— Capturar creación de procesos específicos ⇒
</ProcessCreate>
<NetworkConnect onmatch=“include”>
<!— Capturar conexiones de red específicas ⇒
</NetworkConnect>
</EventFiltering>
</Sysmon>
Lógica de Filtrado: Include vs. Exclude
-
onmatch=“include”: Por defecto NO registra nada, solo eventos que coincidan con reglas
-
onmatch=“exclude”: Por defecto registra TODO, excepto eventos que coincidan con reglas
-
Estrategia Recomendada: Usar exclude con reglas para procesos ruidosos pero benignos (ej: svchost.exe de Microsoft)
Ejemplo de Configuración de Producción
<Sysmon schemaversion=“4.90”>
<HashAlgorithms>md5,sha256</HashAlgorithms>
<CheckRevocation/>
<EventFiltering>
<!— Capturar TODOS los procesos creados ⇒
<ProcessCreate onmatch=“exclude”>
<!— Excluir procesos muy ruidosos y firmados por Microsoft ⇒
<Image
condition=“is”>C:\Windows\System32\backgroundTaskHost.exe</Image>
<Image
condition=“is”>C:\Windows\System32\wbem\WmiPrvSE.exe</Image>
</ProcessCreate>
<!— Capturar TODAS las conexiones de red (alto volumen) ⇒
<NetworkConnect onmatch=“exclude”>
<!— Excluir tráfico local de Windows Update ⇒
<DestinationIp condition=“is”>127.0.0.1</DestinationIp>
<DestinationHostname condition=“end
with”>.windowsupdate.com</DestinationHostname>
</NetworkConnect>
<!— Capturar modificaciones a claves de persistencia ⇒
<RegistryEvent onmatch=“include”>
<TargetObject
condition=“contains”>\CurrentVersion\Run</TargetObject>
<TargetObject
condition=“contains”>\CurrentVersion\RunOnce</TargetObject>
<TargetObject condition=“contains”>\Services\</TargetObject>
</RegistryEvent>
<!— Capturar acceso a LSASS (credential dumping) ⇒
<ProcessAccess onmatch=“include”>
<TargetImage
condition=“is”>C:\Windows\System32\lsass.exe</TargetImage>
</ProcessAccess>
<!— Capturar carga de drivers no firmados ⇒
<DriverLoad onmatch=“exclude”>
<Signed condition=“is”>true</Signed>
</DriverLoad>
</EventFiltering>
</Sysmon>
Configuraciones Comunitarias: La comunidad de seguridad mantiene configuraciones optimizadas de Sysmon:
-
SwiftOnSecurity/sysmon-config: Configuración general balanceada para endpoints
-
olafhartong/sysmon-modular: Configuración modular por tipo de amenaza
-
ion-storm/sysmon-config: Configuración agresiva para threat hunting
Importancia de los Hashes Criptográficos
El registro de hashes MD5 y SHA256 en Event ID 1 es la característica más valiosa de Sysmon para respuesta a incidentes:
Casos de Uso de Hashes
-
Identificación de Malware Conocido: Correlación contra bases de datos de IOC (VirusTotal, MISP, OpenCTI)
-
Tracking de Binarios Únicos: Identificar propagación de ejecutable específico a través de la red
-
Detección de Polimorfismo: Malware que cambia nombre pero mantiene hash
-
Whitelisting de Aplicaciones: Validar que solo ejecutables autorizados corran
-
Análisis Temporal: Identificar cuándo apareció por primera vez un binario específico en el entorno
5.2 Práctica de Laboratorio
Escenario: Despliegue de Sysmon con Configuración Personalizada
Objetivo: Instalar Sysmon como servicio persistente y validar captura de telemetría mediante generación de tráfico de prueba.
Paso 1: Descarga de Sysmon
Sysmon se distribuye como parte de Sysinternals Suite. Descargar versión más reciente:
https://download.sysinternals.com/files/Sysmon.zip
Contenido del paquete:
-
Sysmon.exe - Versión de 32 bits
-
Sysmon64.exe - Versión de 64 bits (recomendado para Windows modernos)
-
Eula.txt - Términos de licencia
Paso 2: Creación de Archivo de Configuración XML
Se creó un archivo sysmon-config.xml con configuración básica para laboratorio:
<Sysmon schemaversion=“4.90”>
<!— Capturar hashes MD5 y SHA256 ⇒
<HashAlgorithms>md5,sha256</HashAlgorithms>
<!— Verificar revocación de certificados ⇒
<CheckRevocation/>
<EventFiltering>
<!— Event ID 1: Capturar TODOS los procesos creados ⇒
<ProcessCreate onmatch=“exclude”>
<!— No excluir nada en laboratorio (máxima visibilidad) ⇒
</ProcessCreate>
<!— Event ID 3: Capturar TODAS las conexiones de red ⇒
<NetworkConnect onmatch=“exclude”>
<!— Excluir solo tráfico localhost para reducir ruido ⇒
<DestinationIp condition=“is”>127.0.0.1</DestinationIp>
<DestinationIp condition=“is”>::1</DestinationIp>
</NetworkConnect>
<!— Event ID 11: Capturar creación de archivos en ubicaciones
sensibles ⇒
<FileCreate onmatch=“include”>
<TargetFilename condition=“contains”>\Temp\</TargetFilename>
<TargetFilename
condition=“contains”>\AppData\Local\Temp\</TargetFilename>
<TargetFilename
condition=“contains”>\Downloads\</TargetFilename>
</FileCreate>
</EventFiltering>
</Sysmon>
Paso 3: Instalación del Servicio Sysmon
Ejecutar desde PowerShell o CMD con privilegios de Administrador:
Sysmon64.exe -accepteula -i sysmon-config.xml
-accepteula Acepta automáticamente el EULA (necesario para scripts automatizados)
-i (Install): Instala el driver y servicio de Sysmon
sysmon-config.xml Ruta al archivo de configuración XML
Salida de Instalación Exitosa
System Monitor v15.15 - System activity monitor
By Mark Russinovich and Thomas Garnier
Copyright (C) 2014-2024 Microsoft Corporation
Using libxml2. libxml2 is Copyright (C) 1998-2012 Daniel Veillard. All
Rights Reserved.
Sysmon64 installed.
SysmonDrv installed.
Starting SysmonDrv.
SysmonDrv started.
Starting Sysmon64..
Sysmon64 started.
Paso 4: Validación de Instalación
Método 1: Verificar Servicio
sc query Sysmon64
SERVICE_NAME: Sysmon64
TYPE : 1 KERNEL_DRIVER
STATE : 4 RUNNING
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
Método 2: Verificar Driver Cargado
fltmc instances -v C:
Buscar en la salida: SysmonDrv debe aparecer listado como filtro de sistema de archivos.
Método 3: Verificar Event Log Channel
wevtutil gli Microsoft-Windows-Sysmon/Operational
creationTime: 2026-01-31T18:30:45.123Z
lastAccessTime: 2026-01-31T18:30:45.123Z
lastWriteTime: 2026-01-31T18:30:52.456Z
fileSize: 1118208
attributes: 32
numberOfLogRecords: 234
oldestRecordNumber: 1
Paso 5: Generación de Tráfico de Prueba
Para validar que Sysmon está capturando eventos, se ejecutaron comandos básicos del sistema:
C:\> whoami
desktop-lab\admin_user
C:\> ipconfig
[Información de red]
C:\> ping 8.8.8.8
Haciendo ping a 8.8.8.8 con 32 bytes de datos:
Respuesta desde 8.8.8.8: bytes=32 tiempo=15ms TTL=115
Paso 6: Análisis de Eventos en Event Viewer
Acceder al Event Viewer:
-
Presionar Win+R → eventvwr.msc → Enter
-
Navegar a: Applications and Services Logs → Microsoft → Windows → Sysmon → Operational
-
Filtrar por Event ID 1 (Process Create)
Análisis de Event ID 1: Process Create
Seleccionar uno de los eventos generados por los comandos de prueba. Ejemplo de evento capturado:
Event ID 1 - Process Create
Timestamp: 2026-01-31 18:35:42.789
Computer: DESKTOP-LAB
Campos Críticos del Evento:
+-----------------------+----------------------------------------+--------------------------+ | Campo | Valor | Significado Forense | +-----------------------+----------------------------------------+--------------------------+ | RuleName | - | Nombre de regla XML que | | | | causó el log (vacío si | | | | no hay match) | +-----------------------+----------------------------------------+--------------------------+ | UtcTime | 2026-01-31 17:35:42.789 | Timestamp en UTC | | | | (importante para | | | | correlación | | | | internacional) | +-----------------------+----------------------------------------+--------------------------+ | ProcessGuid | {a1b2c3d4-1234-5678-9abc-def012345678} | Identificador único del | | | | proceso (persiste en | | | | reinicio de Sysmon) | +-----------------------+----------------------------------------+--------------------------+ | ProcessId | 8912 | PID tradicional de | | | | Windows (reutilizable) | +-----------------------+----------------------------------------+--------------------------+ | Image | C:\Windows\System32\PING.EXE | Ruta completa del | | | | ejecutable | +-----------------------+----------------------------------------+--------------------------+ | FileVersion | 10.0.22000.1 (WinBuild.160101.0800) | Versión del binario | +-----------------------+----------------------------------------+--------------------------+ | Description | TCP/IP Ping Command | Descripción del | | | | ejecutable (metadata PE) | +-----------------------+----------------------------------------+--------------------------+ | Product | Microsoft® Windows® Operating System | Producto al que | | | | pertenece | +-----------------------+----------------------------------------+--------------------------+ | Company | Microsoft Corporation | Fabricante (útil para | | | | filtrar por vendor) | +-----------------------+----------------------------------------+--------------------------+ | OriginalFileName | ping.exe | Nombre original | | | | compilado (detecta | | | | renombramientos) | +-----------------------+----------------------------------------+--------------------------+ | CommandLine | ping 8.8.8.8 | Línea completa de | | | | comandos incluyendo | | | | argumentos | +-----------------------+----------------------------------------+--------------------------+ | CurrentDirectory | C:\Users\admin_user\ | Directorio de trabajo | | | | desde donde se ejecutó | +-----------------------+----------------------------------------+--------------------------+ | User | DESKTOP-LAB\admin_user | Contexto de seguridad | | | | (dominio\usuario) | +-----------------------+----------------------------------------+--------------------------+ | LogonGuid | {a1b2c3d4-9876-5432-1abc-def098765432} | GUID de sesión de logon | | | | (correlación de | | | | actividades) | +-----------------------+----------------------------------------+--------------------------+ | LogonId | 0x1A2B3C | ID de sesión de logon | | | | tradicional | +-----------------------+----------------------------------------+--------------------------+ | TerminalSessionId | 1 | ID de sesión RDP/Consola | | | | (0=Session 0, | | | | 1+=Usuario) | +-----------------------+----------------------------------------+--------------------------+ | IntegrityLevel | Medium | Nivel de integridad | | | | (Low/Medium/High/System) | +-----------------------+----------------------------------------+--------------------------+ | Hashes | MD5=A1B2C3D4E5F6…, | ⭐ CRÍTICO: Hashes | | | | criptográficos del | | | SHA256=1A2B3C4D5E6F… | ejecutable | +-----------------------+----------------------------------------+--------------------------+ | ParentProcessGuid | {a1b2c3d4-5678-1234-9abc-def012345678} | GUID del proceso padre | +-----------------------+----------------------------------------+--------------------------+ | ParentProcessId | 7456 | PID del proceso padre | +-----------------------+----------------------------------------+--------------------------+ | ParentImage | C:\Windows\System32\cmd.exe | Ejecutable del proceso | | | | padre | +-----------------------+----------------------------------------+--------------------------+ | ParentCommandLine | “C:\Windows\System32\cmd.exe” | Línea de comandos del | | | | padre | +-----------------------+----------------------------------------+--------------------------+ | ParentUser | DESKTOP-LAB\admin_user | Usuario del proceso | | | | padre | +=====================+====================================+========================+
Hallazgos en el Laboratorio: Procesos de Google Update
Durante la revisión de eventos, se identificaron múltiples instancias de procesos de actualización de Google:
Observación: Arquitectura de Google Update
Se detectó la siguiente cadena de ejecución:
-
Proceso Padre: GoogleUpdate.exe (servicio de actualización en segundo plano)
-
Proceso Hijo: updater.exe (componente de verificación de actualizaciones)
-
Características de Seguridad Observadas:
-
Firma digital válida de Google LLC
-
Hashes MD5 y SHA256 capturados correctamente
-
Ejecución desde ruta legítima: C:\Program Files\Google\GoogleUpdater\
-
Integrity Level: Medium (apropiado para servicios de usuario)
-
Valor Forense de este Hallazgo: Este ejemplo demuestra cómo Sysmon proporciona visibilidad de procesos en segundo plano que no son evidentes para el usuario. En un escenario de respuesta a incidentes, esta cadena de ejecución completa permite:
-
Validar que el proceso de actualización es legítimo (firma digital)
-
Correlacionar actividad de red subsecuente (Event ID 3 mostraría conexiones a google.com)
-
Detectar suplantación (si un malware usa nombres similares como GoogleUpdat.exe o GooglUpdate.exe)
-
Analizar comportamiento temporal (cuándo se ejecutan las actualizaciones, frecuencia)
Consultas Útiles con PowerShell
Para análisis programático de eventos de Sysmon:
Obtener todos los procesos creados en las últimas 24 horas:
Get-WinEvent -FilterHashtable @{
LogName=‘Microsoft-Windows-Sysmon/Operational’;
ID=1;
StartTime=(Get-Date).AddDays(-1)
} | Select-Object TimeCreated, Message | Out-GridView
Buscar procesos sin firma digital:
Get-WinEvent -FilterHashtable @{
LogName=‘Microsoft-Windows-Sysmon/Operational’;
ID=1
} | Where-Object {
$_.Message -notmatch ‘Signed=true’
} | Select-Object TimeCreated, Message
Identificar conexiones de red a puertos no estándar:
Get-WinEvent -FilterHashtable @{
LogName=‘Microsoft-Windows-Sysmon/Operational’;
ID=3
} | Where-Object {
$port = ($_.Message | Select-String -Pattern ‘DestinationPort:
(\d+)’).Matches.Groups[1].Value
$port -notin @(80, 443, 53, 22, 3389)
} | Format-Table TimeCreated, Message -AutoSize
Exportar eventos a JSON para análisis con SIEM:
Get-WinEvent -FilterHashtable @{
LogName=‘Microsoft-Windows-Sysmon/Operational’;
ID=1
} -MaxEvents 100 | Select-Object TimeCreated, Id, LevelDisplayName,
Message |
ConvertTo-Json | Out-File sysmon_events.json
5.3 Conclusión Profesional
Sysmon como Pilar de Defensa en Profundidad
1. Superioridad sobre Event Log Nativo:
Se ha demostrado que Sysmon proporciona telemetría crítica ausente en Windows Event Log estándar:
-
Hashing Criptográfico: Permite identificación inequívoca de binarios incluso si son renombrados o movidos
-
Líneas de Comando Completas: Captura argumentos que revelan intención (ej: powershell.exe -enc [base64] indica código ofuscado)
-
Process GUIDs: Correlación de actividad a través de múltiples eventos y sistemas
-
Información de Padre: Reconstrucción de árbol de ejecución para análisis de kill chain
2. Integración en Stack de Seguridad:
Sysmon actúa como sensor de telemetría para ecosistemas de detección:
-
SIEM Integration: Eventos de Sysmon pueden ser ingestados por Splunk, Elastic, QRadar, Sentinel mediante Winlogbeat o agentes nativos
-
EDR Augmentation: Complementa soluciones EDR comerciales con telemetría adicional personalizable
-
Threat Hunting Platform: Base de datos de actividad histórica para búsqueda proactiva de amenazas
-
Incident Response: Línea de tiempo forense detallada durante investigaciones
3. Casos de Uso Críticos Validados:
-
Detección de Living off the Land (LoL): Identificar abuso de binarios legítimos (certutil.exe para download, regsvr32.exe para inyección, mshta.exe para ejecución de JavaScript)
-
Credential Theft Detection: Event ID 10 (Process Access) detecta herramientas como Mimikatz intentando leer memoria de lsass.exe
-
Lateral Movement: Event ID 3 (Network Connection) + Event ID 1 (Process Create) revela uso de PsExec, WMI, PowerShell Remoting
-
Ransomware Early Warning: Event ID 11 (File Create) masivo + Event ID 23 (File Delete) indica posible cifrado activo
-
Command & Control (C2): Event ID 22 (DNS Query) detecta DGA, Event ID 3 identifica beaconing periódico
4. Configuración y Tuning:
El éxito de Sysmon depende de configuración adecuada:
-
Baseline Period: Ejecutar en modo permisivo durante 2-4 semanas para identificar procesos legítimos ruidosos
-
Exclusion Tuning: Agregar reglas de exclusión para procesos benignos de alto volumen (reduce carga en Event Log)
-
Rotation Policy: Configurar tamaño máximo de log (ej: 1 GB) y política de rotación (overwrite oldest) para evitar pérdida de eventos
-
Forwarding: Implementar Windows Event Forwarding (WEF) o agente de SIEM para centralización inmediata
5. Consideraciones de Rendimiento:
-
Overhead de CPU: Típicamente 1-3% en sistemas modernos con configuración tuneada
-
Overhead de I/O: Escritura constante a Event Log (considerar SSD para sistemas críticos)
-
Event Volume: 1,000-10,000 eventos/hora en workstation típica, 10,000-100,000 eventos/hora en servidor activo
-
Storage: Planificar ~100 MB - 1 GB por día por sistema dependiendo de configuración
6. Persistencia del Driver y Evasión:
Consideraciones de seguridad:
-
Driver Firmado: SysmonDrv está firmado digitalmente por Microsoft, pero puede ser desinstalado por administrador comprometido
-
Protección Recomendada: Usar Group Policy para prevenir desinstalación: Computer Configuration → Windows Settings → Security Settings → System Services → Sysmon64 → Automatic (Protected)
-
Rootkit Considerations: Rootkits de kernel pueden deshabilitar o bypassear Sysmon. Considerar Secure Boot + HVCI (Hypervisor-Enforced Code Integrity)
-
Detección de Tamper: Monitorizar Event ID 4 (Sysmon Service State Change) y Event ID 16 (Sysmon Configuration Change)
7. Evolución Continua:
Sysmon es actualizado frecuentemente con nuevas capacidades:
-
v15.0+ incluye Event ID 27 (WmiBindingEvent) y 28 (FileBlockShredding) para detección de anti-forensics
-
Nuevos algoritmos de hash (SHA512) en versiones futuras
-
Integración con Microsoft Defender for Endpoint para correlación automatizada
Integración con Módulos Previos:
Sysmon cierra el ciclo de capacidades de Sysinternals:
-
Process Explorer: Análisis en vivo de proceso sospechoso
-
Autoruns: Verificación de persistencia instalada
-
PsExec: Ejecución remota para respuesta (o detección de su uso malicioso vía Sysmon Event ID 13 en Services key)
-
Process Monitor: Análisis detallado de I/O en vivo
-
Sysmon: Registro histórico y permanente de toda actividad crítica
Próximo Módulo: Sigcheck - Auditoría masiva de firmas digitales y validación de integridad de controladores de sistema
Módulo 6: Auditoría de Integridad de Controladores
Herramienta: Sysinternals Sigcheck v2.90
Perfil: Threat Hunting / Compliance Audit / Forensic Analysis
Objetivo: Validación masiva de firmas digitales y detección de rootkits
6.1 Introducción Teórica
La Carpeta System32\Drivers: Objetivo Crítico para Amenazas Avanzadas
El directorio C:\Windows\System32\drivers\ contiene los controladores de modo kernel (Ring 0) que se cargan durante el arranque del sistema operativo. Estos drivers tienen acceso ilimitado a:
-
Memoria Física Completa: Pueden leer/escribir cualquier región de memoria, incluyendo espacio de kernel y procesos protegidos
-
Hardware Directo: Acceso sin restricciones a dispositivos (disco, red, teclado, GPU)
-
System Call Table: Capacidad de interceptar y modificar llamadas al sistema (SSDT Hooking)
-
Estructuras del Kernel: Manipulación de listas de procesos, módulos, callbacks de seguridad
Implicaciones de Seguridad Críticas:
Un controlador malicioso (rootkit) en esta ubicación puede:
-
Ocultar procesos, archivos y claves de registro de herramientas de administración y antivirus
-
Interceptar tráfico de red antes de que llegue al firewall
-
Capturar pulsaciones de teclado a nivel de hardware (keylogger de kernel)
-
Deshabilitar soluciones de seguridad (EDR, Antivirus, HIDS)
-
Persistir incluso después de reinstalación del sistema operativo (en casos de compromisos de firmware)
-
Ejecutar código arbitrario con máximos privilegios (NT AUTHORITY\SYSTEM)
Cadena de Confianza y Firmas Digitales
Microsoft implementa Driver Signature Enforcement (DSE) desde Windows Vista (64-bit) para prevenir carga de drivers no autorizados:
Proceso de Verificación de Firma
-
Firma del Fabricante: El desarrollador firma el driver con su certificado de firma de código
-
Certificado Root Trust: El certificado del desarrollador debe estar encadenado a una CA (Certificate Authority) confiable de Microsoft
-
Verificación en Carga: Durante el arranque, Windows verifica la firma digital antes de permitir carga del driver
-
Revocation Checking: Validación opcional contra Certificate Revocation Lists (CRL) o OCSP
Certificados de Confianza
Tipo de Certificado Nivel de Confianza Uso Típico
Microsoft Windows Máximo (Microsoft) Drivers nativos de Hardware Compatibility Windows (NTFS.sys, Publisher tcpip.sys)
Microsoft Windows Alto (Validado por MS) Fabricantes OEM con Third Party Component certificación WHQL CA
Standard Code Signing Medio (CA Comercial) Fabricantes (EV Certificate) independientes (ej: VMware, Intel)
Sin Firma / Ninguno No permitido en Self-Signed sistemas 64-bit sin Test Mode o DSE deshabilitado
Sigcheck: Capacidades de Auditoría Masiva
Sigcheck es una herramienta de línea de comandos que automatiza la verificación de firmas digitales y extracción de metadata de archivos ejecutables. Sus capacidades incluyen:
Funcionalidades Principales
-
Verificación de Firma Digital: Validación de cadena completa de certificados usando CryptoAPI de Windows
-
Certificate Chain Display: Muestra emisor, sujeto, fechas de validez, algoritmo de firma
-
Extracción de Metadata PE: Versión de archivo, descripción, company name, copyright
-
Hash Calculation: Cálculo de MD5, SHA1, SHA256 para correlación con IOC databases
-
VirusTotal Integration: Consulta automática de hashes contra base de datos de malware (requiere API key o límite público)
-
Timestamp Analysis: Verificación de timestamp de firma (detecta backdating)
-
Revocation Checking: Consulta contra CRLs y OCSP para detectar certificados revocados
-
Recursive Scanning: Escaneo de directorios completos con subdirectorios
-
CSV Export: Salida estructurada para análisis en Excel/PowerShell/Python
Parámetros Críticos
Parámetro Función Caso de Uso
-e Scan only executables Filtrar archivos no ejecutables (.txt, .log, .ini)
-u Show only unsigned Detección rápida de files archivos sin firma
-v Query VirusTotal Correlación con bases de datos de malware
-c CSV output Exportación para análisis masivo
-h Show file hashes (MD5, Generación de IOCs SHA1, SHA256)
-s Recurse subdirectories Escaneo completo de árboles de directorios
-nobanner Suppress header output Limpieza de salida para scripts
Detección de Rootkits Mediante Análisis de Firmas
Los rootkits modernos enfrentan un dilema fundamental:
Estrategias de Rootkits y Contramedidas
+-----------------------+-----------------------+-----------------------+ | Técnica de Rootkit | Firma Digital | Detección con | | | | Sigcheck | +-----------------------+-----------------------+-----------------------+ | Driver Sin Firma | Ninguna | ✓ Detectado | | | | inmediatamente con -u | | | | | | | | Requiere Test Mode o | | | | DSE bypass | +-----------------------+-----------------------+-----------------------+ | Firma | Self-Signed | ✓ Detectado (CA no | | Auto-Generada | | confiable) | | | | | | | | No puede cargar en | | | | Windows 64-bit | | | | estándar | +-----------------------+-----------------------+-----------------------+ | Certificado | Válida (Revocada) | ✓ Detectado con | | Robado | | revocation check | | | | | | | | Ejemplos: Stuxnet, | | | | Duqu | +-----------------------+-----------------------+-----------------------+ | Driver Legítimo | Válida | ⚠ No detectado por | | Vulnerable | | firma | | | | | | | | Requiere análisis de | | | | comportamiento | | | | | | | | Ejemplos: Capcom.sys, | | | | RTCore64.sys | +-----------------------+-----------------------+-----------------------+ | BYOVD (Bring Your | Válida | ⚠ Detectado mediante | | Own Vulnerable | | whitelisting | | Driver) | | | | | | Drivers legítimos | | | | pero no esperados en | | | | el sistema | +=====================+===================+=====================+
BYOVD (Bring Your Own Vulnerable Driver): Técnica moderna donde atacantes instalan drivers legítimos y firmados que contienen vulnerabilidades conocidas, luego explotan esas vulnerabilidades para ejecutar código en modo kernel. Sigcheck puede detectar estos drivers identificando fabricantes inesperados o drivers obsoletos con versiones vulnerables conocidas.
6.2 Práctica de Laboratorio
Escenario: Auditoría Masiva de Controladores del Sistema
Objetivo: Realizar inventario completo de todos los drivers instalados en el sistema, validar su integridad criptográfica y detectar posibles rootkits.
Paso 1: Descarga y Preparación de Sigcheck
Sigcheck se distribuye como parte de Sysinternals Suite:
https://download.sysinternals.com/files/Sigcheck.zip
Contenido del paquete:
-
sigcheck.exe - Versión 32-bit
-
sigcheck64.exe - Versión 64-bit (recomendado)
-
Eula.txt - Términos de licencia
Paso 2: Ejecución del Escaneo Masivo
Se ejecutó el siguiente comando desde PowerShell con privilegios de Administrador:
sigcheck64.exe -e -u -v -c C:\Windows\System32\drivers > auditoria_drivers.csv
Desglose de Parámetros
-e (Executables only): Filtra solo archivos ejecutables (PE files: .sys, .exe, .dll). Excluye archivos de configuración, texto o datos.
-u (Unsigned): Modo de visualización que prioriza archivos sin firma digital. En este caso, funciona como filtro de alarma: si algo aparece, es crítico.
-v (VirusTotal): Consulta el hash SHA256 de cada archivo contra la API de VirusTotal para verificar si ha sido identificado como malware previamente.
-c (CSV output): Genera salida en formato CSV (Comma-Separated Values) para análisis posterior en Excel, PowerShell o herramientas de data mining.
C:\Windows\System32\drivers Ruta objetivo del escaneo. Esta carpeta contiene TODOS los controladores de modo kernel del sistema.
> auditoria_drivers.csv Redirección de salida estándar a archivo CSV para documentación y análisis.
Paso 3: Análisis de la Salida
El escaneo generó los siguientes hallazgos:
Estadísticas Globales
Resultado de Auditoría: SISTEMA ÍNTEGRO
Total de Drivers Analizados: 393 archivos
Drivers Firmados: 393 (100%)
Drivers Sin Firma: 0 (0%)
Drivers con Firma Revocada: 0
Drivers con VirusTotal Detection: 0/393 (0% de malware detectado)
Análisis de Fabricantes (Publishers)
Se identificaron los siguientes fabricantes en el inventario de drivers:
Fabricante Cantidad de Tipo de Nivel de Drivers Hardware/Función Confianza
Microsoft ~320 Drivers nativos de Máximo ✓
Corporation Windows (NTFS,
TCP/IP, USB, ACPI)
HP Inc. 8 Controladores de Alto ✓
hardware HP
(hpdskflt.sys - Disk
Filter,
Accelerometer.sys -
Sensor de
acelerómetro)
ELAN 3 Controladores de Alto ✓
Microelectronics Touchpad
Corp. (ETDHCF.sys -
Enhanced Touchpad
Driver)
VMware, Inc. 5 Controladores de Alto ✓
virtualización
(hcmon.sys -
Host-Guest
Communication
Monitor)
LSI Corporation 4 Controladores de Alto ✓ / Intel almacenamiento (RAID, chipset)
Realtek / 3 Controladores de red Alto ✓ Broadcom (Ethernet, Wi-Fi)
Ejemplos de Drivers Validados (Muestra del CSV)
Path,Verified,Date,Publisher,Company,Description,Product,Version,File
Version
C:\Windows\System32\drivers\ntfs.sys,Signed,10/22/2021,Microsoft
Windows,Microsoft Corporation,NT File System Driver,Microsoft Windows
Operating System,10.0.22000.282,10.0.22000.282
C:\Windows\System32\drivers\hpdskflt.sys,Signed,08/15/2020,HP
Inc.,HP Inc.,HP ProtectSmart Hard Drive Protection Filter Driver,HP
ProtectSmart Hard Drive Protection,1.0.15.1,1.0.15.1
C:\Windows\System32\drivers\ETDHCF.sys,Signed,06/10/2019,ELAN
Microelectronics Corp.,ELAN Microelectronics Corp.,ELAN PS/2 Port Input
Device,ELAN PS/2 Port Input Device,19.8.22.1,19.8.22.1
C:\Windows\System32\drivers\hcmon.sys,Signed,03/28/2023,VMware,
Inc.,VMware, Inc.,hcmon driver,VMware VMCI,12.2.5.43814,12.2.5.43814
Interpretación de Campos del CSV
Campo Significado Uso Forense
Path Ruta completa del Ubicación física del archivo en disco driver
Verified Estado de firma: Signed CRÍTICO: Cualquier / Unsigned “Unsigned” es alerta roja
Date Fecha de modificación Correlación temporal del archivo (drivers muy recientes en sistema antiguo = sospechoso)
Publisher Sujeto del certificado Identificación del de firma (Common Name) fabricante real
Company Metadata PE: Validación cruzada con CompanyName Publisher (deben coincidir)
Description Metadata PE: Función declarada del FileDescription driver
Product Metadata PE: Suite de software al ProductName que pertenece
Version Metadata PE: Detección de versiones ProductVersion vulnerables conocidas
File Version Metadata PE: Versión específica del FileVersion binario
Análisis de Limitaciones: Error de VirusTotal
Durante la ejecución con el parámetro -v, se observaron errores intermitentes:
Error Observado:
“Uno de los dispositivos conectados al sistema no funciona”
“No se pudo establecer conexión”
Causa Raíz: La API pública de VirusTotal tiene límites de tasa (rate limiting):
-
Sin API Key: 4 requests por minuto
-
API Key Gratis: 500 requests por día
-
API Key Premium: 100,000 requests por día
Al intentar consultar 393 hashes simultáneamente, se excedió el límite y la API rechazó las conexiones.
Mitigación:
-
Prioritización: Ejecutar sigcheck64.exe -u -v -c solo en archivos sin firma detectados previamente
-
Batch Processing: Dividir el escaneo en lotes de 50 archivos con delays de 15 segundos entre lotes
-
API Key: Obtener API key gratuita en virustotal.com y usar -vt para especificarla
-
Alternativa Offline: Extraer hashes con -h y consultarlos manualmente en VirusTotal web interface
Extracción de Hashes para Análisis Manual
Comando alternativo para generar base de datos de hashes sin consultar VirusTotal:
sigcheck64.exe -e -h -c C:\Windows\System32\drivers > drivers_hashes.csv
Esto genera archivo CSV con columnas: Path, Verified, MD5, SHA1, SHA256, Publisher
Paso 4: Análisis Avanzado con PowerShell
Para análisis programático del CSV generado:
Importar CSV y filtrar por fabricantes no Microsoft:
$drivers = Import-Csv auditoria_drivers.csv
# Filtrar drivers de terceros
$thirdParty = $drivers | Where-Object {
$_.Publisher -ne “Microsoft Windows” -and
$_.Publisher -ne “Microsoft Corporation”
}
# Agrupar por fabricante
$thirdParty | Group-Object Publisher |
Select-Object Name, Count |
Sort-Object Count -Descending |
Format-Table -AutoSize
Detectar drivers con fechas anómalas (modificados recientemente):
# Detectar drivers modificados en últimos 30 días
$recentDrivers = $drivers | Where-Object {
$fileDate = [datetime]::ParseExact($_.Date, “MM/dd/yyyy”,
$null)
$fileDate -gt (Get-Date).AddDays(-30)
}
$recentDrivers | Select-Object Path, Date, Publisher | Format-Table
-AutoSize
Identificar drivers potencialmente vulnerables (versiones antiguas):
# Buscar drivers con versión anterior a 10.0 (pre-Windows 10)
$oldDrivers = $drivers | Where-Object {
$_.Version -match ”^\d+” -and
[int]($_.Version.Split(’.’)[0]) -lt 10
}
$oldDrivers | Select-Object Path, Version, Publisher, Description |
Format-Table -Wrap
6.3 Conclusión Profesional
Validación de Integridad del Sistema a Nivel Kernel
1. Verificación de Ausencia de Rootkits:
La auditoría ha confirmado que el sistema presenta postura de seguridad óptima a nivel de controladores de kernel:
-
100% de Drivers Firmados: No se detectaron archivos sin firma digital válida
-
0% de Detecciones VirusTotal: Ningún driver ha sido marcado como malware por la comunidad de seguridad
-
Cadenas de Certificación Válidas: Todos los fabricantes identificados tienen certificados emitidos por CAs de confianza
-
Ausencia de Certificados Revocados: No se encontraron certificados en listas de revocación
2. Inventario de Fabricantes y Validación de Legitimidad:
El análisis de publishers reveló:
-
Microsoft Corporation (~82% de drivers): Proporción normal para sistema Windows
-
HP Inc. (hardware OEM): Drivers de protección de disco y sensores de hardware, legítimos y esperados en laptop HP
-
ELAN Microelectronics (touchpad): Fabricante estándar de touchpads para laptops
-
VMware (virtualización): Drivers de guest additions, legítimos si el sistema es VM o tiene VMware Workstation instalado
-
LSI/Intel (almacenamiento): Controladores de chipset estándar
Indicador de Sistema No Comprometido: La ausencia total de drivers sin firmar en la carpeta crítica System32\drivers descarta la presencia de:
-
Rootkits persistentes de kernel
-
Drivers de malware (keystroke loggers, network filters maliciosos)
-
Backdoors de nivel kernel instalados por atacantes
-
Software crackeado que instala drivers de bypass (ej: activadores de Windows/Office)
3. Capacidades Defensivas Implementadas:
El dominio de Sigcheck permite establecer múltiples capas de defensa:
A. Baseline de Seguridad
-
Guardar snapshot del CSV generado como “línea base conocida buena”
-
Programar escaneos periódicos (semanal/mensual) y comparar con baseline
-
Alertar sobre cualquier driver nuevo que aparezca sin firma o de fabricante desconocido
B. Whitelisting de Drivers
-
Extraer lista de hashes SHA256 de drivers legítimos
-
Implementar Application Control (AppLocker / Windows Defender Application Control) para bloquear carga de drivers no whitelisteados
-
Usar Group Policy para enforcing en dominio
C. Detección de BYOVD (Bring Your Own Vulnerable Driver)
-
Correlacionar versiones de drivers contra bases de datos de vulnerabilidades conocidas (CVE)
-
Ejemplo: RTCore64.sys v1.0 (CVE-2019-16098) usado por RobbinHood ransomware
-
Crear alertas para drivers legítimos pero obsoletos/vulnerables
D. Threat Hunting Proactivo
-
Buscar drivers de fabricantes inusuales (ej: empresas chinas/rusas en infraestructura estadounidense)
-
Identificar drivers de seguridad/antivirus que hayan sido desinstalados recientemente
-
Detectar drivers con timestamps sospechosos (ej: firmados en el futuro, o backdated)
4. Integración con Workflow de Incident Response:
Durante investigación de compromiso sospechado:
-
Adquisición Forense: Montar imagen de disco del sistema comprometido en sistema forense
-
Análisis Offline: Ejecutar sigcheck64.exe -e -u -v -c E:\[mounted_image]\Windows\System32\drivers
-
Comparación con Baseline: Diff contra CSV de sistema limpio conocido
-
Extracción de IOCs: Cualquier driver sin firma o no reconocido genera IOC (hash, nombre, metadata)
-
Timeline Reconstruction: Usar timestamps de archivos para reconstruir momento de infección
-
Yara Rules: Crear firmas Yara basadas en metadata de drivers maliciosos para escaneo masivo
5. Limitaciones y Consideraciones:
-
Firmas Válidas no Garantizan Seguridad: Drivers legítimos con vulnerabilidades (BYOVD) pasarán la verificación
-
Certificados Robados: Malware sofisticado (APT) ha usado certificados válidos robados de fabricantes legítimos
-
Timestamp Manipulation: Atacantes pueden modificar timestamps de archivo (requiere análisis de $MFT para timestamps reales)
-
VirusTotal Rate Limiting: Escaneos masivos requieren API key premium o batch processing con delays
-
False Negatives: Malware de día cero no estará en bases de datos de VirusTotal inicialmente
6. Extensión de Auditoría a Otros Directorios Críticos:
Aplicar misma metodología a:
-
C:\Windows\System32\ - Ejecutables del sistema
-
C:\Windows\SysWOW64\ - Ejecutables de 32-bit en sistemas 64-bit
-
C:\Program Files\ - Aplicaciones instaladas
-
C:\Windows\System32\wbem\ - Componentes WMI
-
C:\Windows\System32\Tasks\ - Executables referenciados por tareas programadas
7. Automatización y Monitoreo Continuo:
# Script PowerShell para auditoría programada
$baseline = Import-Csv “C:\Baseline\drivers_baseline.csv”
$current = Import-Csv “C:\Temp\drivers_current.csv”
# Detectar nuevos drivers
$newDrivers = Compare-Object $baseline $current -Property Path |
Where-Object {$_.SideIndicator -eq "⇒"}
if ($newDrivers) {
$alert = $newDrivers | ForEach-Object {
$current | Where-Object {$_.Path -eq $_.Path}
}
# Enviar alerta a SIEM o email
Send-MailMessage -To “security@company.com” `
-Subject “NEW DRIVER DETECTED - SECURITY ALERT” `
-Body ($alert | ConvertTo-Html | Out-String)
}Conclusión General: La combinación de Sigcheck para validación estática de integridad y Sysmon (Módulo 5) para monitoreo dinámico de carga de drivers (Event ID 6) proporciona cobertura completa contra amenazas a nivel de kernel.
Próximo Módulo: Streams - Detección de datos ocultos en Alternate Data Streams (ADS) de NTFS
Módulo 7: Detección de Flujos de Datos Ocultos (Alternate Data Streams)
Herramienta: Sysinternals Streams v1.6x
Perfil: Forensic Analysis / Anti-Forensics / Malware Hunting
Objetivo: Detección de datos ocultos en Alternate Data Streams (ADS) de NTFS
7.1 Introducción Teórica
NTFS Alternate Data Streams: Arquitectura y Funcionamiento
El sistema de archivos NTFS (New Technology File System) implementa una característica nativa denominada Alternate Data Streams (ADS), que permite asociar múltiples flujos de datos a un único archivo o directorio.
Estructura de NTFS: Master File Table (MFT)
Cada archivo en NTFS está representado por una entrada en la Master File Table (MFT). Esta entrada contiene:
-
Atributos Estándar: Nombre del archivo, timestamps (Created, Modified, Accessed), permisos NTFS
-
Atributo $DATA (principal): Contenido principal del archivo (lo que ves al abrir el archivo)
-
Atributos $DATA Alternos: Streams adicionales con nombres personalizados
-
Otros Atributos: $ATTRIBUTE_LIST, $FILE_NAME, $INDEX_ROOT, etc.
Sintaxis de Alternate Data Streams
Los ADS se acceden mediante la sintaxis:
nombre_archivo.txt:nombre_stream:$DATA
Ejemplo:
-
documento.txt → Stream principal (visible)
-
documento.txt:oculto → Stream alterno (invisible)
-
documento.txt:password → Otro stream alterno
Usos Legítimos de Alternate Data Streams
Microsoft y el sistema operativo utilizan ADS para funcionalidades legítimas:
1. Zone Identifier (Mark of the Web)
Windows Internet Explorer y navegadores modernos marcan archivos descargados de Internet con un ADS especial:
archivo_descargado.exe:Zone.Identifier:$DATA
Contenido típico del stream:
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://example.com/download/file.exe\
HostUrl=https://cdn.example.com/file.exe
ZoneId Zona Nivel de Confianza
0 Local Computer Máxima confianza
1 Local Intranet Alta confianza
2 Trusted Sites Confianza configurada
3 Internet Precaución (genera advertencia de SmartScreen)
4 Restricted Sites Bloqueado
Propósito de Seguridad: Este ADS permite a Windows mostrar advertencias como “Este archivo proviene de Internet y podría ser peligroso” al intentar ejecutarlo. SmartScreen utiliza esta información para aplicar políticas de seguridad.
2. Metadata de Aplicaciones
-
Windows Search Index: Almacena información de indexación en ADS
-
NTFS Compression: Metadata de compresión
-
File Thumbnails: Miniaturas de imágenes (obsoleto, ahora usa Thumbs.db)
-
Summary Information: Propiedades extendidas de Office
Abuso de ADS por Malware y Atacantes
Las características técnicas de ADS los hacen atractivos para técnicas de evasión y anti-forensics:
Ventajas Operacionales para Atacantes
Característica Ventaja para Atacante Impacto en Detección
Invisibilidad en Windows Explorer NO Usuario no puede ver Explorer muestra ADS en la archivos ocultos sin interfaz gráfica herramientas especializadas
Comando DIR no lista dir solo muestra el Administradores básicos ADS stream principal no detectan presencia
Tamaño no se suma al ADS NO incrementa el Archivos de 1 KB pueden archivo tamaño reportado del contener GB de datos archivo ocultos
Hash no afectado MD5/SHA256 del archivo Whitelisting por hash principal no cambia no detecta modificación
Ejecución directa Se puede ejecutar código Ejecución de malware desde ADS: wscript sin archivos .exe archivo.txt:script.vbs visibles
Persistencia en Algunos métodos de copia Propagación de malware copia (Copy-Item en a través de archivos comando:: PowerShell) preservan compartidos ADS
Técnicas de Ataque Documentadas
1. Ocultación de Payloads (Malware Dropper)
# Atacante oculta ejecutable malicioso en ADS
type malware.exe > legitimo.txt:payload.exe
# Ejecuta el payload oculto
start legitimo.txt:payload.exe
Detección Complicada: El archivo legitimo.txt aparenta ser un archivo de texto de 2 KB, pero contiene un ejecutable completo de 500 KB en su ADS que no es visible sin herramientas especializadas.
2. Exfiltración de Datos (Data Hiding)
# Atacante oculta datos robados en archivo aparentemente inocente
copy /b passwords.txt logo.png:exfil.dat
# El archivo logo.png se ve normal, pero contiene datos robados
3. Evasión de Antivirus
Antivirus tradicionales (no modernos) podían:
-
Escanear solo el stream principal del archivo
-
No detectar malware almacenado en ADS
-
Generar falsos negativos en archivos “limpios” con malware oculto
Evolución de Defenses: EDR modernos y antivirus de última generación (NGAV) ahora escanean ADS automáticamente. Sysmon Event ID 15 registra creación de ADS.
4. Anti-Forensics (Hiding Tools)
Atacantes APT han usado ADS para:
-
Ocultar herramientas de post-explotación (Mimikatz, PsExec, BloodHound)
-
Almacenar credenciales robadas sin crear archivos adicionales
-
Guardar configuración de C2 en archivos del sistema aparentemente legítimos
Streams.exe: Capacidades de Detección
Streams es una herramienta de línea de comandos de Sysinternals especializada en detectar y manipular Alternate Data Streams:
Funcionalidades
-
Detección de ADS: Lista todos los streams alternos de archivo o directorio
-
Escaneo Recursivo: Analiza árboles de directorios completos con -s
-
Eliminación de ADS: Puede borrar streams específicos o todos con -d
-
Tamaño de Streams: Muestra tamaño de cada stream (evidencia de data hiding)
-
Formato de Salida: Texto plano fácil de parsear con scripts
Sintaxis Básica
streams.exe [-s] [-d] [archivo o directorio]
-s Escaneo recursivo de subdirectorios
-d Eliminar todos los ADS encontrados
7.2 Práctica de Laboratorio
Escenario: Prueba de Concepto de Ocultación de Datos
Objetivo: Demostrar cómo un atacante puede ocultar información en ADS y cómo detectarlo con Streams.
Fase 1: Creación de Archivo Señuelo
Se creó un archivo de texto aparentemente inocente:
echo “Soy un archivo normal” > C:\Users\Public\visible.txt
Verificación del archivo:
C:\Users\Public> dir visible.txt
Directory of C:\Users\Public
01/31/2026 18:45 24 visible.txt
1 File(s) 24 bytes
Estado Inicial: El archivo visible.txt tiene 24 bytes (texto “Soy un archivo normal” + CRLF).
Fase 2: Inyección de Datos en ADS (Técnica de Ocultación)
Se utilizó redirección de output para crear un Alternate Data Stream:
echo “ESTE ES EL SECRETO OCULTO” > C:\Users\Public\visible.txt:escondido.txt
Explicación Técnica:
-
El operador > redirige la salida estándar
-
La sintaxis archivo:stream indica que se debe escribir en un ADS
-
Se creó un stream llamado escondido.txt dentro del archivo visible.txt
-
El contenido “ESTE ES EL SECRETO OCULTO” se almacenó en este stream oculto
Fase 3: Evasión de Herramientas Tradicionales
Se verificó que las herramientas estándar de Windows NO detectan el ADS:
Comando DIR (NO detecta ADS):
C:\Users\Public> dir visible.txt
Directory of C:\Users\Public
01/31/2026 18:45 24 visible.txt
1 File(s) 24 bytes
Evidencia de Ocultación:
-
El tamaño reportado sigue siendo 24 bytes (solo cuenta el stream principal)
-
No hay indicación visual de que exista un ADS con 28 bytes adicionales
-
El administrador de sistemas básico NO detectaría la presencia de datos ocultos
Windows Explorer (NO muestra ADS):
Al inspeccionar el archivo en el Explorador de Windows:
-
Tamaño mostrado: 24 bytes
-
Propiedades del archivo: Sin mención de streams alternos
-
Icono y tipo: Archivo de texto normal
Hash del archivo (NO afectado por ADS):
C:\Users\Public> certutil -hashfile visible.txt SHA256
SHA256 hash of visible.txt:
a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456
CertUtil: -hashfile command completed successfully.
Implicación Forense: El hash SHA256 se calcula SOLO sobre el stream principal ($DATA). Si un investigador whitelist el archivo basándose en este hash, NO detectará la presencia del ADS malicioso.
Fase 4: Acceso a Datos Ocultos (Proof of Concept)
Se demostró que los datos ocultos son accesibles usando la sintaxis correcta:
Lectura del contenido oculto:
notepad C:\Users\Public\visible.txt:escondido.txt
Notepad abre el stream escondido.txt mostrando: “ESTE ES EL SECRETO OCULTO”
Alternativa con CMD:
C:\Users\Public> more < visible.txt:escondido.txt
ESTE ES EL SECRETO OCULTO
Fase 5: Detección Forense con Sysinternals Streams
Se utilizó la herramienta Streams para revelar la presencia de ADS:
streams.exe C:\Users\Public\visible.txt
Salida de Streams.exe:
Streams v1.60 - Reveal NTFS alternate streams.
Copyright (C) 2005-2016 Mark Russinovich
Sysinternals - www.sysinternals.com\
C:\Users\Public\visible.txt:
:escondido.txt:$DATA 28
Detección Exitosa:
-
Stream Identificado: :escondido.txt:$DATA
-
Tamaño del Stream: 28 bytes (texto oculto + CRLF)
-
Localización: Dentro del archivo visible.txt
Interpretación de la Salida
Campo Valor Significado
Archivo Base C:\Users\Public\visible.txt Archivo que contiene el ADS
Nombre del Stream :escondido.txt Nombre personalizado del Alternate Data Stream
Tipo de Atributo :$DATA Indica que es un stream de datos (no metadata)
Tamaño 28 Tamaño en bytes del contenido oculto
Caso de Uso Avanzado: Escaneo Masivo de Sistema
Para auditar un sistema completo en busca de ADS sospechosos:
Escaneo recursivo de directorio de usuario:
streams.exe -s C:\Users\%USERNAME% > ads_scan_results.txt
Escaneo de carpetas críticas del sistema:
streams.exe -s C:\Windows\System32 > system32_ads.txt
streams.exe -s C:\Windows\Temp > temp_ads.txt
streams.exe -s “C:\Program Files” > programfiles_ads.txt
Filtrado de Resultados Legítimos
No todos los ADS son maliciosos. Filtrar ADS legítimos conocidos:
# PowerShell: Filtrar solo Zone.Identifier (legítimo)
Get-Content ads_scan_results.txt |
Where-Object {$_ -notmatch ‘Zone.Identifier’} |
Where-Object {$_ -match ’:.*:\$DATA’}
ADS Legítimos Comunes (whitelist):
-
:Zone.Identifier:$DATA - Mark of the Web de Internet
-
:{4c8cc155-6c1e-11d1-8e41-00c04fb9386d}:$DATA - Thumbnail cache (obsoleto)
-
:encryptable:$DATA - Metadata de cifrado NTFS
-
:$KERNEL.PURGE.ESBCACHE:$DATA - Metadata de Windows Search
Eliminación de ADS (Remediación)
Si se detecta un ADS sospechoso, Streams puede eliminarlo:
Eliminar ADS específico (conserva archivo base):
streams.exe -d C:\Users\Public\visible.txt
Eliminar todos los ADS en directorio recursivamente:
streams.exe -s -d C:\Users\Public\
ADVERTENCIA: El parámetro -d elimina TODOS los ADS, incluyendo legítimos como Zone.Identifier. Esto puede causar que Windows pierda información de seguridad sobre archivos descargados. Usar con precaución y solo en contexto de remediación de malware confirmado.
Alternativa: Copia sin ADS (método de sanitización):
# PowerShell: Copiar archivo sin preservar ADS
Get-Content visible.txt | Set-Content visible_clean.txt
# O usando robocopy sin /COPY:S
robocopy source dest /COPY:DAT
7.3 Conclusión Profesional
Alternate Data Streams: De Característica de Sistema a Vector de Amenaza
1. Comprensión de la Amenaza de ADS:
Se ha demostrado empíricamente que Alternate Data Streams constituyen un mecanismo efectivo de evasión forense:
-
Invisibilidad Total: Windows Explorer, DIR, propiedades de archivo NO revelan presencia de ADS
-
Sin Impacto en Tamaño: Archivos de 1 KB pueden contener GB de datos ocultos sin cambio en tamaño reportado
-
Hash Integrity Bypass: MD5/SHA256 del archivo no cambia, evadiendo whitelisting por hash
-
Ejecución Directa: Código malicioso puede ejecutarse desde ADS sin crear archivos visibles
2. Casos de Uso Defensivos (Blue Team):
A. Threat Hunting Proactivo
Búsqueda programada de ADS sospechosos en infraestructura:
# Script PowerShell para auditoría automatizada
$results = @()
$paths = @(“C:\Windows\System32”, “C:\Users”, “C:\ProgramData”)
foreach ($path in $paths) {
$adsFiles = & streams.exe -s $path 2>$null |
Where-Object {$_ -match ’:\w+:’ -and $_ -notmatch ‘Zone.Identifier’}
$results += $adsFiles
}
if ($results.Count -gt 0) {
# Enviar alerta a SIEM
$results | Out-File “C:\SecurityLogs\ads_detections_$(Get-Date -Format yyyyMMdd).log”
Send-Alert -Message “ADS sospechosos detectados” -Priority High
}
B. Incident Response
Durante investigación de compromiso:
-
Triage Inicial: Ejecutar streams -s C:\ para identificar todos los ADS del sistema
-
Filtrado de Legítimos: Excluir Zone.Identifier y otros ADS conocidos benignos
-
Análisis de Contenido: Extraer y analizar contenido de ADS sospechosos:
more < archivo_sospechoso.txt:stream_desconocido > extracted_payload.bin -
Hash y Yara: Calcular hash del contenido extraído y ejecutar reglas Yara
-
Correlación Temporal: Usar timestamps de MFT ($SI y $FN attributes) para determinar cuándo se creó el ADS
C. Forensic Acquisition
Consideraciones para preservar evidencia:
-
Imaging Completo: Usar herramientas de imaging forense (FTK Imager, dd) que preservan ADS
-
No Usar Copy/Paste: Windows Explorer puede NO copiar ADS dependiendo de versión y método
-
PowerShell Copy-Item: Usar Copy-Item -Stream * para preservar todos los streams
-
Documentación: Listar todos los ADS encontrados con streams -s > evidence_ads_list.txt
3. Detección Moderna y Evolución de Defenses:
Sysmon Event ID 15 - File Create Stream Hash
Desde Sysmon v6.0+, Event ID 15 registra creación de ADS:
Event ID: 15
EventName: FileCreateStreamHash
UtcTime: 2026-01-31 18:47:22.456
ProcessGuid: {a1b2c3d4-1234-5678-abcd-ef1234567890}
ProcessId: 7890
Image: C:\Windows\System32\cmd.exe
TargetFilename: C:\Users\Public\visible.txt
CreationUtcTime: 2026-01-31 18:47:22.456
Hash: SHA256=1A2B3C4D5E6F7890ABCDEF1234567890…Integración con SIEM: Configurar alertas en SIEM para Event ID 15 con filtros:
-
Excluir Zone.Identifier (legítimo)
-
Alertar sobre streams con nombres sospechosos (.exe, .dll, .vbs, .ps1)
-
Correlacionar con Event ID 1 (Process Create) para identificar proceso creador
-
Buscar correlación temporal con Event ID 3 (Network Connection) - posible C2 descargando payload a ADS
EDR y Antivirus Modernos
Soluciones de seguridad actuales implementan:
-
ADS Scanning: Escaneo automático de todos los streams durante análisis de archivos
-
Behavioral Analysis: Detección de ejecución desde ADS (proceso con filepath conteniendo ’:’)
-
Memory Scanning: Análisis de memoria de procesos que cargan código desde ADS
-
ML Detection: Machine Learning para identificar patrones anómalos de uso de ADS
4. Casos Históricos de Abuso de ADS:
Malware/APT Uso de ADS Año
Stream.exe Primer malware 1998
(Trojan) documentado usando
ADS para ocultación
BackOrifice 2000 Backdoor que se 1999
ocultaba en ADS de
archivos del sistema
Duqu (APT) Configuración de C2 2011
almacenada en ADS de
archivos legítimos
ZeroAccess Componentes de 2011
Rootkit rootkit ocultos en
ADS para evasión
Kovter (Fileless Payload completo en 2015
Malware) ADS + ejecución vía
JavaScript
5. Limitaciones de la Detección de ADS:
-
Solo NTFS: ADS no existen en FAT32, exFAT, o sistemas de archivos no-Windows
-
Pérdida en Transferencia: Copiar archivo a USB FAT32 o enviar por email elimina ADS silenciosamente
-
Compresión/Archiving: ZIP, RAR, 7z pueden NO preservar ADS (depende de implementación)
-
Network Shares: SMB preserva ADS, pero FTP/HTTP NO lo hacen
6. Recomendaciones de Hardening:
-
Monitoreo Continuo: Implementar Sysmon con Event ID 15 en toda la infraestructura
-
Baseline de Seguridad: Auditoría inicial con Streams, guardar lista de ADS legítimos conocidos
-
Scheduled Scans: Ejecutar streams -s C:\ semanalmente y comparar con baseline
-
Application Whitelisting: Bloquear ejecución desde rutas con ’:’ usando AppLocker o WDAC
-
PowerShell Logging: Habilitar Script Block Logging para detectar creación de ADS vía PowerShell
-
User Education: Capacitar administradores sobre riesgos de ADS y técnicas de detección
7. Integración con Arsenal de Sysinternals:
Streams completa el ciclo de capacidades forenses de Sysinternals:
-
Process Explorer: Detectar procesos con rutas sospechosas (contienen ’:’)
-
Autoruns: Verificar persistencia en ADS (tareas programadas ejecutando desde streams)
-
PsExec: Deployment remoto de Streams para auditoría masiva
-
Process Monitor: Capturar operaciones de creación/acceso a ADS en tiempo real
-
Sysmon: Logging permanente de creación de ADS (Event ID 15)
-
Sigcheck: Verificar integridad de archivos que contengan ADS
-
Streams: Detección y remediación final de ADS maliciosos
Conclusión Final del Módulo: Alternate Data Streams representan una técnica de evasión sofisticada pero completamente detectable con las herramientas y metodologías adecuadas. La combinación de Streams (detección estática) y Sysmon Event ID 15 (monitoreo dinámico) proporciona cobertura completa contra abuso de ADS en entornos empresariales.
Fin de la Guía
Sysinternals: Arsenal Completo de Auditoría y Hardening
Módulos Cubiertos
-
Módulo 1: Process Explorer & TCPView
-
Módulo 2: Autoruns (ASEPs)
-
Módulo 3: PsExec (Administración Remota)
-
Módulo 4: Process Monitor (I/O Analysis)
-
Módulo 5: Sysmon (Telemetría Avanzada)
-
Módulo 6: Sigcheck (Integridad de Drivers)
-
Módulo 7: Streams (Alternate Data Streams)
“El conocimiento de las herramientas es solo el primer paso.
La maestría viene de su aplicación estratégica en defensa de la infraestructura.”
Sammi De Blas (PoisonXploIT 2>/dev/null)
Especialista en Ciberseguridad | ASIR | CompTIA Security+
Documento generado: Enero 2026
Entorno de Laboratorio: Windows 11 Enterprise/Pro
Sysinternals Suite - Microsoft Corporation