Los actores de amenazas están aprovechando la utilidad de informe de errores de Windows, WerFaultSecure.exe, para extraer la región de memoria del Servicio LSASS.EXE y recopilar las credenciales almacenadas en caché de sistemas Windows 11 24H2 con todas las actualizaciones.
Tras obtener acceso inicial a un host, los atacantes suelen intentar volcar la memoria de LSASS para escalar privilegios y moverse lateralmente por la red. Las versiones modernas de Windows restringen severamente el acceso directo a la memoria de LSASS mediante la implementación de Protected Process Light (PPL), que requiere privilegios de kernel o un proceso PPL del mismo nivel para la interacción.
Los investigadores de Zero Salarium han demostrado cómo eludir estas defensas ejecutando un binario vulnerable de WerFaultSecure.exe compilado para Windows 8.1 en Windows 11, obteniendo así un volcado de memoria sin cifrar de LSASS. WER ya habia sido utilizado por Zero Salarium para "congelar" la ejecución del EDR de Microsoft.
Aprovechamiento del privilegio PPL de WerFaultSecure.exe
WerFaultSecure.exe forma parte del marco de Informe de Errores de Windows (WER) y normalmente se ejecuta con la etiqueta PPL más alta, WinTCB, para recopilar volcados de memoria de los procesos protegidos. Su estado protegido le permite acceder a la memoria LSASS bajo la apariencia de un controlador de fallos.
En Windows 8.1, existía una falla que permitía que WerFaultSecure.exe escribiera volcados de memoria sin aplicar sus rutinas de cifrado integradas, lo que resultaba en archivos de volcado sin cifrar en el disco.
Al copiar el archivo vulnerable WerFaultSecure.exe desde Windows 8.1 a un equipo con Windows 11 24H2 e iniciarlo con elevación PPL, los atacantes pueden engañar a la herramienta para que capture la memoria LSASS y escriba un volcado de memoria sin procesar.
Zero Salarium informa que
la secuencia de explotación implica ejecutar WerFaultSecure.exe con
parámetros no documentados descubiertos mediante ingeniería inversa:
/h para invocar el modo de bloqueo oculto seguro,
/pid [pid] para dirigirse al proceso LSASS,
/tid [tid] para especificar su hilo principal y
/file [handle]
para designar un identificador de salida sin cifrar.
El atacante utiliza un cargador personalizado llamado WSASS para generar WerFaultSecure.exe mediante la API CreateProcessAsPPL, heredando los identificadores del volcado de memoria y los objetos de evento.
El cargador se llama "WSASS" y puede descargarlo en el siguiente enlace: https://github.com/TwoSevenOneT/WSASS
WSASS espera a que se complete el volcado y luego reemplaza los primeros
cuatro bytes del archivo generado (del encabezado mágico PNG) con la firma
MDMP (0x4D,0x44,0x4D,0x50) para que se haga pasar por un
dispositivo de imagen benigno y evada los controles antivirus.
Finalmente, el cargador reanuda cualquier subproceso suspendido en LSASS otorgando permisos mínimos PROCESS_SUSPEND_RESUME para restaurar la estabilidad del sistema.
Una vez que el atacante restaura el encabezado MDMP, el minivolcado resultante puede cargarse en herramientas estándar, como pypykatz o Mimikatz, para extraer hashes NTLM y credenciales de texto plano, lo que facilita un mayor movimiento lateral.
Esta técnica subraya la importancia de supervisar los binarios de WerFaultSecure.exe fuera del directorio System32 y validar las invocaciones de procesos protegidos por PPL para detectar comportamientos anómalos de forma temprana.
Este exploit demuestra cómo se puede aprovechar la retrocompatibilidad de Windows contra las defensas modernas, lo que resalta la necesidad de que los defensores supervisen tanto la ubicación de los archivos como los contextos de invocación de las herramientas de informe de errores.
Fuente: CyberSecurityNews