the_open_door
café
ESEN
← Volver al índice

Event Log Readers: credentials in the security log

Cuando una organización activa la auditoría de creación de procesos (4688) con línea de comandos, cualquier comando que reciba una contraseña como argumento (net use ... /user:..., cmdkey /pass:...) deja ese secreto en claro en el log de seguridad de Windows. Los miembros del grupo Event Log Readers, pensado para que analistas o desarrolladores lean logs sin ser administradores, pueden leer ese registro y cosechar las credenciales. Es un caso donde una medida defensiva (auditar comandos) se vuelve una fuente de credenciales para el atacante.

Mecanismo

Primero se confirma la pertenencia al grupo (SID S-1-5-32-573):

net localgroup "Event Log Readers"
whoami /groups

Con wevtutil volcamos el log de seguridad en texto y filtramos las líneas que contienen credenciales:

wevtutil qe Security /rd:true /f:text | Select-String "/user"
Process Command Line:   net use Z: \\DB01\scripts /user:mary W1ntergreen_gum_2021!
Process Command Line:   cmdkey /add:WEB01 /user:amanda /pass:Passw0rd!

wevtutil admite además credenciales alternativas y un host remoto:

wevtutil qe Security /rd:true /f:text /r:<host> /u:<user> /p:<pass> | findstr "/user"

Con PowerShell se puede filtrar directamente por eventos 4688 (el campo con la línea de comandos es Properties[8]), aunque esta vía requiere ser administrador o tener ajustada la ACL del registro HKLM\System\CurrentControlSet\Services\Eventlog\Security, no basta con pertenecer al grupo:

Get-WinEvent -LogName security | ? { $_.ID -eq 4688 -and $_.Properties[8].Value -like '*/user*'} | select @{n='CommandLine';e={$_.Properties[8].Value}}

Requisitos

Pertenecer a Event Log Readers (o ser administrador), que la organización tenga habilitada la auditoría 4688 con línea de comandos, y que existan comandos que pasen contraseñas por argumento (scripts de logon, tareas programadas, etc.). La vía de Get-WinEvent sobre el log Security necesita además administrador o la ACL ajustada; wevtutil funciona con el grupo.

Cómo detectarlo

Delatan el abuso la lectura masiva del log Security por cuentas que no son administradoras (uso de wevtutil qe Security desde miembros de Event Log Readers), las consultas Get-WinEvent filtrando por 4688, y la exfiltración del propio log. Irónicamente, si la auditoría de procesos está activa, el propio wevtutil genera su evento 4688.

Defensa. No pasar nunca contraseñas por línea de comandos (usar prompts interactivos o cuentas gMSA); no añadir usuarios a Event Log Readers salvo necesidad real; reenviar los logs a un SIEM y restringir el acceso local; activar Protected Event Logging; y revisar scripts que incrusten credenciales. Relacionado con credenciales guardadas en Windows, caza de credenciales, historial de PowerShell y credenciales de autologon.