<summary><strong>Aprende hacking en AWS de cero a héroe con</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Si quieres ver a tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF**, consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de GitHub de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
Active Directory permite a los administradores de red crear y gestionar dominios, usuarios y objetos dentro de una red. Por ejemplo, un administrador puede crear un grupo de usuarios y otorgarles privilegios de acceso específicos a ciertos directorios en el servidor. A medida que una red crece, Active Directory proporciona una forma de organizar un gran número de usuarios en grupos lógicos y subgrupos, mientras proporciona control de acceso en cada nivel.
La estructura de Active Directory incluye tres niveles principales: 1) dominios, 2) árboles y 3) bosques. Varios objetos (usuarios o dispositivos) que utilizan la misma base de datos pueden agruparse en un solo dominio. Múltiples dominios pueden combinarse en un solo grupo llamado árbol. Múltiples árboles pueden agruparse en una colección llamada bosque. A cada uno de estos niveles se le pueden asignar derechos de acceso y privilegios de comunicación específicos.
3.**Dominio**– Los objetos del directorio están contenidos dentro del dominio. Dentro de un "bosque" puede haber más de un dominio y cada uno tendrá su propia colección de objetos.
4.**Árbol**– Grupo de dominios con la misma raíz. Ejemplo: _dom.local, email.dom.local, www.dom.local_
5.**Bosque**– El bosque es el nivel más alto de la jerarquía de organización y está compuesto por un grupo de árboles. Los árboles están conectados por relaciones de confianza.
Active Directory proporciona varios servicios diferentes, que se engloban bajo el término "Servicios de Dominio de Active Directory" o AD DS. Estos servicios incluyen:
1.**Servicios de Dominio**– almacena datos centralizados y gestiona la comunicación entre usuarios y dominios; incluye autenticación de inicio de sesión y funcionalidad de búsqueda
2.**Servicios de Certificados**– crea, distribuye y gestiona certificados seguros
3.**Servicios de Directorio Ligero**– soporta aplicaciones habilitadas para directorio utilizando el protocolo abierto (LDAP)
4.**Servicios de Federación de Directorios**– proporciona inicio de sesión único (SSO) para autenticar a un usuario en múltiples aplicaciones web en una sola sesión
5.**Gestión de Derechos**– protege la información con derechos de autor previniendo el uso y distribución no autorizados de contenido digital
6.**Servicio DNS**– Utilizado para resolver nombres de dominio.
AD DS está incluido con Windows Server (incluyendo Windows Server 10) y está diseñado para gestionar sistemas cliente. Aunque los sistemas que ejecutan la versión regular de Windows no tienen las características administrativas de AD DS, sí admiten Active Directory. Esto significa que cualquier computadora con Windows puede conectarse a un grupo de trabajo de Windows, siempre que el usuario tenga las credenciales de inicio de sesión correctas.\
Puedes echar un vistazo a [https://wadcoms.github.io/](https://wadcoms.github.io) para tener una vista rápida de qué comandos puedes ejecutar para enumerar/explotar un AD.
* Escanear la red, encontrar máquinas y puertos abiertos e intentar **explotar vulnerabilidades** o **extraer credenciales** de ellas (por ejemplo, [las impresoras podrían ser objetivos muy interesantes](ad-information-in-printers.md).
* Enumerar DNS podría dar información sobre servidores clave en el dominio como web, impresoras, compartidos, vpn, medios, etc.
*`gobuster dns -d domain.local -t 25 -w /opt/Seclist/Discovery/DNS/subdomain-top2000.txt`
* Echa un vistazo a la Metodología de [**Pentesting General**](../../generic-methodologies-and-resources/pentesting-methodology.md) para encontrar más información sobre cómo hacer esto.
* **Verificar acceso nulo e invitado en servicios smb** (esto no funcionará en versiones modernas de Windows):
*`enum4linux -a -u "" -p "" <IP DC> && enum4linux -a -u "guest" -p "" <IP DC>`
* Acceder al host [**abusando del ataque de retransmisión**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)
* Recopilar credenciales **exponiendo** [**servicios UPnP falsos con evil-S**](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)[**SDP**](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856)
* Extraer nombres de usuario/nombres de documentos internos, redes sociales, servicios (principalmente web) dentro de los entornos de dominio y también de los disponibles públicamente.
* Si encuentras los nombres completos de los trabajadores de la empresa, podrías intentar diferentes **convenciones de nombres de usuario de AD** ([**lee esto**](https://activedirectorypro.com/active-directory-user-naming-convention/)). Las convenciones más comunes son: _NombreApellido_, _Nombre.Apellido_, _NomApe_ (3 letras de cada uno), _Nom.Ape_, _NApellido_, _N.Apellido_, _ApellidoNombre_, _Apellido.Nombre_, _ApellidoN_, _Apellido.N_, 3 _letras aleatorias y 3 números aleatorios_ (abc123).
* **Enum SMB/LDAP anónimo:** Consulta las páginas de [**pentesting SMB**](../../network-services-pentesting/pentesting-smb.md) y [**pentesting LDAP**](../../network-services-pentesting/pentesting-ldap.md).
* **Enum Kerbrute**: Cuando se solicita un **nombre de usuario no válido**, el servidor responderá con el código de error de **Kerberos** _KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN_, lo que nos permite determinar que el nombre de usuario era inválido. Los **nombres de usuario válidos** provocarán la respuesta del **TGT en un AS-REP** o el error _KRB5KDC_ERR_PREAUTH_REQUIRED_, indicando que el usuario debe realizar una pre-autenticación.
Si encuentras uno de estos servidores en la red, también puedes realizar **enumeración de usuarios contra él**. Por ejemplo, podrías usar la herramienta [**MailSniper**](https://github.com/dafthack/MailSniper):
Puede encontrar listas de nombres de usuario en [**este repositorio de github**](https://github.com/danielmiessler/SecLists/tree/master/Usernames/Names) \*\*\*\* y en este otro ([**statistically-likely-usernames**](https://github.com/insidetrust/statistically-likely-usernames)).
Sin embargo, debería tener el **nombre de las personas que trabajan en la empresa** del paso de reconocimiento que debería haber realizado antes. Con el nombre y apellido, podría usar el script [**namemash.py**](https://gist.github.com/superkojiman/11076951) para generar posibles nombres de usuario válidos.
* [**ASREPRoast**](asreproast.md): Si un usuario **no tiene** el atributo _DONT\_REQ\_PREAUTH_ puede **solicitar un mensaje AS\_REP** para ese usuario que contendrá datos cifrados por una derivación de la contraseña del usuario.
* [**Password Spraying**](password-spraying.md): Intentemos las contraseñas **más comunes** con cada uno de los usuarios descubiertos, tal vez algún usuario esté usando una mala contraseña (¡tenga en cuenta la política de contraseñas!).
* Tenga en cuenta que también puede **rociar servidores OWA** para intentar obtener acceso a los servidores de correo de los usuarios.
Si ha logrado enumerar el directorio activo, tendrá **más correos electrónicos y un mejor entendimiento de la red**. Podría ser capaz de forzar [**ataques de relay NTML**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack) \*\*\*\* para obtener acceso al entorno de AD.
Si puede **acceder a otros PC o recursos compartidos** con el **usuario nulo o invitado** podría **colocar archivos** (como un archivo SCF) que si se accede de alguna manera **desencadenará una autenticación NTML contra usted** para que pueda **robar** el **desafío NTLM** para descifrarlo:
Para esta fase necesita haber **comprometido las credenciales o una sesión de una cuenta de dominio válida.** Si tiene algunas credenciales válidas o una shell como usuario de dominio, **debería recordar que las opciones dadas antes siguen siendo opciones para comprometer a otros usuarios**.
Haber comprometido una cuenta es un **gran paso para comenzar a comprometer todo el dominio**, porque va a poder iniciar la **Enumeración de Active Directory:**
En cuanto a [**ASREPRoast**](asreproast.md), ahora puede encontrar todos los usuarios posiblemente vulnerables, y en cuanto a [**Password Spraying**](password-spraying.md), puede obtener una **lista de todos los nombres de usuario** e intentar la contraseña de la cuenta comprometida, contraseñas vacías y nuevas contraseñas prometedoras.
* Podría usar el [**CMD para realizar un reconocimiento básico**](../basic-cmd-for-pentesters.md#domain-info)
* También puede usar [**powershell para reconocimiento**](../basic-powershell-for-pentesters/) que será más sigiloso
* También puede [**usar powerview**](../basic-powershell-for-pentesters/powerview.md) para extraer información más detallada
* Otra herramienta increíble para reconocimiento en un directorio activo es [**BloodHound**](bloodhound.md). No es **muy sigiloso** (dependiendo de los métodos de recolección que use), pero **si no le importa**, definitivamente debería probarlo. Encuentre dónde los usuarios pueden usar RDP, encuentre caminos a otros grupos, etc.
* **Otras herramientas automatizadas de enumeración de AD son:** [**AD Explorer**](bloodhound.md#ad-explorer)**,** [**ADRecon**](bloodhound.md#adrecon)**,** [**Group3r**](bloodhound.md#group3r)**,** [**PingCastle**](bloodhound.md#pingcastle)**.**
* [**Registros DNS del AD**](ad-dns-records.md) ya que podrían contener información interesante.
* Una **herramienta con GUI** que puede usar para enumerar el directorio es **AdExplorer.exe** de **SysInternal** Suite.
* También puede buscar en la base de datos LDAP con **ldapsearch** para buscar credenciales en campos _userPassword_&_unixUserPassword_, o incluso para _Description_. cf. [Password in AD User comment on PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#password-in-ad-user-comment) para otros métodos.
* Si está usando **Linux**, también podría enumerar el dominio usando [**pywerview**](https://github.com/the-useless-one/pywerview).
* También podría intentar herramientas automatizadas como:
Es muy fácil obtener todos los nombres de usuario del dominio desde Windows (`net user /domain`, `Get-DomainUser` o `wmic useraccount get name,sid`). En Linux, puede usar: `GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username` o `enum4linux -a -u "usuario" -p "contraseña" <IP DC>`
> Aunque esta sección de Enumeración parece pequeña, es la parte más importante de todas. Acceda a los enlaces (principalmente el de cmd, powershell, powerview y BloodHound), aprenda cómo enumerar un dominio y practique hasta que se sienta cómodo. Durante una evaluación, este será el momento clave para encontrar su camino a DA o para decidir que nada se puede hacer.
El objetivo de Kerberoasting es cosechar **tickets TGS para servicios que se ejecutan en nombre de cuentas de usuario de dominio**. Parte de estos tickets TGS están **cifrados con claves derivadas de las contraseñas de los usuarios**. Como consecuencia, sus credenciales podrían ser **descifradas sin conexión**.\
Una vez que haya obtenido algunas credenciales, podría verificar si tiene acceso a alguna **máquina**. Para ello, podría usar **CrackMapExec** para intentar conectarse en varios servidores con diferentes protocolos, de acuerdo con sus escaneos de puertos.
Si ha comprometido credenciales o una sesión como un usuario de dominio regular y tiene **acceso** con este usuario a **cualquier máquina en el dominio** debería intentar encontrar la manera de **escalar privilegios localmente y buscar credenciales**. Esto se debe a que solo con privilegios de administrador local podrá **volcar hashes de otros usuarios** en memoria (LSASS) y localmente (SAM).
Hay una página completa en este libro sobre [**escalada de privilegios local en Windows**](../windows-local-privilege-escalation/) y una [**lista de verificación**](../checklist-windows-privilege-escalation.md). Además, no olvide usar [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite).
Es muy **improbable** que encuentre **tickets** en el usuario actual que le **den permiso para acceder** a recursos inesperados, pero podría verificar:
Si has logrado enumerar el directorio activo tendrás **más correos electrónicos y un mejor entendimiento de la red**. Podrías ser capaz de forzar ataques de [**relay NTML**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)**.**
Ahora que tienes algunas credenciales básicas deberías verificar si puedes **encontrar** algún **archivo interesante compartido dentro del AD**. Podrías hacerlo manualmente pero es una tarea muy aburrida y repetitiva (y más si encuentras cientos de documentos que necesitas revisar).
[**Sigue este enlace para aprender sobre herramientas que podrías usar.**](../../network-services-pentesting/pentesting-smb.md#domain-shared-folders-search)
Si puedes **acceder a otras PCs o comparticiones** podrías **colocar archivos** (como un archivo SCF) que si de alguna manera se accede **activará una autenticación NTML contra ti** para que puedas **robar** el **desafío NTLM** para descifrarlo:
**Para las siguientes técnicas un usuario regular de dominio no es suficiente, necesitas algunos privilegios/credenciales especiales para realizar estos ataques.**
**Una vez que tienes el hash de un usuario**, puedes usarlo para **personificarlo**.\
Necesitas usar alguna **herramienta** que **realice** la **autenticación NTLM usando** ese **hash**, **o** podrías crear un nuevo **sessionlogon** e **inyectar** ese **hash** dentro del **LSASS**, así cuando se realice cualquier **autenticación NTLM**, ese **hash será utilizado**. La última opción es lo que hace mimikatz.\
[**Lee esta página para más información.**](../ntlm/#pass-the-hash)
Este ataque tiene como objetivo **usar el hash NTLM del usuario para solicitar tickets de Kerberos**, como una alternativa al común Pass The Hash sobre el protocolo NTLM. Por lo tanto, esto podría ser especialmente **útil en redes donde el protocolo NTLM está deshabilitado** y solo **Kerberos está permitido** como protocolo de autenticación.
Este ataque es similar a Pass the Key, pero en lugar de usar hashes para solicitar un ticket, el **ticket en sí es robado** y utilizado para autenticarse como su propietario.
Si un usuario tiene privilegios para **acceder a instancias de MSSQL**, podría usarlo para **ejecutar comandos** en el host de MSSQL (si se ejecuta como SA), **robar** el **hash** de NetNTLM o incluso realizar un **ataque** de **relay**.\
Además, si una instancia de MSSQL es confiable (enlace de base de datos) por una instancia diferente de MSSQL. Si el usuario tiene privilegios sobre la base de datos confiable, podrá **usar la relación de confianza para ejecutar consultas también en la otra instancia**. Estas confianzas se pueden encadenar y en algún momento el usuario podría encontrar una base de datos mal configurada donde pueda ejecutar comandos.\
**Los enlaces entre bases de datos funcionan incluso a través de confianzas de bosque.**
Si encuentra cualquier objeto de Computadora con el atributo [ADS\_UF\_TRUSTED\_FOR\_DELEGATION](https://msdn.microsoft.com/en-us/library/aa772300\(v=vs.85\).aspx) y tiene privilegios de dominio en la computadora, podrá volcar TGTs de la memoria de todos los usuarios que inicien sesión en la computadora.\
Entonces, si un **Administrador de Dominio inicia sesión en la computadora**, podrá volcar su TGT e impersonarlo usando [Pass the Ticket](pass-the-ticket.md).\
Gracias a la delegación restringida, incluso podría **comprometer automáticamente un Servidor de Impresión** (con suerte será un DC).
Si se permite a un usuario o computadora "Delegación Restringida", podrá **impersonar a cualquier usuario para acceder a algunos servicios en una computadora**.\
Luego, si **compromete el hash** de este usuario/computadora, podrá **impersonar a cualquier usuario** (incluso administradores de dominio) para acceder a algunos servicios.
Es posible obtener ejecución de código con **privilegios elevados en una computadora remota si tiene privilegio de ESCRITURA** en el objeto de AD de esa computadora.
El usuario comprometido podría tener algunos **privilegios interesantes sobre algunos objetos del dominio** que podrían permitirle **moverse** lateralmente/**escalar** privilegios.
Si puede encontrar cualquier **servicio de Cola escuchando** dentro del dominio, puede ser capaz de **abusar** de él para **obtener nuevas credenciales** y **escalar privilegios**.\
[**Más información sobre cómo abusar de los servicios de Cola de Impresión aquí.**](printers-spooler-service-abuse.md)
Si **otros usuarios****acceden** a la máquina **comprometida**, es posible **recopilar credenciales de la memoria** e incluso **inyectar beacons en sus procesos** para impersonarlos.\
**LAPS** le permite **administrar la contraseña del Administrador local** (que es **aleatoria**, única y se **cambia regularmente**) en computadoras unidas al dominio. Estas contraseñas se almacenan centralmente en Active Directory y están restringidas a usuarios autorizados mediante ACLs. Si tiene **suficiente permiso para leer estas contraseñas, podría moverse a otras computadoras**.
Una vez que obtiene privilegios de **Administrador de Dominio** o, mejor aún, de **Administrador de Empresa**, puede **volcar** la **base de datos del dominio**: _ntds.dit_.
El ataque de Silver ticket se basa en **crear un TGS válido para un servicio una vez que se posee el hash NTLM del servicio** (como el **hash de la cuenta de PC**). Por lo tanto, es posible **acceder a ese servicio** forjando un TGS personalizado **como cualquier usuario** (como acceso privilegiado a una computadora).
{% content-ref url="silver-ticket.md" %}
[silver-ticket.md](silver-ticket.md)
{% endcontent-ref %}
### Golden Ticket
Se puede crear un **TGT válido como cualquier usuario****usando el hash NTLM de la cuenta krbtgt de AD**. La ventaja de forjar un TGT en lugar de un TGS es poder **acceder a cualquier servicio** (o máquina) en el dominio como el usuario suplantado.
{% content-ref url="golden-ticket.md" %}
[golden-ticket.md](golden-ticket.md)
{% endcontent-ref %}
### Diamond Ticket
Estos son como golden tickets forjados de manera que **evitan los mecanismos comunes de detección de golden tickets.**
{% content-ref url="diamond-ticket.md" %}
[diamond-ticket.md](diamond-ticket.md)
{% endcontent-ref %}
### **Persistencia de Cuenta con Certificados**
**Tener certificados de una cuenta o poder solicitarlos** es una muy buena manera de poder persistir en la cuenta del usuario (incluso si cambia la contraseña):
La Lista de Control de Acceso (ACL) del objeto **AdminSDHolder** se utiliza como plantilla para **copiar****permisos** a **todos los "grupos protegidos"** en Active Directory y sus miembros. Los grupos protegidos incluyen grupos privilegiados como Administradores de Dominio, Administradores, Administradores de Empresa y Administradores de Esquema, Operadores de Copia de Seguridad y krbtgt.\
Por defecto, la ACL de este grupo se copia dentro de todos los "grupos protegidos". Esto se hace para evitar cambios intencionales o accidentales en estos grupos críticos. Sin embargo, si un atacante **modifica la ACL** del grupo **AdminSDHolder**, por ejemplo, otorgando permisos completos a un usuario regular, este usuario tendrá permisos completos en todos los grupos dentro del grupo protegido (en una hora).\
Y si alguien intenta eliminar a este usuario de los Administradores de Dominio (por ejemplo) en una hora o menos, el usuario volverá al grupo.\
[**Más información sobre el Grupo AdminDSHolder aquí.**](privileged-groups-and-token-privileges.md#adminsdholder-group)
### Credenciales DSRM
Hay una cuenta de **administrador local** dentro de cada **DC**. Teniendo privilegios de administrador en esta máquina, puede usar mimikatz para **volcar el hash del Administrador local**. Luego, modificando un registro para **activar esta contraseña** para que pueda acceder de forma remota a este usuario de Administrador local.
Podría **otorgar** algunos **permisos especiales** a un **usuario** sobre algunos objetos específicos del dominio que permitirán al usuario **escalar privilegios en el futuro**.
Los **descriptores de seguridad** se utilizan para **almacenar** los **permisos** que un **objeto** tiene **sobre** otro **objeto**. Si puede **hacer** un **pequeño cambio** en el **descriptor de seguridad** de un objeto, puede obtener privilegios muy interesantes sobre ese objeto sin necesidad de ser miembro de un grupo privilegiado.
**Modificar LSASS** en memoria para crear una **contraseña maestra** que funcionará para cualquier cuenta en el dominio.
{% content-ref url="skeleton-key.md" %}
[skeleton-key.md](skeleton-key.md)
{% endcontent-ref %}
### SSP Personalizado
[Aprenda qué es un SSP (Proveedor de Soporte de Seguridad) aquí.](../authentication-credentials-uac-and-efs.md#security-support-provider-interface-sspi)\
Puede crear su **propio SSP** para **capturar** en **texto claro** las **credenciales** utilizadas para acceder a la máquina.\\
Registra un **nuevo Controlador de Dominio** en el AD y lo usa para **empujar atributos** (SIDHistory, SPNs...) en objetos específicos **sin** dejar ningún **registro** sobre las **modificaciones**. **Necesita privilegios de DA** y estar dentro del **dominio raíz**.\
Tenga en cuenta que si usa datos incorrectos, aparecerán registros muy feos.
{% content-ref url="dcshadow.md" %}
[dcshadow.md](dcshadow.md)
{% endcontent-ref %}
### Persistencia de LAPS
Anteriormente hemos discutido sobre cómo escalar privilegios si tiene **suficiente permiso para leer contraseñas de LAPS**. Sin embargo, estas contraseñas también se pueden usar para **mantener la persistencia**.\
## Escalada de Privilegios en el Bosque - Confianzas de Dominio
Microsoft considera que el **dominio no es un Límite de Seguridad**, el **Bosque es el Límite de Seguridad**. Esto significa que **si compromete un dominio dentro de un Bosque, podría ser capaz de comprometer todo el Bosque**.
A un alto nivel, una [**confianza de dominio**](http://technet.microsoft.com/en-us/library/cc759554\(v=ws.10\).aspx) establece la capacidad para que **usuarios en un dominio se autentiquen** en recursos o actúen como un [principal de seguridad](https://technet.microsoft.com/en-us/library/cc780957\(v=ws.10\).aspx) **en otro dominio**.
Esencialmente, todo lo que hace una confianza es **vincular los sistemas de autenticación de dos dominios** y permitir que el tráfico de autenticación fluya entre ellos a través de un sistema de referencias.\
Cuando **2 dominios se confían entre sí, intercambian claves**, estas **claves** se **guardarán** en los **DCs** de **cada dominio** (**2 claves por dirección de confianza, última y anterior**) y las claves serán la base de la confianza.
Cuando un **usuario** intenta **acceder** a un **servicio** en el **dominio confiado**, solicitará un **TGT inter-reino** al DC de su dominio. El DC servirá al cliente este **TGT** que estaría **cifrado/firmado** con la **clave inter-reino** (la clave que ambos dominios **intercambiaron**). Luego, el **cliente****accederá** al **DC del otro dominio** y **solicitará** un **TGS** para el servicio usando el **TGT inter-reino**. El **DC** del dominio confiado **verificará** la **clave** utilizada, si está bien, **confiará en todo lo que esté en ese ticket** y servirá el TGS al cliente.
Es importante notar que **una confianza puede ser de 1 vía o de 2 vías**. En las opciones de 2 vías, ambos dominios se confiarán mutuamente, pero en la relación de confianza de **1 vía**, uno de los dominios será el **confiado** y el otro el **confiante**. En el último caso, **solo podrá acceder a recursos dentro del dominio confiante desde el dominio confiado**.
Si el Dominio A confía en el Dominio B, A es el dominio confiante y B es el confiado. Además, en **Dominio A**, esto sería una **confianza saliente**; y en **Dominio B**, esto sería una **confianza entrante**.
**Diferentes relaciones de confianza**
* **Padre-Hijo** – parte del mismo bosque – un dominio hijo mantiene una confianza transitoria bidireccional implícita con su padre. Esta es probablemente el tipo de confianza más común que encontrará.
* **Enlace cruzado** – también conocido como una "confianza de acceso directo" entre dominios hijos para mejorar los tiempos de referencia. Normalmente, las referencias en un bosque complejo tienen que filtrarse hasta la raíz del bosque y luego volver al dominio objetivo, por lo que para un escenario geográficamente disperso, los enlaces cruzados pueden tener sentido para reducir los tiempos de autenticación.
* **Externa** – una confianza implícitamente no transitoria creada entre dominios dispares. "[Las confianzas externas proporcionan acceso a recursos en un dominio fuera del bosque que no está ya unido por una confianza de bosque.](https://technet.microsoft.com/en-us/library/cc773178\(v=ws.10\).aspx)" Las confianzas externas aplican filtrado de SID, una protección de seguridad cubierta más adelante en esta publicación.
* **Raíz de árbol** – una confianza transitoria bidireccional implícita entre el dominio raíz del bosque y la nueva raíz del árbol que está agregando. No he encontrado confianzas de raíz de árbol con demasiada frecuencia, pero según la [documentación de Microsoft](https://technet.microsoft.com/en-us/library/cc773178\(v=ws.10\).aspx), se crean cuando se crea un nuevo árbol de dominio en un bosque. Estas son confianzas intra-bosque, y
El NC de Configuración es el repositorio principal para la información de configuración de un bosque y se replica en cada DC del bosque. Además, cada DC escribible (no solo de lectura) en el bosque tiene una copia escribible del NC de Configuración. Explotar esto requiere ejecutarse como SYSTEM en un DC (hijo).
Es posible comprometer el dominio raíz de varias maneras cubiertas a continuación.
El contenedor de Sitios en el NC de Configuración contiene todos los sitios de las computadoras unidas al dominio en el bosque de AD. Es posible vincular GPOs a sitios cuando se ejecuta como SYSTEM en cualquier DC del bosque, incluyendo el(los) sitio(s) de los DCs raíz del bosque, y de este modo comprometerlos.
Se pueden leer más detalles aquí [Investigación de bypass de filtrado de SID](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-4-bypass-sid-filtering-research).
La clave raíz de KDS, que se utiliza para calcular la contraseña de los gMSAs en el bosque, se almacena en el NC de Configuración. Cuando se ejecuta como SYSTEM en cualquier DC del bosque, se puede leer la clave raíz de KDS y calcular la contraseña de cualquier gMSA en el bosque.
Se pueden leer más detalles aquí: [Ataque de confianza de gMSA dorado de hijo a padre](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent).
Cuando se ejecuta como SYSTEM en cualquier DC del bosque, se puede otorgar a cualquier usuario control total sobre todas las clases en el Esquema de AD. Ese control puede ser abusado para crear una ACE en el descriptor de seguridad predeterminado de cualquier objeto AD que otorgue control total a un principal comprometido. Todas las nuevas instancias de los tipos de objetos AD modificados tendrán esta ACE.
Se pueden leer más detalles aquí: [Ataque de confianza de cambio de esquema de hijo a padre](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-6-schema-change-trust-attack-from-child-to-parent).
Los ataques ADCS ESC5 (Control de Acceso a Objetos PKI Vulnerables) abusan del control sobre objetos PKI para crear una plantilla de certificado vulnerable que puede ser abusada para autenticarse como cualquier usuario en el bosque. Dado que todos los objetos PKI se almacenan en el NC de Configuración, se puede ejecutar ESC5 si se ha comprometido cualquier DC escribible (hijo) en el bosque.
En caso de que el bosque de AD no tenga ADCS, el atacante puede crear los componentes necesarios como se describe aquí: [Escalando de los administradores del dominio hijo a los administradores de la empresa en 5 minutos abusando de AD CS, un seguimiento](https://www.pkisolutions.com/escalating-from-child-domains-admins-to-enterprise-admins-in-5-minutes-by-abusing-ad-cs-a-follow-up/).
En este escenario **tu dominio es confiable** por uno externo otorgándote **permisos indeterminados** sobre él. Necesitarás encontrar **qué principios de tu dominio tienen qué acceso sobre el dominio externo** y luego intentar explotarlo:
Sin embargo, cuando un **dominio es confiado** por el dominio confiante, el dominio confiado **crea un usuario** con un **nombre predecible** que usa como **contraseña la contraseña confiada**. Lo que significa que es posible **acceder a un usuario del dominio confiante para entrar en el confiado** para enumerarlo e intentar escalar más privilegios:
Otra forma de comprometer el dominio confiado es encontrar un [**enlace SQL confiado**](abusing-ad-mssql.md#mssql-trusted-links) creado en la **dirección opuesta** de la confianza del dominio (lo cual no es muy común).
Otra forma de comprometer el dominio confiado es esperar en una máquina donde un **usuario del dominio confiado pueda acceder** para iniciar sesión a través de **RDP**. Entonces, el atacante podría inyectar código en el proceso de sesión de RDP y **acceder al dominio de origen de la víctima** desde allí.\
Además, si la **víctima montó su disco duro**, desde el proceso de **sesión RDP** el atacante podría almacenar **puertas traseras** en la **carpeta de inicio del disco duro**. Esta técnica se llama **RDPInception.**
* Activado por defecto en todas las confianzas entre bosques. Se asume que las confianzas intra-bosque están seguras por defecto (MS considera el bosque y no el dominio como un límite de seguridad).
* Pero, dado que el filtrado de SID tiene el potencial de romper aplicaciones y acceso de usuarios, a menudo se desactiva.
* Autenticación Selectiva
* En una confianza entre bosques, si se configura la Autenticación Selectiva, los usuarios entre las confianzas no serán autenticados automáticamente. Se debe otorgar acceso individual a dominios y servidores en el dominio/bosque confiante.
* No previene la explotación de NC de Configuración escribible y el ataque de cuenta de confianza.
[**Más información sobre confianzas de dominio en ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/child-domain-da-to-ea-in-parent-domain)
* Algunas soluciones llenan con información todos los atributos posibles. Por ejemplo, compara los atributos de un objeto de computadora con el atributo de un objeto de computadora 100% real como DC. O usuarios contra el RID 500 (admin por defecto).
* Comprueba si algo es demasiado bueno para ser verdad
ATA solo se queja cuando intentas enumerar sesiones en el DC, así que si no buscas sesiones en el DC sino en el resto de los hosts, probablemente no serás detectado.
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Si quieres ver a tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) en github.