Tipos de "hashes" en Microsoft Windows
En Microsoft Windows, os contrasinais nunca se almacenan en texto plano. No seu lugar, o sistema operativo xera e almacena derivados criptográficos, comunmente chamados "hashes". O lugar e o tipo de hash almacenado dependen de se o equipo é unha estación de traballo independente (ou servidor membro) ou un Controlador de Dominio.
1. O Almacén de Credenciais en Clientes Windows (10, 11, etc.): O SAM
Nos equipos que non son Controladores de Dominio, como estacións de traballo e servidores membro, os hashes das contas de usuario locais gárdanse na base de datos do Security Account Manager (SAM).
O ficheiro SAM está localizado en C:\Windows\System32\config\SAM. Debido a que está bloqueado polo sistema operativo mentres está en execución, un atacante con privilexios de administrador debe usar técnicas especiais para acceder a el, como volcar o seu contido dende a memoria (usando ferramentas como Mimikatz) ou extraer unha copia das claves do rexistro SAM e SYSTEM (necesaria para descifrar o SAM).
Hashes Almacenados no SAM
LM Hash (LAN Manager) - Obsoleto
- Descrición: Un formato antigo e moi inseguro que convertía os contrasinais a maiúsculas e os dividía en dúas metades, facilitando enormemente o seu crackeo.
- Estado Actual: Deshabilitado por defecto en todas as versións modernas de Windows (dende Vista). A súa presenza hoxe en día é un sinal dunha grave mala configuración de seguridade.
- Viabilidade de Ataques:
- Ataques de Contrasinal: Moi factible. Pódense crackear en segundos.
- Pass-the-Hash: Irrelevante, xa que os sistemas modernos non o aceptan para a autenticación.
NTLM Hash (NT LAN Manager)
- Descrición: O estándar de facto para as contas locais. Xérase a partir do contrasinal (sensible a maiúsculas/minúsculas) usando o algoritmo MD4. Aínda que é moito máis forte que o LM, a súa falta de "salt" e a velocidade de MD4 fano vulnerable.
- Estado Actual: É o hash principal para todas as contas locais en Windows 10, 11 e servidores membro.
- Viabilidade de Ataques:
- Ataques de Contrasinal: Factible. Contrasinais débiles ou moderados poden ser crackeados con hardware moderno.
- Pass-the-Hash: Totalmente factible. Un atacante que extrae o hash NTLM do administrador local pode usalo para autenticarse noutros equipos da rede onde ese administrador local teña os mesmos credenciais.
2. O Almacén de Credenciais en Controladores de Dominio: NTDS.dit
Nun Controlador de Dominio, os hashes das contas de dominio gárdanse na base de datos de Active Directory, localizada no ficheiro C:\Windows\NTDS\ntds.dit. Para extraelos, un atacante necesita privilexios moi elevados (como Administrador do Dominio) para crear unha copia do ntds.dit e da clave SYSTEM usando ferramentas como ntdsutil.
Hashes e Chaves Almacenadas no NTDS.dit
Os Controladores de Dominio almacenan múltiples formatos para asegurar a compatibilidade con diferentes protocolos de autenticación (NTLM e Kerberos).
LM Hash e NTLM Hash
- Descrición: Para manter a compatibilidade con sistemas e aplicacións legadas que usan autenticación NTLM, Active Directory tamén almacena os hashes LM (se non está deshabilitado por GPO) e NTLM para cada usuario do dominio.
- Viabilidade de Ataques: Idéntica á descrita para o SAM. O hash NTLM extraído do
ntds.dité o obxectivo principal para ataques de Pass-the-Hash a escala de dominio.
Kerberos Keys - O Estándar Moderno e Seguro
- Descrición: Para a autenticación Kerberos, Active Directory non só usa un hash, senón que deriva chaves criptográficas do contrasinal. A principal vantaxe é que usan un "salt" (normalmente o nome de usuario e o dominio), o que significa que dous usuarios co mesmo contrasinal terán chaves completamente diferentes. Isto neutraliza os ataques de rainbow tables.
- Tipos de Chaves Almacenadas:
- RC4-HMAC: Unha chave de compatibilidade antiga que, internamente, é idéntica ao hash NTLM.
- AES128 / AES256: As chaves modernas e seguras. Usan o algoritmo AES e son moito máis resistentes a ataques de forza bruta.
- Viabilidade de Ataques:
- Ataques de Contrasinal: Moito máis difícil. O uso de "salt" e algoritmos máis lentos (AES) fai que crackear estas chaves sexa computacionalmente moito máis custoso.
- Pass-the-Hash: Non aplicable directamente. O ataque equivalente en Kerberos é Pass-the-Ticket, que consiste en roubar un tícket de autenticación Kerberos xa emitido, en lugar dun hash estático.
Táboa Resumo Comparativa
| Tipo de Hash/Chave | Onde se Almacena | Ataque de Contrasinal | Pass-the-Hash | Nivel de Seguridade |
|---|---|---|---|---|
| LM Hash | SAM, ntds.dit (obsoleto) |
Moi Factible | Irrelevante | Moi Baixo / Obsoleto |
| NTLM Hash | SAM, ntds.dit |
Factible | Moi Factible | Baixo / Legado |
| Kerberos Keys | ntds.dit (só dominio) |
Moi Difícil | Non (ver Pass-the-Ticket) | Alto / Moderno |