Credential Guard, ¿Qué es? ¿Cómo funciona?

Durante este fin de semana, he estado “trasetando” un poco sobre los temarios que hemos dado en el curso de la III Edición : Curso ciberseguridad Windows con kinomakino , hemos visto en los post anteriores por ejemplo como bypassear amsi , como ejecutar mimikatz , ahora vamos a ver la característica de Credential Guard que tiene también que ver con todo esto , la que , si no nos hemos percatado , viene habilitada por defecto en Win 11, vamos a ello!!

¿Qué es Credential Guard?

Credential Guard es una tecnología para protección de credenciales privadas de usuarios del sistema operativo Windows que se basa totalmente en técnicas de virtualización. Credential Guard viene incluido en este sistema desde la versión Windows 10 y está diseñado de tal manera que puede evitar la obtención de nombres de usuarios y claves almacenadas en el sistema.

El LSASS (Local Security Authority Subsystem Service) es uno de los servicios de almacenamiento de credenciales de Windows más atacados, ya que contiene datos de los protocolos NTLM y Kerberos. En otras palabras, el servicio LSASS contiene justo la información que los hackers maliciosos necesitan para llevar a cabo la escalada de privilegios en un sistema. Ahora bien, a la hora de aprender y aplicar qué es Credential Guard, es pertinente tener en cuenta que existen otros métodos para obtener las credenciales de un usuario de Windows.

Funcionamiento:

Los atacantes a menudo intentan realizar volcados de memoria del proceso LSASS en una máquina comprometida para moverse lateralmente dentro de la red, utilizando herramientas como Mimikatz que puede extraer varias credenciales, incluyendo contraseñas en texto plano, hashes NTLM y tickets Kerberos.

En un ataque Pass-the-Hash (PtH), un atacante puede utilizar un hash NTLM comprometido para autenticarse en un sistema o servicio sin conocer la contraseña real. Esto es posible porque los hashes NTLM provienen de la contraseña del usuario y se utilizan para la autenticación en muchos protocolos.

Credential Guard nació por parte de Microsoft  para  proteger contra este tipo de ataques aislando los hashes NTLM (y los tickets Kerberos) en la memoria del proceso LSASS, protegiendo así contra el compromiso inicial del hash NTLM de un usuario.

Ahora bien, ¿que pasaría si comprometemos un sistema que tiene Credential Guard habilitado e intentamos extraer credenciales de la memoria de proceso de LSASS usando Mimikatz?,

Como observamos en la imagen no podemos extraer el hash NTLM de la memoria LSASS y en su lugar se nos presenta «LSA Isolated Data: NtlmHash”.

Entonces ¿esto a que se debe?

Windows Defender Credential Guard utiliza seguridad basada en virtualización (VBS) para aislar los secretos. VBS utiliza funciones de virtualización de hardware para crear una región segura de memoria separada del sistema operativo normal.

Para entender los retos a los que se enfrentan los atacantes cuando tratan con Credential Guard, puede ser útil pensar en el sistema operativo normal ejecutándose dentro de una máquina virtual (VM) y los procesos seguros ejecutándose dentro de otra VM con un núcleo separado. Estas máquinas virtuales son gestionadas por el «hypervisor».

Aquí presentamos un esquema de cómo funciona dicho Hypervisor

Cuando Credential Guard está activado, un proceso llamado LSAIso (LSA Isolated) se ejecuta dentro de la VM segura. LSASS y LSAIso pueden comunicarse a través de llamadas a procedimientos locales avanzados (ALPC)

Cuando el proceso LSASS tiene que proteger un secreto, puede solicitar a LSAIso que lo cifre. El secreto cifrado se devuelve a LSASS. Idealmente, sólo LSAIso debería ser capaz de descifrar el secreto. Una vez que un hash NTLM está protegido, el proceso LSASS sólo mantiene un secreto aislado (un blob cifrado).

Como se muestra en la imagen anterior, el proceso LSAIso tiene «soporte NTLM». Cuando el proceso LSASS quiere realizar una operación NTLM en el secreto cifrado, puede llamar a varios métodos en el proceso LSAIso para realizar la operación. Vale la pena señalar que LSAIso no tiene acceso a la red. Por lo tanto, aunque LSAIso pueda realizar operaciones NTLM, el proceso LSASS sigue siendo responsable de llevar a cabo cualquier acción que venga antes y después de la operación. Por ejemplo, mientras LSAIso puede calcular un par NTLM Challenge/Response, LSASS es responsable de recibir y enviar el par.

Bien, ya tenemos una breve visión de como funciona realmente Credential Guard, y ahora viene la gran pregunta , ¿Se puede byassear? Si, existen varias técnicas y en próximos post analizaremos algunas formas de bypassarlo.

Nos vemos!

Fuentes:

Microsoft – research.ifcr.dk

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *