Ir ao contido

Protección Avanzada de Credenciais: Credential Guard e Mimikatz

En contornas de Active Directory, o roubo de credenciais é unha das ameazas máis graves, xa que permite a un atacante moverse lateralmente pola rede e escalar privilexios. Ferramentas como Mimikatz fixeron estas técnicas accesibles. Para combatelo, Microsoft desenvolveu solucións robustas como Credential Guard e Remote Credential Guard.

1. A Ameaza: Que é Mimikatz?

Definición e Obxectivo: Mimikatz é unha potente ferramenta de post-explotación creada polo investigador de seguridade Benjamin Delpy. O seu obxectivo principal é extraer credenciais (contrasinais en texto plano, hashes, tíckets Kerberos) directamente da memoria dun sistema Windows, principalmente do proceso lsass.exe (Local Security Authority Subsystem Service).

Aínda que é fundamental para auditores de seguridade, é igualmente perigosa en mans de atacantes.

Técnicas Principais: A súa función máis coñecida é sekurlsa::logonpasswords, que permite a un atacante con privilexios de administrador no equipo local obter as credenciais de todos os usuarios que iniciaron sesión. Con estas credenciais, pode realizar ataques devastadores como Pass-the-Hash (usar o hash NTLM para autenticarse noutros sistemas) ou Pass-the-Ticket (usar un tícket Kerberos roubado).

2. A Defensa: Credential Guard e Remote Credential Guard

Ambas son características de seguridade deseñadas especificamente para neutralizar o roubo de credenciais.

Credential Guard: Protección Local

  • Para que serve? Protexe as credenciais (hashes de contrasinal e tíckets de Kerberos) que están almacenadas na memoria do ordenador local.
  • Como funciona? Usa a Seguridade Baseada en Virtualización (VBS) para crear unha "caixa forte" virtual e illada. O proceso que xestiona as credenciais (LSASS) divídese en dous: a parte principal segue sendo visible para o sistema operativo, pero a parte que contén os segredos (LsaIso.exe) execútase nesta contorna protexida, inaccesible incluso para un administrador ou o propio kernel do sistema.
  • Obxectivo: Mitigar ataques como Pass-the-Hash e Pass-the-Ticket ao facer imposible que ferramentas como Mimikatz poidan ler os segredos da memoria de LSASS.

Remote Credential Guard: Protección en Sesións Remotas

  • Para que serve? Protexe as credenciais durante as sesións de Escritorio Remoto (RDP).
  • Como funciona? Evita que as túas credenciais viaxen a través da rede e se almacenen na memoria do servidor remoto ao que te conectas. A autenticación xestiónase dende o teu equipo local mediante solicitudes de Kerberos, proporcionando unha experiencia de Single Sign-On (SSO) sen expoñer os teus segredos no destino.
  • Obxectivo: Impedir que un atacante roube as túas credenciais se o servidor ao que te conectas por RDP está comprometido.

3. Mimikatz en Acción: Exemplos Prácticos

Para executar os seguintes comandos, un atacante primeiro necesitaría privilexios de administrador e logo executaría o comando privilege::debug en Mimikatz para poder interactuar co proceso LSASS.

Escenario 1: Sen Credential Guard Activado (Ataque Exitoso)

O atacante gañou acceso a unha estación de traballo e executa Mimikatz para roubar as credenciais dos administradores que iniciaron sesión nela.

Comando:

mimikatz # sekurlsa::logonpasswords

Resultado (Exemplo): Mimikatz le a memoria de LSASS sen restricións e mostra os segredos.

Authentication Id : 0 ; 99181
Session           : Interactive from 1
User Name         : meuadmin
Domain            : O_MEU_DOMINIO
Logon Server      : DC01
Logon Time        : 13/11/2025 10:30:15
SID               : S-1-5-21-123456-789012-1111-500
	 [msv1_0]
	  msv:
	   [00000003] Primary
	   * Username : meuadmin
	   * Domain   : O_MEU_DOMINIO
	   * NTLM     : 8846f7eaee8fb117ad06bdd830b7586c   <-- ATAQUE EXITOSO! Hash NTLM roubado.
	   * SHA1     : 92c8d2c67624c810a5611844b68a183510522122
	 [kerberos]
	  kerberos:
	   * Username : meuadmin
	   * Domain   : O_MEU_DOMINIO
	   * Password : (null)
Co hash NTLM (8846f7ea...), o atacante pode usar Pass-the-Hash para autenticarse noutros servidores como se fose meuadmin.


Escenario 2: Con Credential Guard Activado (Ataque Fracasado)

O mesmo atacante tenta o mesmo ataque nun equipo protexido con Credential Guard.

Comando:

mimikatz # sekurlsa::logonpasswords

Resultado (Exemplo): Mimikatz aínda pode ver as sesións iniciadas, pero cando intenta ler os segredos, estes xa non están aí.

Authentication Id : 0 ; 102436
Session           : Interactive from 1
User Name         : meuadmin
Domain            : O_MEU_DOMINIO
Logon Server      : DC01
Logon Time        : 13/11/2025 11:00:45
SID               : S-1-5-21-123456-789012-1111-500
	 [msv1_0]
	  msv:
	   [00000003] Primary
	   * Username : meuadmin
	   * Domain   : O_MEU_DOMINIO
	   * NTLM     : *NA* (Credentials delegated to LSAISO)  <-- ATAQUE FRACASADO!
	   * SHA1     : *NA* (Credentials delegated to LSAISO)
	 [kerberos]
	  kerberos:
	   * Username : meuadmin
	   * Domain   : O_MEU_DOMINIO
	   * Password : *NA* (Credentials delegated to LSAISO)
A mensaxe *NA* (Credentials delegated to LSAISO) é a proba de que Credential Guard está funcionando. Mimikatz non pode acceder aos hashes nin aos tíckets porque foron movidos á contorna virtual illada (LsaIso.exe), deixando ao atacante sen nada que roubar.

En conclusión, Credential Guard e Remote Credential Guard son defensas directas e esenciais contra as técnicas de roubo de credenciais, inutilizando de forma efectiva as funcións máis perigosas de ferramentas como Mimikatz.