Escalación de Privilegios con DCShadow
Oct 4, 2022
DCShadow es una característica de la herramienta de código abierto mimikatz. En otra publicación del blog, cubrimos cómo los atacantes pueden usar DCShadow para lograr persistencia en un dominio sin ser detectados una vez que han obtenido credenciales de administrador. Pero DCShadow también puede permitir a un atacante elevar sus privilegios.
Contenido relacionado seleccionado:
¿Cómo puede un Administrador de Dominio elevar aún más su acceso? Obteniendo derechos de administrador en otros bosques. Aprovechando el Historial de SID, un atacante puede agregar SIDs administrativos a su cuenta de usuario y obtener derechos de nivel administrador en otros dominios y bosques de confianza. En esta publicación, echaremos un vistazo a cómo funciona esto.
Paso 1. Descubrir Trusts
El primer paso es averiguar qué confianzas existen. Hay varias formas de hacer esto, pero dos que utilizaremos a través de PowerShell son el marco de trabajo PowerSploit y el módulo de PowerShell de Active Directory.
Para cada confianza que encontremos, necesitamos verificar si el filtrado de SID está habilitado. Si lo está, entonces los SID históricos no pueden ser utilizados para acceder al bosque al otro lado de la confianza. Sin embargo, si está deshabilitado, estamos en el juego. A menudo esta opción se deja deshabilitada después de las migraciones para asegurar que los usuarios no pierdan acceso a ningún sistema y datos que necesiten. El siguiente comando de PowerShell descubrirá las confianzas y enumerará sus opciones, incluyendo el filtrado de SID:
Get-NetDomainTrust | ForEach-Object{Get-ADTrust –filter * -server $_.TargetName}
La salida de este comando se proporciona a continuación. Puede ver que hay una confianza al dominio gobias.local donde el filtrado de SID está deshabilitado (SidFilteringQuarantined = False), por lo que podremos usar SIDs históricos para acceder a recursos en ese dominio.
Para saber más sobre el filtrado de SID y las confianzas, lea este post on TechNet.
Paso 2. Elevar privilegios usando SID History
A continuación, necesitamos agregar un SID administrativo a nuestra cuenta de usuario para poder acceder a recursos en el bosque de confianza. DCShadow nos será útil aquí por dos motivos:
- No se puede cambiar de forma nativa el historial de SID a través de aplicaciones como AD Users & Computers.
- DCShadow realizará este cambio sin ser detectado.
Solo necesitamos elegir un SID para agregar a nuestro SID History. Evitaremos usar cualquier SID conocido y usuarios o grupos integrados como Administrator y Domain Admins, ya que hay controles establecidos para permitir que estos SIDs se asignen solo a sus objetos equivalentes en otros dominios. Mediante reconocimiento de dominio, deberíamos poder encontrar un usuario o grupo de dominio al que queremos agregar a nuestro token de acceso para obtener derechos elevados.
Agreguemos el grupo AD-Admins del bosque gobias.local a nuestra cuenta de usuario utilizando el siguiente comando DCShadow:
lsadump::dcshadow /object:"CN=Jeff Warren,OU=Administrators,OU=Users,OU=JEFFLAB,DC=JEFFLAB,DC=local" /attribute:sidhistory /value:S-1-5-21-1722627474-2472677011-3296483304-1113
Para ver nuestro valor de SIDhistory recién agregado, podemos ejecutar el siguiente script:
Get-ADUser Jeff -Properties sIDHistory
Podemos confirmar que todo funcionó iniciando sesión de nuevo como este usuario y ejecutando un comando whoami /groups para ver la nueva membresía de grupo. Nuestro usuario solo está obteniendo este grupo en su token a través del historial de SID.
Paso 3. Utilice los Privilegios Elevados
Una vez que tenemos derechos de acceso, hay un sinfín de maneras de extraer datos de los bosques de confianza. Una de las más eficientes es usar DCSync ya que no requiere que se ejecute ningún código en el controlador de dominio objetivo.
Antes de que agregáramos el historial de SID a nuestra cuenta, intentar ejecutar DCSync contra el bosque objetivo resultaría en el acceso siendo denegado:
Pero después de agregar el SID histórico a nuestra cuenta de usuario, podemos ejecutar el mismo comando con éxito y obtener el hash de contraseña de cualquier cuenta, incluyendo la cuenta de servicio Kerberos krbtgt extremadamente valiosa.
Detección y respuesta de DCShadow
El método principal utilizado para detectar DCShadow es encontrar patrones de comportamiento que coincidan con el registro y desregistro de controladores de dominio falsos y monitorear el tráfico de replicación que estos generan. De manera predeterminada, Netwrix StealthDEFEND monitorea activamente toda la replicación de dominios y eventos de cambio en busca de señales de DCShadow.
Netwrix Threat Prevention las políticas de bloqueo se pueden utilizar para prevenir que la cuenta o estación de trabajo perpetradora ejecute replicación adicional, autenticación y otras actividades, lo cual puede ralentizar al atacante y dar a los respondedores más tiempo para eliminar completamente la amenaza.
Compartir en
Aprende más
Acerca del autor
Jeff Warren
Director de Producto
Jeff Warren supervisa el portafolio de productos de Netwrix, aportando más de una década de experiencia en gestión y desarrollo de productos enfocados en la seguridad. Antes de unirse a Netwrix, Jeff lideró la organización de productos en Stealthbits Technologies, donde utilizó su experiencia como ingeniero de software para desarrollar soluciones de seguridad innovadoras y escalables para empresas. Con un enfoque práctico y un talento para resolver desafíos de seguridad complejos, Jeff se centra en construir soluciones prácticas que funcionen. Tiene un BS en Sistemas de Información de la Universidad de Delaware.
Aprende más sobre este tema
Usando Windows Defender Credential Guard para proteger credenciales Privileged
¿Qué es Microsoft LAPS: Cómo puede mejorar su seguridad?
Pasos para controlar los derechos de administrador local
5 consejos principales para la solución de contraseñas de administrador local (LAPS)
Principales soluciones de Privileged Access Management (PAM)