17/11/2009
En el complejo universo de la seguridad informática, existe un constante juego del gato y el ratón entre los defensores de sistemas y aquellos que buscan vulnerarlos. Uno de los tesoros más codiciados dentro de un sistema Windows son las credenciales de usuario, las cuales residen en la memoria de un proceso crítico llamado LSASS. Para proteger este tesoro, Microsoft implementó una formidable barrera conocida como LSA Protection. Sin embargo, toda fortaleza tiene sus puntos débiles. En este artículo, exploraremos en profundidad cómo herramientas como el legendario Mimikatz logran eludir esta protección para acceder a los secretos que guarda LSASS, un conocimiento fundamental tanto para profesionales de la ciberseguridad ofensiva como defensiva.

¿Qué es LSASS y la Protección PPL?
Antes de sumergirnos en las técnicas de bypass, es crucial entender a nuestros protagonistas. LSASS, o Local Security Authority Subsystem Service, es el corazón de la seguridad en Windows. Este proceso es responsable de gestionar la política de seguridad del sistema, manejar los inicios de sesión de los usuarios, crear tokens de acceso y, lo más importante para nuestro tema, almacenar en su memoria las credenciales (en diversos formatos, como hashes NTLM o incluso contraseñas en texto plano bajo ciertas configuraciones) de los usuarios que han iniciado sesión.
Debido a su naturaleza crítica, LSASS se convirtió en el objetivo principal de los atacantes que buscaban escalar privilegios o moverse lateralmente en una red. Herramientas como Mimikatz hicieron trivial el acto de "dumpear" o volcar la memoria de LSASS para extraer estas credenciales. Como respuesta, a partir de Windows 8.1, Microsoft introdujo la LSA Protection.

Esta protección se basa en una tecnología llamada Protected Process Light (PPL). Cuando LSA Protection está habilitada, el proceso LSASS se marca como un PPL. Esto impone una restricción a nivel de sistema operativo que impide que procesos no protegidos (o con un nivel de protección inferior) puedan interactuar con él, ni siquiera para leer su memoria. Esta medida es tan estricta que incluso un usuario con privilegios de Administrador o SYSTEM no puede acceder directamente a LSASS, frustrando así los intentos convencionales de herramientas de credential dumping.
El Intento Fallido: Mimikatz Contra un LSASS Protegido
Para ilustrar la efectividad de PPL, veamos qué sucede cuando un usuario intenta ejecutar Mimikatz en un sistema con LSA Protection activa. Típicamente, el atacante o pentester abriría una consola con privilegios elevados y ejecutaría los siguientes comandos:
mimikatz # privilege::debug mimikatz # sekurlsa::logonpasswordsEn un sistema sin protección, esto mostraría una lista de las credenciales almacenadas. Sin embargo, con PPL habilitado, el resultado es una rotunda negativa, generalmente acompañada de un mensaje de error como:
ERROR kuhl_m_sekurlsa_acquireLSA ; LogonPasswords (0x00000005)El código de error 0x00000005 se traduce como "Acceso Denegado". Es el sistema operativo haciendo su trabajo, bloqueando el intento de Mimikatz de abrir un handle (un puntero de acceso) al proceso LSASS. Aquí es donde comienza el verdadero desafío y donde las técnicas más avanzadas entran en juego.

El Método Kernel: Usando un Driver para Desarmar la Protección
La clave para entender el bypass más común y efectivo es saber que la protección PPL es una restricción impuesta en el "user-mode" (modo usuario), la capa donde se ejecutan la mayoría de las aplicaciones. Sin embargo, el núcleo del sistema operativo, el kernel, opera a un nivel superior de privilegio y no está sujeto a estas restricciones. Si un atacante puede ejecutar código en el kernel, puede modificar las estructuras de datos internas del sistema operativo que definen si un proceso está protegido o no.
Mimikatz viene preparado para esta eventualidad. Incluye un driver legítimamente firmado llamado mimidrv.sys. Este driver actúa como un agente en el kernel, permitiendo que la aplicación Mimikatz (en modo usuario) le envíe comandos para realizar acciones privilegiadas.
Paso a Paso para Deshabilitar PPL con Mimidrv.sys
- Obtener Privilegios: Es necesario ejecutar Mimikatz desde una consola con privilegios de Administrador.
- Cargar el Driver: El primer paso dentro de Mimikatz es cargar su driver. El archivo
mimidrv.sysdebe estar en el mismo directorio quemimikatz.exe.mimikatz # !+Este comando instala y carga el servicio del driver, dándole a Mimikatz su "puerta de entrada" al kernel.
- Remover la Protección de LSASS: Una vez que el driver está activo, se puede enviar un comando específico para que busque el proceso LSASS y elimine su bandera de protección PPL a nivel de kernel.
mimikatz # !processprotect /process:lsass.exe /removeEl driver localizará la estructura EPROCESS correspondiente a LSASS en la memoria del kernel y pondrá a cero los bits que definen su nivel de protección. Para el sistema operativo, LSASS se convierte instantáneamente en un proceso normal y desprotegido.
- Extraer las Credenciales: Con la protección eliminada, el comando que antes fallaba ahora funcionará a la perfección.
mimikatz # sekurlsa::logonpasswords¡Éxito! Las credenciales ahora son accesibles.
Este método es extremadamente poderoso porque ataca la raíz misma del mecanismo de protección. Otros métodos, como el conocido Bring Your Own Vulnerable Driver (BYOVD), utilizan este mismo principio, aprovechando drivers de terceros (a menudo de hardware legítimo como MSI Afterburner) que exponen funciones de lectura/escritura de memoria del kernel para lograr el mismo objetivo.

Tabla Comparativa de Métodos de Bypass
Existen varias formas de abordar la protección PPL, cada una con sus propias características. Aquí tienes una comparación simplificada:
| Método | Requisito Principal | Ventaja | Desventaja |
|---|---|---|---|
| Modificación de Registro | Privilegios de Admin, Reboot | Simple y directo | Requiere reinicio, lo que elimina las credenciales en memoria. Muy ruidoso. |
| Driver de Mimikatz (mimidrv.sys) | Privilegios de Admin | Efectivo, no requiere reinicio, integrado en la herramienta. | Cargar un driver es una actividad sospechosa y detectada por soluciones EDR. |
| BYOVD (ej. PPLKiller) | Privilegios de Admin | Usa un driver legítimo y firmado, lo que puede eludir algunas defensas básicas. | La explotación de drivers vulnerables es una técnica conocida y monitorizada. |
| DLL Hijacking (ej. PPLdump) | Privilegios de Admin, explotación de vulnerabilidad específica | Opera en modo usuario, más sigiloso que cargar un driver. | Depende de vulnerabilidades que Microsoft parchea activamente. |
¿Cómo Habilitar y Verificar la Protección LSA?
Para los defensores, es vital asegurarse de que esta protección esté activa. Hay dos formas principales de hacerlo:
1. A través del Editor de Registro
- Abre el Editor de Registro (
regedit.exe). - Navega a la clave:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa. - Busca un valor DWORD (32-bit) llamado
RunAsPPL. Si no existe, créalo. - Establece su valor en
1. - Reinicia el equipo para que los cambios surtan efecto.
2. A través de la Línea de Comandos
Puedes verificar el estado actual con este comando:
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v RunAsPPLSi el comando devuelve que el valor no existe o está en 0, la protección está deshabilitada. Si devuelve 0x1, está habilitada.
Preguntas Frecuentes (FAQ)
¿Es ilegal realizar estas acciones?
El uso de estas técnicas es legal en entornos controlados para fines educativos, investigación de seguridad o pruebas de penetración autorizadas (ethical hacking). Utilizarlas en sistemas para los que no tienes permiso explícito es ilegal y puede tener graves consecuencias legales.

¿Mi antivirus detectará Mimikatz?
Sí, casi con total seguridad. Mimikatz es la herramienta de post-explotación más famosa del mundo. Cualquier solución antivirus o EDR (Endpoint Detection and Response) moderna la detectará y bloqueará de inmediato. Los atacantes reales utilizan versiones ofuscadas o técnicas alternativas para evitar la detección.
¿Significa esto que la protección PPL es inútil?
¡Absolutamente no! La protección PPL es un excelente ejemplo de "defensa en profundidad". Eleva significativamente el listón para un atacante. Les obliga a pasar de un simple comando a tener que ejecutar código a nivel de kernel, una acción mucho más compleja, ruidosa y fácil de detectar para las herramientas de seguridad avanzadas. Obliga al adversario a mostrar sus cartas más poderosas.

¿Qué es Credential Guard y cómo se compara?
Credential Guard es una capa de protección aún más fuerte, disponible en ediciones Enterprise de Windows. Utiliza seguridad basada en virtualización (VBS) para aislar completamente el proceso LSASS en un contenedor de memoria al que ni siquiera el kernel del sistema operativo principal puede acceder. Es la evolución de PPL y ofrece una protección mucho más robusta contra este tipo de ataques.
Conclusión
Deshabilitar la protección LSA de LSASS es un claro ejemplo de la batalla técnica que se libra en el campo de la ciberseguridad. Mientras que Microsoft construye defensas cada vez más sofisticadas como PPL, la comunidad de seguridad (tanto atacantes como investigadores) encuentra formas creativas de eludirlas. El método del driver de Mimikatz es una demostración clásica de que, en la arquitectura de Windows, quien controla el kernel, lo controla todo. Comprender estos mecanismos no solo es fascinante desde un punto de vista técnico, sino que es esencial para construir defensas más resilientes y para saber qué buscar cuando se cazan amenazas avanzadas en una red.
Si quieres conocer otros artículos parecidos a Bypass a LSA Protection con Mimikatz puedes visitar la categoría Juegos.
