Hacker hackeó la protección de LSASS en Windows

Hacker hackeó la protección de LSASS en Windows

KeyIso: la llave de la caja fuerte de Microsoft.

image

En julio de 2022, Microsoft realizó cambios en su sistema Protected Process Light (PPL) con el objetivo de eliminar una vulnerabilidad que permitía eludir la protección de LSASS, un proceso crítico que se encarga de almacenar y gestionar las credenciales de usuario en Windows.

A pesar de las medidas de protección, los investigadores continúan encontrando formas de sortear las nuevas barreras. Uno de estos métodos es el uso de bibliotecas vulnerables, más conocido como "Bring Your Own Vulnerable DLL" (BYOVDLL), que permite cargar una versión vulnerable de una biblioteca DLL en el proceso LSASS y así reactivar la vulnerabilidad.

Un especialista de Orange Cyberdefense encontró una forma de evadir los mecanismos de protección de Microsoft y ejecutar código arbitrario en el proceso LSASS. Para un ataque exitoso, el autor se centró en el servicio de Aislamiento de Claves CNG (KeyIso).

El autor decidió comprobar la posibilidad de cargar una versión vulnerable de la biblioteca keyiso.dll en LSASS. Para ello, modificó la configuración del registro e indicó la ruta a la versión vulnerable de la biblioteca. Sin embargo, al intentar iniciar el servicio, el especialista se encontró con un error relacionado con un archivo sin firmar. Es decir, el sistema no pudo encontrar la firma digital de la DLL, lo que impedía la carga de la biblioteca.

En busca de una solución, el autor recurrió a los catálogos de archivos que contienen los hashes criptográficos para la verificación de la autenticidad de archivos en Windows. El investigador instaló el catálogo necesario en una máquina de prueba y confirmó que el sistema reconoció la firma de la biblioteca vulnerable. De este modo, logró cargar la versión vulnerable de keyiso.dll en el proceso protegido LSASS.

Luego, el autor implementó la cadena completa de explotación de vulnerabilidades. Para ello, registró un nuevo proveedor de claves que utilizaba una versión vulnerable de la biblioteca ncryptprov.dll. Después de la registración, el autor pudo confirmar que la versión vulnerable de la DLL se había cargado correctamente en el proceso LSASS utilizando System Informer.

En la parte final de la investigación, el autor pudo ejecutar un exploit que confirmó la ejecución exitosa de código dentro del proceso protegido LSASS. Utilizó el método OutputDebugStringW para mostrar un mensaje de depuración que se visualizó en el depurador, confirmando así que el ataque tuvo éxito: el código arbitrario se ejecutó en el contexto del proceso protegido.

Tu privacidad está muriendo lentamente, pero nosotros podemos salvarla

¡Únete a nosotros!