Trabajando con el Windows Event Log

El Windows Event Log es un componente crítico tanto para defensores (SOC, admins) como para atacantes (pentesters), ya que:


📌 Conceptos Clave

Evento (Event)

Registro de Eventos (Event Logging)

Ubicación de los logs


📂 Categorías de Logs

Categoría Descripción
System Eventos relacionados con Windows y sus componentes (ej. servicio falla al iniciar).
Security Eventos de seguridad (inicios de sesión exitosos/fallidos, creación/eliminación de archivos).
Application Eventos generados por software instalado (ej. fallo de Slack).
Setup Instalación de Windows y eventos de Active Directory en controladores de dominio.
Forwarded Events Logs enviados desde otros hosts de la red.

⚠ Tipos de Eventos

Tipo Descripción
Error Problema grave (ej. servicio no carga).
Warning Advertencia de posible problema futuro (ej. espacio en disco bajo).
Information Evento informativo sobre operación exitosa.
Success Audit Acceso de seguridad auditado exitoso.
Failure Audit Acceso de seguridad auditado fallido.

Niveles de severidad

Nivel # Descripción
Critical 1 Problema crítico que requiere atención inmediata.
Error 2 Problema que no requiere atención inmediata.
Warning 3 Posible problema futuro.
Information 4 Evento informativo.
Verbose 5 Mensajes de progreso o éxito detallados.

🔍 Elementos de un Event Log


🛠 Interacción con el Event Log

1️⃣ Desde la línea de comandos: wevtutil

wevtutil el

wevtutil gl "Windows PowerShell"

wevtutil gli "Windows PowerShell"

wevtutil qe Security /c:5 /rd:true /f:text

wevtutil epl System C:\system_export.evtx

2️⃣ Desde PowerShell: Get-WinEvent

Get-WinEvent -ListLog *

Get-WinEvent -ListLog Security

Get-WinEvent -LogName 'Security' -MaxEvents 5 | Select-Object -ExpandProperty Message

Get-WinEvent -FilterHashTable @{LogName='Security';ID='4625'}

Get-WinEvent -FilterHashTable @{LogName='System';Level='1'} | Select-Object -ExpandProperty Message

🧩 Ejemplo: Detectar un ataque de fuerza bruta

Pregunta:
¿Qué cuenta de usuario en el Domain Controller tiene muchos intentos fallidos de inicio de sesión (Event ID 4625) en rápida sucesión, lo que indica un posible ataque de fuerza bruta?

La bandera es el nombre de la cuenta de usuario.

1️⃣ Conectarse al Domain Controller

Para analizar los eventos, primero nos conectamos al DC (por ejemplo, vía SSH o RDP).

2️⃣ Buscar eventos de inicio de sesión fallidos

Podemos usar PowerShell para extraer los intentos fallidos:

Get-EventLog -LogName Security -InstanceId 4625 | Select-Object TimeGenerated,@{Name='AccountName';Expression={$_.ReplacementStrings[5]}}

Al revisar la salida, buscamos usuarios con muchos intentos fallidos en poco tiempo. Esto es indicativo de un ataque de password brute force.

Ejemplo de salida:
{72DB5E1B-36F7-4E31-83A1-625F978DBD31}.png
⚠️ Nota: Es crucial diferenciar entre usuarios locales y cuentas de dominio. Solo las cuentas de dominio aparecerán en los eventos del Domain Controller.