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

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:

  1. Elevación de Privilegios: Ejecutar procexp.exe como Administrador para acceder a procesos protegidos (servicios del sistema, procesos de otros usuarios)

  2. Habilitación de Verificación de Firmas:

    • Options → Verify Image Signatures

    • Esto agrega la columna “Verified Signer” que muestra el propietario del certificado

  3. 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)

  4. 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:

  1. Identificar proceso sospechoso en Process Explorer

  2. Validar firma digital y consultar VirusTotal

  3. Inspeccionar conexiones en TCPView

  4. Correlacionar puertos con servicios conocidos (IANA registry)

  5. Geolocalizar IPs destino para identificar anomalías geográficas

  6. 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:

  1. Elevación de Privilegios: Ejecutar autoruns.exe o autoruns64.exe como Administrador

  2. 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

  3. Verificación de Firmas: Options → Verify Code Signatures

  4. Integración VirusTotal: Options → Scan Options → Check VirusTotal.com

  5. 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
  1. 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

  2. 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

  3. 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)

  4. 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

  5. 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:

  1. Ejecutar como Administrador: Lanzar procmon64.exe con privilegios elevados

  2. Aceptar EULA: Primera ejecución requiere aceptación de términos de licencia

  3. Instalación del Driver: ProcMon carga automáticamente el driver de kernel (procmon24.sys) en %SystemRoot%\System32\Drivers\

  4. 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:

  1. CreateFile (Origen): Apertura de test_forense.txt con Desired Access: Generic Read

  2. CreateFile (Destino): Creación de test_backup.txt con Desired Access: Generic Write

  3. ReadFile (Origen): Lectura del contenido completo

  4. WriteFile (Destino): Escritura del contenido leído

  5. SetBasicInformationFile (Destino): Copia de metadata (timestamps)

  6. 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

  1. Enumeración Masiva: Alto volumen de operaciones QueryDirectory en múltiples directorios (búsqueda de archivos objetivo)

  2. Lectura Secuencial: ReadFile completo del archivo original

  3. Creación de Archivo Temporal: CreateFile con nombre aleatorio (ej: file.txt.encrypted o .tmp)

  4. Escritura Encriptada: WriteFile al archivo temporal con tamaño similar al original

  5. Eliminación del Original: SetDispositionInformationFile marcando el archivo original para borrado

  6. Renombramiento: SetRenameInformationFile cambiando extensión (ej: .locked, .encrypted, .crypted)

  7. 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:

  1. Process Explorer: Identificar proceso sospechoso (firma, conexiones, memoria)

  2. Process Monitor: Capturar comportamiento detallado del proceso (qué hace)

  3. Autoruns: Verificar si instaló persistencia

  4. TCPView: Confirmar conexiones de red activas

  5. 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:

  1. Presionar Win+R → eventvwr.msc → Enter

  2. Navegar a: Applications and Services Logs → Microsoft → Windows → Sysmon → Operational

  3. 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:

  1. Proceso Padre: GoogleUpdate.exe (servicio de actualización en segundo plano)

  2. Proceso Hijo: updater.exe (componente de verificación de actualizaciones)

  3. 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:

  1. Process Explorer: Análisis en vivo de proceso sospechoso

  2. Autoruns: Verificación de persistencia instalada

  3. PsExec: Ejecución remota para respuesta (o detección de su uso malicioso vía Sysmon Event ID 13 en Services key)

  4. Process Monitor: Análisis detallado de I/O en vivo

  5. 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
  1. Firma del Fabricante: El desarrollador firma el driver con su certificado de firma de código

  2. Certificado Root Trust: El certificado del desarrollador debe estar encadenado a una CA (Certificate Authority) confiable de Microsoft

  3. Verificación en Carga: Durante el arranque, Windows verifica la firma digital antes de permitir carga del driver

  4. 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:

  1. Prioritización: Ejecutar sigcheck64.exe -u -v -c solo en archivos sin firma detectados previamente

  2. Batch Processing: Dividir el escaneo en lotes de 50 archivos con delays de 15 segundos entre lotes

  3. API Key: Obtener API key gratuita en virustotal.com y usar -vt para especificarla

  4. 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:

  1. Adquisición Forense: Montar imagen de disco del sistema comprometido en sistema forense

  2. Análisis Offline: Ejecutar sigcheck64.exe -e -u -v -c E:\[mounted_image]\Windows\System32\drivers

  3. Comparación con Baseline: Diff contra CSV de sistema limpio conocido

  4. Extracción de IOCs: Cualquier driver sin firma o no reconocido genera IOC (hash, nombre, metadata)

  5. Timeline Reconstruction: Usar timestamps de archivos para reconstruir momento de infección

  6. 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:

  1. Triage Inicial: Ejecutar streams -s C:\ para identificar todos los ADS del sistema

  2. Filtrado de Legítimos: Excluir Zone.Identifier y otros ADS conocidos benignos

  3. Análisis de Contenido: Extraer y analizar contenido de ADS sospechosos:
    more < archivo_sospechoso.txt:stream_desconocido > extracted_payload.bin

  4. Hash y Yara: Calcular hash del contenido extraído y ejecutar reglas Yara

  5. 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:

  1. Process Explorer: Detectar procesos con rutas sospechosas (contienen ’:’)

  2. Autoruns: Verificar persistencia en ADS (tareas programadas ejecutando desde streams)

  3. PsExec: Deployment remoto de Streams para auditoría masiva

  4. Process Monitor: Capturar operaciones de creación/acceso a ADS en tiempo real

  5. Sysmon: Logging permanente de creación de ADS (Event ID 15)

  6. Sigcheck: Verificar integridad de archivos que contengan ADS

  7. 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