Ataque y Defensa de la Cadena de Eliminación de Active Directory
Resumen
Este documento fue diseñado para ser un recurso útil e informativo para aquellos que buscan comprender las tácticas, técnicas y procedimientos (TTP) específicos que los atacantes aprovechan para comprometer Active Directory, así como orientación para la mitigación, detección y prevención. También para comprender la cadena de eliminación de Active Directory y la actividad de las tácticas modernas de los adversarios en la post-explotación.
BadSuccessor - Este repositorio contiene herramientas relacionadas con el ataque BadSuccessor, una novedosa técnica de escalada de privilegios en Active Directory que abusa de una vulnerabilidad en una característica introducida en Windows Server 2025.
AD_Miner - AD Miner es una herramienta de auditoría de Active Directory que aprovecha consultas Cypher para procesar datos de la base de datos de grafos #Bloodhound y descubrir debilidades de seguridad.
Certify - Certify es una herramienta en C# para enumerar y abusar de las malas configuraciones en los Servicios de certificados de Active Directory (AD CS).
PSPKIAudit - Kit de herramientas de PowerShell para auditar los Servicios de certificados de Active Directory (AD CS).
PowerView - Marco de trabajo de PowerShell para conciencia situacional
BloodHound - Seis grados de administrador de dominio
Impacket - Impacket es una colección de clases de Python para trabajar con protocolos de red
aclpwn.py - Explotación de ACL de Active Directory con BloodHound
CrackMapExec - Una navaja suiza para el pentesting de redes
ADACLScanner - Una herramienta con GUI o línea de comandos utilizada para crear informes de listas de control de acceso (DACL) y listas de control de acceso del sistema (SACL) en Active Directory
zBang - zBang es una herramienta de evaluación de riesgos que detecta posibles amenazas a cuentas privilegiadas
SafetyKatz - SafetyKatz es una combinación de una versión ligeramente modificada del proyecto Mimikatz de @gentilkiwi y el .NET PE Loader de @subTee.
SharpDump - SharpDump es un puerto en C# de la funcionalidad Out-Minidump.ps1 de PowerSploit.
PowerUpSQL - Un kit de herramientas de PowerShell para atacar SQL Server
Rubeus - Rubeus es un conjunto de herramientas en C# para la interacción y abuso de Kerberos a bajo nivel
ADRecon - Una herramienta que recopila información sobre Active Directory y genera un informe que puede proporcionar una visión holística del estado actual del entorno de AD objetivo
Mimikatz - Utilidad para extraer contraseñas en texto plano, hashes, códigos PIN y tickets de Kerberos de la memoria, y también realizar pass-the-hash, pass-the-ticket o construir Golden tickets
Grouper - Un script de PowerShell para ayudar a encontrar configuraciones vulnerables en la directiva de grupo de AD.
Powermad - Herramientas de PowerShell para explotar MachineAccountQuota y DNS
RACE - RACE es un módulo de PowerShell para ejecutar ataques de ACL contra objetivos Windows.
DomainPasswordSpray - DomainPasswordSpray es una herramienta escrita en PowerShell para realizar un ataque de rociado de contraseñas (password spray) contra los usuarios de un dominio.
MailSniper - MailSniper es una herramienta de pruebas de penetración para buscar en el correo electrónico de un entorno de Microsoft Exchange términos específicos (contraseñas, información privilegiada, información de arquitectura de red, etc.)
LAPSToolkit - Herramienta para auditar y atacar entornos LAPS.
CredDefense - Defensa de credenciales y Red Teaming para entornos Windows
ldapdomaindump - Volcador de información de Active Directory mediante LDAP
SpoolSample - Herramienta PoC para obligar a los hosts de Windows a autenticarse en otras máquinas mediante la interfaz RPC MS-RPRN
adconnectdump - Extracción de contraseñas de Azure AD Connect
o365recon - Script para recuperar información a través de O365 con una credencial válida
ROADtools - ROADtools es un framework para interactuar con Azure AD. I
Stormspotter - Stormspotter crea un “gráfico de ataque” de los recursos en una suscripción de Azure.
AADInternals - AADInternals es un módulo de PowerShell para administrar Azure AD y Office 365
MicroBurst: un kit de herramientas de PowerShell para atacar Azure - MicroBurst incluye funciones y scripts que soportan el descubrimiento de servicios de Azure, la auditoría de configuraciones débiles y acciones posteriores a la explotación, como el volcado de credenciales.
sam-the-admin - Explotando CVE-2021-42278 y CVE-2021-42287 para suplantar a DA desde un usuario de dominio estándar
Invoke-TrimarcADChecks - El script de PowerShell Invoke-TrimarcADChecks.ps1 está diseñado para recopilar datos de un bosque de AD de un solo dominio para realizar una evaluación de seguridad de Active Directory (ADSA).
Create-Tiers in AD - Título del proyecto: implementación automática de niveles de Active Directory en cualquier entorno
SAMRi10 - Endurecimiento del acceso remoto a SAM en Windows 10/Server 2016
Net Cease - Endurecimiento de la enumeración de sesiones de Net
PingCastle - Una herramienta diseñada para evaluar rápidamente el nivel de seguridad de Active Directory con una metodología basada en la evaluación de riesgos y un marco de madurez
Reset the krbtgt account password/keys - Este script le permitirá restablecer la contraseña de la cuenta krbtgt y las claves relacionadas minimizando la probabilidad de que la operación cause problemas de autenticación Kerberos
RiskySPN - RiskySPNs es una colección de scripts de PowerShell centrados en la detección y el abuso de cuentas asociadas a SPN (nombre de principal de servicio).
Deploy-Deception - Un módulo de PowerShell para implementar objetos señuelo de Active Directory
SpoolerScanner - Comprueba si MS-RPRN está disponible de forma remota con powershell/c#
dcept - Una herramienta para implementar y detectar el uso de honeytokens de Active Directory
LogonTracer - Investiga los inicios de sesión maliciosos en Windows mediante la visualización y el análisis del registro de eventos de Windows
DCSYNCMonitor - Supervisa los ataques DCSYNC y DCSHADOW y crea eventos de Windows personalizados para estos eventos
Sigma - Formato de firma genérico para sistemas SIEM
Sysmon - System Monitor (Sysmon) es un servicio del sistema y un controlador de dispositivo de Windows que, una vez instalado en un sistema, permanece residente tras los reinicios para supervisar y registrar la actividad del sistema en el registro de eventos de Windows.
SysmonSearch - Investiga actividad sospechosa visualizando el registro de eventos de Sysmon
ClrGuard - ClrGuard es un proyecto de prueba de concepto para explorar la instrumentación de Common Language Runtime (CLR) con fines de seguridad.
Get-InjectedThread - Get-InjectedThread examina cada subproceso en ejecución para determinar si es el resultado de una inyección en memoria.
SilkETW - SilkETW y SilkService son envoltorios flexibles de C# para ETW, diseñados para abstraer las complejidades de ETW y ofrecer a los usuarios una interfaz sencilla para realizar investigación e introspección.
WatchAD - Sistema de detección de intrusiones para la seguridad de AD
Sparrow - Sparrow.ps1 fue creado por el equipo de análisis forense en la nube de CISA para ayudar a detectar posibles cuentas y aplicaciones comprometidas en el entorno Azure/m365.
DFIR-O365RC - El módulo de PowerShell DFIR-O365RC es un conjunto de funciones que permiten al analista DFIR recopilar registros relevantes para las investigaciones de compromiso de correo electrónico empresarial de Office 365.
ADTimeline - El script ADTimeline genera una línea de tiempo basada en los metadatos de replicación de Active Directory de los objetos considerados de interés.
Locksmith - Una pequeña herramienta diseñada para encontrar y corregir errores de configuración comunes en los Servicios de certificados de Active Directory.
FalconHound - FalconHound es una multiherramienta de equipo azul. Permite utilizar y potenciar el poder de BloodHound de forma más automatizada. Está diseñado para utilizarse junto con un SIEM u otra herramienta de agregación de registros.
PlumHound - BloodHound para equipos azules y púrpura.
Configuración de Sysmon
sysmon-modular - Un repositorio de configuración de Sysmon para que cualquiera pueda personalizarlo
sysmon-dfir - Fuentes, configuración y cómo detectar actividades maliciosas utilizando Microsoft Sysmon.
sysmon-config - Plantilla de archivo de configuración de Sysmon con seguimiento de eventos de alta calidad por defecto
Comprobaciones de seguridad de Active Directory (por Sean Metcalf - @Pyrotek3)
Recomendaciones generales
Administre las contraseñas de administrador local (LAPS).
Implemente el modo de administrador restringido de RDP (según sea necesario).
Elimine los sistemas operativos no compatibles de la red.
Supervise las tareas programadas en sistemas sensibles (DC, etc.).
Asegúrese de que las contraseñas de administración OOB (DSRM) se cambien con regularidad y se almacenen de forma segura.
Utilice SMB v2/v3+
La contraseña predeterminada del administrador de dominio y de KRBTGT debe cambiarse cada año y cuando un administrador de AD abandone la organización.
Elimine los vínculos de confianza que ya no sean necesarios y habilite el filtrado de SID cuando corresponda.
Todas las autenticaciones de dominio deben configurarse (cuando sea posible) en: "Enviar solo respuesta NTLMv2; rechazar LM y NTLM".
Bloquee el acceso a Internet para los DC, los servidores y todos los sistemas de administración.
Proteger las credenciales de administrador
No incluya cuentas de "usuario" ni de equipo en los grupos de administradores.
Asegúrese de que todas las cuentas de administrador sean "sensibles y no se puedan delegar".
Agregue las cuentas de administrador al grupo "Usuarios protegidos" (requiere controladores de dominio con Windows Server 2012 R2, DFL 2012R2 para la protección del dominio).
Deshabilite todas las cuentas de administrador inactivas y elimínelas de los grupos privilegiados.
Proteger las credenciales de administrador de AD
Limite la pertenencia a los grupos de administración de AD (DA, EA, Administradores del esquema, etc.) y utilice únicamente grupos de delegación personalizados.
Administración "por niveles" para mitigar el impacto del robo de credenciales.
Asegúrese de que los administradores solo inicien sesión en estaciones de trabajo y servidores de administración aprobados.
Aproveche la pertenencia temporal a grupos basada en tiempo para todas las cuentas de administrador.
Proteger las credenciales de cuentas de servicio
Limítelas a sistemas del mismo nivel de seguridad.
Aproveche las "cuentas de servicio administradas (de grupo)" (o contraseñas de más de 20 caracteres) para mitigar el robo de credenciales (kerberoast).
Implemente FGPP (DFL =>2008) para aumentar los requisitos de contraseña para las cuentas de servicio y los administradores.
Restricciones de inicio de sesión – impida el inicio de sesión interactivo y limite la capacidad de inicio de sesión a equipos específicos.
Deshabilite las cuentas de servicio inactivas y elimínelas de los grupos privilegiados.
Proteger los recursos
Segmente la red para proteger los sistemas de administración y los sistemas críticos.
Implemente un IDS para supervisar la red corporativa interna.
Dispositivos de red y administración OOB en una red separada.
Proteger los controladores de dominio
Ejecute únicamente software y servicios que den soporte a AD.
Grupos (y usuarios) mínimos con derechos de administración/inicio de sesión en DC.
Asegúrese de aplicar los parches antes de ejecutar DCPromo (especialmente MS14-068 y otros parches críticos).
Valide las tareas programadas y los scripts.
Proteger estaciones de trabajo (y servidores)
Aplique parches con rapidez, especialmente las vulnerabilidades de escalada de privilegios.
Implemente el parche de seguridad retroportado (KB2871997).
Establezca la clave de registro Wdigest en 0 (KB2871997/Windows 8.1/2012R2+): HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersWdigest
Implemente listas blancas en las estaciones de trabajo (Microsoft AppLocker) para bloquear la ejecución de código en las carpetas de usuario – directorio de inicio y ruta del perfil.
Implemente tecnología de sandboxing de aplicaciones en las estaciones de trabajo (EMET) para mitigar las explotaciones de memoria de aplicaciones (0-days).
Registro
Habilite la auditoría mejorada
"Auditoría: forzar la configuración de subcategoría de la directiva de auditoría (Windows Vista o posterior) para que anule la configuración de categoría de la directiva de auditoría"
Habilite el registro de módulos de PowerShell ("*") y reenvíe los registros al servidor de registros central (WEF u otro método).
Habilite el registro de procesos de CMD y su mejora (KB3004375) y reenvíe los registros al servidor de registros central.
SIEM o equivalente para centralizar la mayor cantidad posible de datos de registro.
Sistema de análisis de comportamiento de usuarios para un mejor conocimiento de la actividad de los usuarios (como Microsoft ATA).
Comprobaciones de los profesionales de seguridad
Identifique quién tiene derechos de administrador de AD (dominio/bosque).
Identifique quién puede iniciar sesión en los controladores de dominio (y los derechos de administrador del entorno virtual que aloja los DC virtuales).
Examine los dominios de Active Directory, las UO, AdminSDHolder y los GPO en busca de permisos personalizados inapropiados.
Asegúrese de que los administradores de AD (también conocidos como administradores de dominio) protejan sus credenciales no iniciando sesión en sistemas no confiables (estaciones de trabajo).
Limite los derechos de las cuentas de servicio que actualmente son DA (o equivalentes).
Actualizaciones de seguridad importantes
CVE
Título
Descripción
Enlace
CVE-2020-1472
Vulnerabilidad de elevación de privilegios en Netlogon
Existe una vulnerabilidad de elevación de privilegios cuando un atacante establece una conexión vulnerable de canal seguro de Netlogon con un controlador de dominio mediante el protocolo remoto Netlogon (MS-NRPC). Un atacante que explotara con éxito la vulnerabilidad podría ejecutar una aplicación especialmente diseñada en un dispositivo de la red.
Existe una vulnerabilidad de manipulación en Microsoft Windows cuando un atacante de intermediario (man-in-the-middle) consigue eludir la protección MIC (Message Integrity Check) de NTLM, también conocida como 'Vulnerabilidad de manipulación de NTLM en Windows'.
Vulnerabilidad de elevación de privilegios en Active Directory
Existe una vulnerabilidad de elevación de privilegios en los vínculos de confianza de bosques de Active Directory debido a una configuración predeterminada que permite a un atacante del bosque que confía solicitar la delegación de un TGT para una identidad del bosque de confianza, también conocida como 'Vulnerabilidad de elevación de privilegios en Active Directory'.
Vulnerabilidad de ejecución remota de código en Servicios de Escritorio remoto
Existe una vulnerabilidad de ejecución remota de código en los Servicios de Escritorio remoto, anteriormente conocidos como Terminal Services, cuando un atacante no autenticado se conecta al sistema de destino mediante RDP y envía solicitudes especialmente diseñadas, también conocida como 'Vulnerabilidad de ejecución remota de código en Servicios de Escritorio remoto'.
Vulnerabilidad de elevación de privilegios en Microsoft Exchange Server
Existe una vulnerabilidad de elevación de privilegios en Microsoft Exchange Server, también conocida como "Vulnerabilidad de elevación de privilegios en Microsoft Exchange Server". Esto afecta a Microsoft Exchange Server.
Detección
Ataque
ID de evento
Enumeración de cuentas y grupos
4798: se enumeró la pertenencia a un grupo local de un usuario 4799: se enumeró la pertenencia a un grupo local habilitado para seguridad
AdminSDHolder
4780: se estableció la ACL en las cuentas que son miembros de grupos de administradores
Kekeo
4624: inicio de sesión de cuenta 4672: inicio de sesión de administrador 4768: solicitud de TGS de Kerberos
Vale de plata
4624: inicio de sesión de cuenta 4634: cierre de sesión de cuenta 4672: inicio de sesión de administrador
Vale de oro
4624: inicio de sesión de cuenta 4672: inicio de sesión de administrador
PowerShell
4103: registro de bloques de script 400: ciclo de vida del motor 403: ciclo de vida del motor 4103: registro de módulos 600: ciclo de vida del proveedor
DCShadow
4742: se cambió una cuenta de equipo 5137: se creó un objeto de servicio de directorio 5141: se eliminó un objeto de servicio de directorio 4929: se eliminó un contexto de nomenclatura de origen de réplica de Active Directory
Skeleton Keys
4673: se llamó a un servicio privilegiado 4611: se registró un proceso de inicio de sesión de confianza con la autoridad de seguridad local 4688: se creó un nuevo proceso 4689: un nuevo proceso ha finalizado
PYKEK MS14-068
4672: inicio de sesión de administrador 4624: inicio de sesión de cuenta 4768: solicitud de TGS de Kerberos
Kerberoasting
4769: se solicitó un vale de Kerberos
S4U2Proxy
4769: se solicitó un vale de Kerberos
Movimiento lateral
4688: se creó un nuevo proceso 4689: un proceso ha finalizado 4624: una cuenta inició sesión correctamente 4625: una cuenta no pudo iniciar sesión
DNSAdmin
770: se ha cargado la DLL del complemento del servidor DNS 541: el ajuste serverlevelplugindll en el ámbito . se ha establecido en <dll path> 150: el servidor DNS no pudo cargar o inicializar la DLL del complemento
DCSync
4662: se realizó una operación en un objeto
Rociado de contraseñas
4625: una cuenta no pudo iniciar sesión 4771: falló la autenticación previa de Kerberos 4648: se intentó un inicio de sesión con credenciales explícitas
En la medida que lo permite la ley, Rahmat Nurfauzi "@infosecn1nja" ha renunciado a todos los derechos de autor y derechos conexos o afines sobre esta obra.
Vulnerabilidad de ejecución remota de código en SMB de Windows
El servidor SMBv1 en Microsoft Windows Vista SP2; Windows Server 2008 SP2 y R2 SP1; Windows 7 SP1; Windows 8.1; Windows Server 2012 Gold y R2; Windows RT 8.1; y Windows 10 Gold, 1511 y 1607; y Windows Server 2016 permite a atacantes remotos ejecutar código arbitrario mediante paquetes especialmente diseñados, también conocida como "Vulnerabilidad de ejecución remota de código en SMB de Windows". Esta vulnerabilidad es diferente de las descritas en CVE-2017-0144, CVE-2017-0145, CVE-2017-0146 y CVE-2017-0148.
Vulnerabilidad de degradación de SAM y LSAD en Windows
Las implementaciones de los protocolos SAM y LSAD en Microsoft Windows Vista SP2, Windows Server 2008 SP2 y R2 SP1, Windows 7 SP1, Windows 8.1, Windows Server 2012 Gold y R2, Windows RT 8.1 y Windows 10 Gold y 1511 no establecen correctamente un canal RPC, lo que permite a atacantes de intermediario (man-in-the-middle) realizar ataques de degradación de protocolo y suplantar a los usuarios modificando el flujo de datos cliente-servidor, también conocida como "Vulnerabilidad de degradación de SAM y LSAD en Windows" o "BADLOCK".
La vulnerabilidad en Kerberos podría permitir la elevación de privilegios (3011780)
El Centro de distribución de claves de Kerberos (KDC) en Microsoft Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 y R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1 y Windows Server 2012 Gold y R2 permite a usuarios de dominio autenticados de forma remota obtener privilegios de administrador de dominio mediante una firma falsificada en un vale, tal y como se explotó activamente en noviembre de 2014, también conocida como "Vulnerabilidad de suma de comprobación de Kerberos".
La vulnerabilidad en las preferencias de directiva de grupo podría permitir la elevación de privilegios
La implementación de la directiva de grupo en Microsoft Windows Vista SP2, Windows Server 2008 SP2 y R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1 y Windows Server 2012 Gold y R2 no gestiona correctamente la distribución de contraseñas, lo que permite a usuarios autenticados de forma remota obtener información confidencial de credenciales y, en consecuencia, obtener privilegios aprovechando el acceso al recurso compartido SYSVOL, tal y como se explotó activamente en mayo de 2014, también conocida como "Vulnerabilidad de elevación de privilegios de contraseñas en preferencias de directiva de grupo".