Translated ['windows-hardening/active-directory-methodology/README.md']

This commit is contained in:
Translator 2023-06-17 15:31:23 +00:00
parent 6cfd16024a
commit c14822ce7a

View File

@ -18,7 +18,7 @@ Active Directory permite a los administradores de red crear y administrar domini
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. Cada uno de estos niveles puede asignar derechos de acceso y privilegios de comunicación específicos. 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. Cada uno de estos niveles puede asignar derechos de acceso y privilegios de comunicación específicos.
Los conceptos principales de un Active Directory son: Conceptos principales de un Active Directory:
1. **Directorio** - Contiene toda la información sobre los objetos del directorio activo. 1. **Directorio** - Contiene toda la información sobre los objetos del directorio activo.
2. **Objeto** - Un objeto hace referencia a casi cualquier cosa dentro del directorio (un usuario, grupo, carpeta compartida...) 2. **Objeto** - Un objeto hace referencia a casi cualquier cosa dentro del directorio (un usuario, grupo, carpeta compartida...)
@ -40,12 +40,12 @@ AD DS se incluye con Windows Server (incluido Windows Server 10) y está diseña
### **Autenticación Kerberos** ### **Autenticación Kerberos**
Para aprender a **atacar un AD** necesitas **entender** muy bien el proceso de **autenticación Kerberos**.\ Para aprender a **atacar un AD** necesitas **entender** muy bien el **proceso de autenticación Kerberos**.\
[**Lee esta página si aún no sabes cómo funciona.**](kerberos-authentication.md) [**Lee esta página si aún no sabes cómo funciona.**](kerberos-authentication.md)
## Hoja de trucos ## Hoja de trucos
Puedes acceder a [https://wadcoms.github.io/](https://wadcoms.github.io) para tener una vista rápida de los comandos que puedes ejecutar para enumerar/explotar un AD. Puedes ir a [https://wadcoms.github.io/](https://wadcoms.github.io) para tener una vista rápida de los comandos que puedes ejecutar para enumerar/explotar un AD.
## Reconocimiento de Active Directory (sin credenciales/sesiones) ## Reconocimiento de Active Directory (sin credenciales/sesiones)
@ -57,7 +57,7 @@ Si solo tienes acceso a un entorno de AD pero no tienes credenciales/sesiones, p
* `gobuster dns -d domain.local -t 25 -w /opt/Seclist/Discovery/DNS/subdomain-top2000.txt` * `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 obtener más información sobre cómo hacer esto. * Echa un vistazo a la [**Metodología de Pentesting General**](../../generic-methodologies-and-resources/pentesting-methodology.md) para obtener más información sobre cómo hacer esto.
* **Comprobar el acceso nulo y de invitado en los servicios SMB** (esto no funcionará en las versiones modernas de Windows): * **Comprobar el acceso nulo y de invitado en los servicios SMB** (esto no funcionará en las versiones modernas de Windows):
* `enum4linux -a -u "" -p "" <DC IP> && enum4linux -a - * `enum4linux -a -u "" -p "" <DC IP> && enum4linux -a -u "guest" -p "" <DC IP>`
```bash ```bash
./kerbrute_linux_amd64 userenum -d lab.ropnop.com --dc 10.10.10.10 usernames.txt #From https://github.com/ropnop/kerbrute/releases ./kerbrute_linux_amd64 userenum -d lab.ropnop.com --dc 10.10.10.10 usernames.txt #From https://github.com/ropnop/kerbrute/releases
@ -70,7 +70,7 @@ crackmapexec smb dominio.es -u '' -p '' --users | awk '{print $4}' | uniq
``` ```
* **Servidor OWA (Outlook Web Access)** * **Servidor OWA (Outlook Web Access)**
Si encontraste uno de estos servidores en la red, también puedes realizar **enumeración de usuarios contra él**. Por ejemplo, podrías utilizar la herramienta [**MailSniper**](https://github.com/dafthack/MailSniper): Si encontraste 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):
```bash ```bash
ipmo C:\Tools\MailSniper\MailSniper.ps1 ipmo C:\Tools\MailSniper\MailSniper.ps1
# Get info about the domain # Get info about the domain
@ -88,13 +88,13 @@ Puedes encontrar listas de nombres de usuario en [**este repositorio de Github**
Sin embargo, deberías tener el **nombre de las personas que trabajan en la empresa** a partir del paso de reconocimiento que deberías haber realizado antes. Con el nombre y apellido, podrías usar el script [**namemash.py**](https://gist.github.com/superkojiman/11076951) para generar posibles nombres de usuario válidos. Sin embargo, deberías tener el **nombre de las personas que trabajan en la empresa** a partir del paso de reconocimiento que deberías haber realizado antes. Con el nombre y apellido, podrías usar el script [**namemash.py**](https://gist.github.com/superkojiman/11076951) para generar posibles nombres de usuario válidos.
{% endhint %} {% endhint %}
### Conociendo uno o varios nombres de usuario ### Conocer uno o varios nombres de usuario
Bien, ya sabes que tienes un nombre de usuario válido pero no tienes contraseñas... Entonces intenta: Bien, ya sabes que tienes un nombre de usuario válido pero no tienes contraseñas... Entonces intenta:
* [**ASREPRoast**](asreproast.md): Si un usuario **no tiene** el atributo _DONT\_REQ\_PREAUTH_, puedes **solicitar un mensaje AS\_REP** para ese usuario que contendrá algunos datos cifrados por una derivación de la contraseña del usuario. * [**ASREPRoast**](asreproast.md): Si un usuario **no tiene** el atributo _DONT\_REQ\_PREAUTH_, puedes **solicitar un mensaje AS\_REP** para ese usuario que contendrá algunos datos cifrados por una derivación de la contraseña del usuario.
* [**Password Spraying**](password-spraying.md): Intenta las contraseñas **más comunes** con cada uno de los usuarios descubiertos, tal vez algún usuario esté usando una contraseña débil (¡ten en cuenta la política de contraseñas!). * [**Password Spraying**](password-spraying.md): Intenta las contraseñas **más comunes** con cada uno de los usuarios descubiertos, tal vez algún usuario esté usando una contraseña débil (¡ten en cuenta la política de contraseñas!).
* Ten en cuenta que también puedes **probar en servidores OWA** para intentar acceder a los servidores de correo de los usuarios. * Ten en cuenta que también puedes **probar con servidores OWA** para intentar acceder a los servidores de correo de los usuarios.
{% content-ref url="password-spraying.md" %} {% content-ref url="password-spraying.md" %}
[password-spraying.md](password-spraying.md) [password-spraying.md](password-spraying.md)
@ -110,7 +110,7 @@ Es posible que puedas **obtener** algunos **hashes de desafío** para descifrar
### NTML Relay ### NTML Relay
Si has logrado enumerar el directorio activo, tendrás **más correos electrónicos y una mejor comprensión de la red**. Podrías forzar ataques de **retransmisión NTML** \*\*\*\* para obtener acceso al entorno de AD. Si has logrado enumerar el directorio activo, tendrás **más correos electrónicos y una mejor comprensión de la red**. Es posible que puedas forzar ataques de **retransmisión NTML** \*\*\*\* para obtener acceso al entorno de AD.
### Robar credenciales NTLM ### Robar credenciales NTLM
@ -120,7 +120,7 @@ Si puedes **acceder a otros PCs o recursos compartidos** con el usuario **null o
[places-to-steal-ntlm-creds.md](../ntlm/places-to-steal-ntlm-creds.md) [places-to-steal-ntlm-creds.md](../ntlm/places-to-steal-ntlm-creds.md)
{% endcontent-ref %} {% endcontent-ref %}
## Enumerando Active Directory CON credenciales/sesión ## Enumeración de Active Directory CON credenciales/sesión
Para esta fase, necesitas haber **comprometido las credenciales o una sesión de una cuenta de dominio válida**. Si tienes algunas credenciales válidas o una shell como usuario de dominio, **debes recordar que las opciones dadas anteriormente siguen siendo opciones para comprometer a otros usuarios**. Para esta fase, necesitas haber **comprometido las credenciales o una sesión de una cuenta de dominio válida**. Si tienes algunas credenciales válidas o una shell como usuario de dominio, **debes recordar que las opciones dadas anteriormente siguen siendo opciones para comprometer a otros usuarios**.
@ -132,9 +132,9 @@ Antes de comenzar la enumeración autenticada, debes saber cuál es el **problem
### Enumeración ### Enumeración
Haber comprometido una cuenta es un **gran paso para comenzar a comprometer todo el dominio**, porque podrás comenzar la **enumeración del Directorio Activo**: Haber comprometido una cuenta es un **gran paso para comenzar a comprometer todo el dominio**, porque podrás comenzar la **enumeración del directorio activo**:
Con respecto a [**ASREPRoast**](asreproast.md), ahora puedes encontrar todos los usuarios vulnerables posibles, y con respecto a [**Password Spraying**](password-spraying.md), puedes obtener una **lista de todos los nombres de usuario** y probar la contraseña de la cuenta comprometida, contraseñas vacías y nuevas contraseñas prometedoras. Con respecto a [**ASREPRoast**](asreproast.md), ahora puedes encontrar todos los usuarios vulnerables posibles, y con respecto a [**Password Spraying**](password-spraying.md), puedes 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ías usar el [**CMD para realizar una recon básica**](../basic-cmd-for-pentesters.md#domain-info) * Podrías usar el [**CMD para realizar una recon básica**](../basic-cmd-for-pentesters.md#domain-info)
* También puedes usar [**powershell para la recon**](../basic-powershell-for-pentesters/) que será más sigiloso * También puedes usar [**powershell para la recon**](../basic-powershell-for-pentesters/) que será más sigiloso
@ -169,7 +169,7 @@ Una vez que hayas obtenido algunas credenciales, podrías comprobar si tienes ac
### Escalada de privilegios local ### Escalada de privilegios local
Si has comprometido credenciales o una sesión como usuario de domin Si has comprometido credenciales o una sesión como usuario de dominio regular y tienes **acceso
```bash ```bash
## List all tickets (if not admin, only current user tickets) ## List all tickets (if not admin, only current user tickets)
.\Rubeus.exe triage .\Rubeus.exe triage
@ -183,13 +183,13 @@ Si has logrado enumerar el directorio activo, tendrás **más correos electróni
### Buscar credenciales en recursos compartidos de computadoras ### Buscar credenciales en recursos compartidos de computadoras
Ahora que tienes algunas credenciales básicas, deberías comprobar 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). Ahora que tienes algunas credenciales básicas, deberías comprobar si puedes **encontrar** algún **archivo interesante compartido dentro del AD**. Podrías hacerlo manualmente, pero es una tarea aburrida y repetitiva (y más si encuentras cientos de documentos que necesitas revisar).
[**Sigue este enlace para conocer las herramientas que podrías usar.**](../../network-services-pentesting/pentesting-smb.md#domain-shared-folders-search) [**Sigue este enlace para conocer las herramientas que podrías usar.**](../../network-services-pentesting/pentesting-smb.md#domain-shared-folders-search)
### Robar credenciales NTLM ### Robar credenciales NTLM
Si puedes **acceder a otras PCs o recursos compartidos**, podrías **colocar archivos** (como un archivo SCF) que, si se acceden de alguna manera, **desencadenarán una autenticación NTML contra ti** para que puedas **robar el desafío NTLM** y crackearlo: Si puedes **acceder a otras PC o recursos compartidos**, podrías **colocar archivos** (como un archivo SCF) que, si se acceden de alguna manera, **desencadenarán una autenticación NTML contra ti** para que puedas **robar el desafío NTLM** y crackearlo:
{% content-ref url="../ntlm/places-to-steal-ntlm-creds.md" %} {% content-ref url="../ntlm/places-to-steal-ntlm-creds.md" %}
[places-to-steal-ntlm-creds.md](../ntlm/places-to-steal-ntlm-creds.md) [places-to-steal-ntlm-creds.md](../ntlm/places-to-steal-ntlm-creds.md)
@ -207,7 +207,7 @@ Esta vulnerabilidad permitió a cualquier usuario autenticado **comprometer el c
**Para las siguientes técnicas, un usuario de dominio regular no es suficiente, necesitas algunos privilegios/credenciales especiales para realizar estos ataques.** **Para las siguientes técnicas, un usuario de dominio regular no es suficiente, necesitas algunos privilegios/credenciales especiales para realizar estos ataques.**
### Extracción de hashes ### Extracción de hash
Con suerte, has logrado **comprometer alguna cuenta de administrador local** usando [AsRepRoast](asreproast.md), [Password Spraying](password-spraying.md), [Kerberoast](kerberoast.md), [Responder](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md), incluyendo la retransmisión, [EvilSSDP](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md), [escalando privilegios localmente](../windows-local-privilege-escalation/).\ Con suerte, has logrado **comprometer alguna cuenta de administrador local** usando [AsRepRoast](asreproast.md), [Password Spraying](password-spraying.md), [Kerberoast](kerberoast.md), [Responder](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md), incluyendo la retransmisión, [EvilSSDP](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md), [escalando privilegios localmente](../windows-local-privilege-escalation/).\
Entonces, es hora de volcar todos los hashes en memoria y localmente.\ Entonces, es hora de volcar todos los hashes en memoria y localmente.\
@ -216,12 +216,12 @@ Entonces, es hora de volcar todos los hashes en memoria y localmente.\
### Pass the Hash ### Pass the Hash
**Una vez que tienes el hash de un usuario**, puedes usarlo para **suplantarlo**.\ **Una vez que tienes el hash de un usuario**, puedes usarlo para **suplantarlo**.\
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**, para que cuando se realice cualquier **autenticación NTLM**, se use ese **hash**. La última opción es lo que hace mimikatz.\ Necesitas usar alguna **herramienta** que **realice** la **autenticación NTLM usando** ese **hash**, **o** podrías crear una nueva **sesión de inicio de sesión** e **inyectar** ese **hash** dentro del **LSASS**, para que cuando se realice cualquier **autenticación NTLM**, se use ese **hash**. La última opción es lo que hace mimikatz.\
[**Lee esta página para obtener más información.**](../ntlm/#pass-the-hash) [**Lee esta página para obtener más información.**](../ntlm/#pass-the-hash)
### Over Pass the Hash/Pass the Key ### Over Pass the Hash/Pass the Key
Este ataque tiene como objetivo **usar el hash NTLM del usuario para solicitar tickets Kerberos**, como 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 se permite Kerberos como protocolo de autenticación. Este ataque tiene como objetivo **usar el hash NTLM del usuario para solicitar tickets Kerberos**, como alternativa al protocolo 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 se permite Kerberos como protocolo de autenticación.
{% content-ref url="over-pass-the-hash-pass-the-key.md" %} {% content-ref url="over-pass-the-hash-pass-the-key.md" %}
[over-pass-the-hash-pass-the-key.md](over-pass-the-hash-pass-the-key.md) [over-pass-the-hash-pass-the-key.md](over-pass-the-hash-pass-the-key.md)
@ -237,20 +237,20 @@ Este ataque es similar a Pass the Key, pero en lugar de usar hashes para solicit
### Reutilización de credenciales ### Reutilización de credenciales
Si tienes el **hash** o **contraseña** de un **administrador local**, deberías intentar **iniciar sesión localmente** en otras **PCs** con él. Si tienes el **hash** o **contraseña** de un **administrador local**, deberías intentar **iniciar sesión localmente** en otras **PC** con él.
```bash ```bash
# Local Auth Spray (once you found some local admin pass or hash) # Local Auth Spray (once you found some local admin pass or hash)
## --local-auth flag indicate to only try 1 time per machine ## --local-auth flag indicate to only try 1 time per machine
crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9cab376ecd08491764a0 | grep + crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9cab376ecd08491764a0 | grep +
``` ```
{% hint style="warning" %} {% hint style="warning" %}
Tenga en cuenta que esto es bastante **ruidoso** y que **LAPS** lo **mitigará**. Tenga en cuenta que esto es bastante **ruidoso** y **LAPS** lo **mitigará**.
{% endhint %} {% endhint %}
### Abuso de MSSQL y enlaces de confianza ### Abuso de MSSQL y enlaces de confianza
Si un usuario tiene privilegios para **acceder a instancias de MSSQL**, podría ser capaz de 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 relé**.\ Si un usuario tiene privilegios para **acceder a las instancias de MSSQL**, podría ser capaz de 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 relé**.\
Además, si una instancia de MSSQL es de confianza (enlace de base de datos) por una instancia de MSSQL diferente. Si el usuario tiene privilegios sobre la base de datos de confianza, 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 ser capaz de encontrar una base de datos mal configurada donde puede ejecutar comandos.\ Además, si una instancia de MSSQL es de confianza (enlace de base de datos) por una instancia de MSSQL diferente. Si el usuario tiene privilegios sobre la base de datos de confianza, 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 puede ejecutar comandos.\
**Los enlaces entre bases de datos funcionan incluso a través de confianzas forestales.** **Los enlaces entre bases de datos funcionan incluso a través de confianzas forestales.**
{% content-ref url="abusing-ad-mssql.md" %} {% content-ref url="abusing-ad-mssql.md" %}
@ -284,9 +284,9 @@ Es posible obtener la ejecución de código con **privilegios elevados en un equ
[resource-based-constrained-delegation.md](resource-based-constrained-delegation.md) [resource-based-constrained-delegation.md](resource-based-constrained-delegation.md)
{% endcontent-ref %} {% endcontent-ref %}
### Abuso de ACLs ### Abuso de ACL
El usuario comprometido podría tener algunos **privilegios interesantes sobre algunos objetos de dominio** que le permitirían **moverse** lateralmente/**escalar** privilegios. El usuario comprometido podría tener algunos **privilegios interesantes sobre algunos objetos de dominio** que podrían permitirle **moverse** lateralmente/**escalar** privilegios.
{% content-ref url="acl-persistence-abuse/" %} {% content-ref url="acl-persistence-abuse/" %}
[acl-persistence-abuse](acl-persistence-abuse/) [acl-persistence-abuse](acl-persistence-abuse/)
@ -294,7 +294,7 @@ El usuario comprometido podría tener algunos **privilegios interesantes sobre a
### Abuso del servicio de cola de impresión ### Abuso del servicio de cola de impresión
Si puede encontrar algún **servicio de cola de impresión escuchando** dentro del dominio, es posible que pueda **abusar** de él para **obtener nuevas credenciales** y **escalar privilegios**.\ Si puede encontrar algún **servicio de cola de impresión escuchando** dentro del dominio, es posible **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) [**Más información sobre cómo abusar de los servicios de cola de impresión aquí.**](printers-spooler-service-abuse.md)
### Abuso de sesiones de terceros ### Abuso de sesiones de terceros
@ -308,10 +308,10 @@ Por lo general, los usuarios accederán al sistema a través de RDP, así que aq
### LAPS ### LAPS
**LAPS** le permite **administrar la **LAPS** le permite **administrar la contraseña del administrador local** (que es **aleatoria**, única y **
### Diferentes confianzas ### Diferentes confianzas
Es importante tener en cuenta que **una confianza puede ser de una vía o de dos vías**. En la opción de dos vías, ambos dominios confiarán entre, pero en la relación de confianza de **una vía**, uno de los dominios será el **confiado** y el otro el dominio **confiante**. En este último caso, **solo podrás acceder a los recursos dentro del dominio confiante desde el confiado**. Es importante tener en cuenta que **una confianza puede ser de una vía o de dos vías**. En la opción de dos vías, ambos dominios se confiarán mutuamente, pero en la relación de confianza de **una vía**, uno de los dominios será el **confiado** y el otro el dominio **confiante**. En este último caso, **solo podrás acceder a los recursos dentro del dominio confiante desde el confiado**.
Si el Dominio A confía en el Dominio B, A es el dominio confiante y B es el dominio confiado. Además, en **el Dominio A**, esto sería una **confianza de salida**; y en **el Dominio B**, esto sería una **confianza de entrada**. Si el Dominio A confía en el Dominio B, A es el dominio confiante y B es el dominio confiado. Además, en **el Dominio A**, esto sería una **confianza de salida**; y en **el Dominio B**, esto sería una **confianza de entrada**.
@ -320,14 +320,14 @@ Si el Dominio A confía en el Dominio B, A es el dominio confiante y B es el dom
* **Padre-Hijo** - parte del mismo bosque - un dominio hijo mantiene una confianza transitoria implícita de dos vías con su padre. Este es probablemente el tipo de confianza más común que encontrarás. * **Padre-Hijo** - parte del mismo bosque - un dominio hijo mantiene una confianza transitoria implícita de dos vías con su padre. Este es probablemente el tipo de confianza más común que encontrarás.
* **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 de destino, por lo que para un escenario geográficamente disperso, los enlaces cruzados pueden tener sentido para reducir los tiempos de autenticación. * **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 de destino, por lo que para un escenario geográficamente disperso, los enlaces cruzados pueden tener sentido para reducir los tiempos de autenticación.
* **Externo** - una confianza implícitamente no transitoria creada entre dominios dispares. "[Las confianzas externas proporcionan acceso a recursos en un dominio fuera del bosque que aún no se ha unido mediante una confianza de bosque.](https://technet.microsoft.com/en-us/library/cc773178\(v=ws.10\).aspx)" Las confianzas externas hacen cumplir el filtrado de SID, una protección de seguridad que se cubrirá más adelante en esta publicación. * **Externo** - una confianza implícitamente no transitoria creada entre dominios dispares. "[Las confianzas externas proporcionan acceso a recursos en un dominio fuera del bosque que aún no se ha unido mediante una confianza de bosque.](https://technet.microsoft.com/en-us/library/cc773178\(v=ws.10\).aspx)" Las confianzas externas hacen cumplir el filtrado de SID, una protección de seguridad que se cubrirá más adelante en esta publicación.
* **Raíz del árbol** - una confianza transitoria implícita de dos vías entre el dominio raíz del bosque y la nueva raíz del árbol que estás 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 creas un nuevo árbol de dominio en un bosque. Estas son confianzas intraforestales y [conservan la transitividad de dos vías](https://technet.microsoft.com/en-us/library/cc757352\(v=ws.10\).aspx) mientras permiten que el árbol tenga un nombre de dominio separado (en lugar de hijo.padre.com). * **Raíz del árbol** - una confianza transitoria implícita de dos vías entre el dominio raíz del bosque y la nueva raíz del árbol que estás 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 creas un nuevo árbol de dominio en un bosque. Estas son confianzas intra-bosque, y [conservan la transitividad de dos vías](https://technet.microsoft.com/en-us/library/cc757352\(v=ws.10\).aspx) mientras permiten que el árbol tenga un nombre de dominio separado (en lugar de hijo.padre.com).
* **Bosque** - una confianza transitoria entre dos dominios raíz del bosque. Las confianzas de bosque también hacen cumplir el filtrado de SID. * **Bosque** - una confianza transitoria entre dos dominios raíz del bosque. Las confianzas de bosque también hacen cumplir el filtrado de SID.
* **MIT** - una confianza con un dominio Kerberos no Windows compatible con [RFC4120](https://tools.ietf.org/html/rfc4120). Espero profundizar más en las confianzas MIT en el futuro. * **MIT** - una confianza con un dominio Kerberos no Windows compatible con [RFC4120](https://tools.ietf.org/html/rfc4120). Espero profundizar más en las confianzas MIT en el futuro.
#### Otras diferencias en las **relaciones de confianza** #### Otras diferencias en las **relaciones de confianza**
* Una relación de confianza también puede ser **transitoria** (A confía en B, B confía en C, entonces A confía en C) o **no transitoria**. * Una relación de confianza también puede ser **transitoria** (A confía en B, B confía en C, entonces A confía en C) o **no transitoria**.
* Una relación de confianza puede configurarse como **confianza bidireccional** (ambos confían entre sí) o como **confianza de una vía** (solo uno de ellos confía en el otro). * Una relación de confianza puede configurarse como **confianza bidireccional** (ambos confían el uno en el otro) o como **confianza de una vía** (solo uno de ellos confía en el otro).
### Ruta de ataque ### Ruta de ataque
@ -340,7 +340,9 @@ Hay tres formas **principales** en que los principales de seguridad (usuarios/gr
* Pueden agregarse a **grupos locales** en máquinas individuales, es decir, el grupo local "Administradores" en un servidor. * Pueden agregarse a **grupos locales** en máquinas individuales, es decir, el grupo local "Administradores" en un servidor.
* Pueden agregarse a **grupos en el dominio externo**. Hay algunas advertencias dependiendo del tipo de confianza y el ámbito del grupo, que se describen en breve. * Pueden agregarse a **grupos en el dominio externo**. Hay algunas advertencias dependiendo del tipo de confianza y el ámbito del grupo, que se describen en breve.
* Pueden agregarse como principales en una **lista de control de acceso**, más interesante para nosotros como principales en **ACEs** en un **DACL**. Para obtener más información sobre ACL/DACL/ACE, consulte el documento blanco "[An ACE Up The Sleeve](https://specterops.io/assets/resources/an\_ace\_up\_the\_sleeve.pdf)". * Pueden agregarse como principales en una **lista de control de acceso**, más interesante para nosotros como principales en **ACEs** en un **DACL**. Para obtener más información sobre ACL/DACL/ACE, consulte el documento blanco "[An ACE Up The Sleeve](https://specterops.io/assets/resources/an\_ace\_up\_the\_sleeve.pdf)".
### Escalada de privilegios de bosque hijo a padre
``` ```
Get-DomainTrust Get-DomainTrust
@ -353,8 +355,8 @@ WhenCreated : 2/19/2021 1:28:00 PM
WhenChanged : 2/19/2021 1:28:00 PM WhenChanged : 2/19/2021 1:28:00 PM
``` ```
{% hint style="warning" %} {% hint style="warning" %}
Existen **2 claves de confianza**, una para _Hijo --> Padre_ y otra para _Padre_ --> _Hijo_.\ Hay **2 claves de confianza**, una para _Hijo --> Padre_ y otra para _Padre_ --> _Hijo_.\
Puedes ver la que usa el dominio actual con: Puedes ver la que se usa en el dominio actual con:
```bash ```bash
Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.my.domain.local Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.my.domain.local
Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\mcorp$"' Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\mcorp$"'
@ -363,22 +365,43 @@ Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\mcorp$"'
#### Inyección de SID-History #### Inyección de SID-History
Escalada de privilegios a Enterprise admin en el dominio hijo/padre abusando de la confianza con la inyección de SID-History: Escalada como administrador empresarial al dominio hijo/padre abusando de la confianza con la inyección de SID-History:
{% content-ref url="sid-history-injection.md" %} {% content-ref url="sid-history-injection.md" %}
[sid-history-injection.md](sid-history-injection.md) [sid-history-injection.md](sid-history-injection.md)
{% endcontent-ref %} {% endcontent-ref %}
#### Explotar Configuration NC escribible #### Explotación de Configuration NC escribible
Configuration NC es el repositorio principal de información de configuración para un bosque y se replica en cada DC del bosque. Además, cada DC escribible (no DC de solo lectura) en el bosque tiene una copia escribible de Configuration NC. Explotar esto requiere ejecutar como SYSTEM en un DC (hijo). Configuration NC es el repositorio principal de información de configuración para un bosque y se replica en cada DC del bosque. Además, cada DC escribible (no DC de solo lectura) en el bosque tiene una copia escribible de Configuration NC. Explotar esto requiere ejecutar como SYSTEM en un DC (hijo).
Es posible comprometer el dominio raíz de varias maneras. Ejemplos: Es posible comprometer el dominio raíz de varias maneras que se cubren a continuación.
* [Vincular GPO al sitio del DC raíz](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-4-bypass-sid-filtering-research) ##### Vincular GPO al sitio del DC raíz
* [Comprometer gMSA](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent) El contenedor de sitios en Configuration NC contiene todos los sitios de las computadoras unidas al dominio en el bosque de AD. Es posible vincular GPO a sitios cuando se ejecuta como SYSTEM en cualquier DC del bosque, incluidos los sitios de los DC raíz del bosque, y así comprometerlos.
* [Ataque de esquema](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-6-schema-change-trust-attack-from-child-to-parent)
* Explotar ADCS - Crear/modificar plantilla de certificado para permitir la autenticación como cualquier usuario (por ejemplo, Enterprise Admins) Se pueden leer más detalles aquí [Investigación de filtrado de SID](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-4-bypass-sid-filtering-research).
##### Comprometer cualquier gMSA en el bosque
El ataque depende de gMSAs privilegiados en el dominio objetivo.
La clave raíz de KDS, que se utiliza para calcular la contraseña de gMSAs en el bosque, se almacena en Configuration NC. 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 Golden gMSA 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).
##### Ataque de cambio de esquema
El ataque requiere que el atacante espere a que se creen nuevos objetos de AD privilegiados.
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 se puede abusar para crear un ACE en el descriptor de seguridad predeterminado de cualquier objeto de AD que otorgue control total a un principal comprometido. Todas las nuevas instancias de los tipos de objetos de AD modificados tendrán este 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).
##### De DA a EA con ADCS ESC5
Los ataques ADCS ESC5 (Control de acceso de objetos PKI vulnerables) abusan del control sobre los objetos PKI para crear una plantilla de certificado vulnerable que se puede abusar para autenticar como cualquier usuario en el bosque. Dado que todos los objetos PKI se almacenan en Configuration NC, se puede ejecutar ESC5 si se ha comprometido cualquier DC escribible (hijo) en el bosque.
Se pueden leer más detalles aquí: [De DA a EA con ESC5](https://posts.specterops.io/from-da-to-ea-with-esc5-f9f045aa105c)
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 empresariales 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/).
### Dominio de bosque externo - Unidireccional (entrante) o bidireccional ### Dominio de bosque externo - Unidireccional (entrante) o bidireccional
```powershell ```powershell
@ -426,18 +449,18 @@ Además, si la **víctima montó su disco duro**, desde el proceso de sesión de
[rdp-sessions-abuse.md](rdp-sessions-abuse.md) [rdp-sessions-abuse.md](rdp-sessions-abuse.md)
{% endcontent-ref %} {% endcontent-ref %}
### Mitigación del abuso de confianza de dominio ### Mitigación del abuso de la confianza del dominio
**Filtrado de SID:** **Filtrado de SID:**
* Evita ataques que abusan del atributo de historial de SID a través de la confianza entre bosques. * Evita ataques que abusan del atributo de historial de SID a través de la confianza entre bosques.
* Habilitado de forma predeterminada en todas las confianzas entre bosques. Se asume que las confianzas dentro del bosque están aseguradas de forma predeterminada (Microsoft considera que el bosque y no el dominio es una barrera de seguridad). * Habilitado de forma predeterminada en todas las confianzas entre bosques. Se asume que las confianzas dentro del bosque están aseguradas de forma predeterminada (Microsoft considera que el bosque y no el dominio es una barrera de seguridad).
* Pero, dado que el filtrado de SID tiene el potencial de romper aplicaciones y el acceso de usuario, a menudo se deshabilita. * Pero, dado que el filtrado de SID tiene el potencial de romper aplicaciones y el acceso de los usuarios, a menudo se deshabilita.
* Autenticación selectiva * Autenticación selectiva
* En una confianza entre bosques, si se configura la autenticación selectiva, los usuarios entre las confianzas no se autenticarán automáticamente. Se debe dar acceso individual a los dominios y servidores en el dominio / bosque confiante. * En una confianza entre bosques, si se configura la autenticación selectiva, los usuarios entre las confianzas no se autenticarán automáticamente. Se debe dar acceso individual a los dominios y servidores en el dominio / bosque confiante.
* No evita la explotación de la NC de configuración escribible y el ataque de la cuenta de confianza. * No evita la explotación de la NC de configuración escribible y el ataque de la cuenta de confianza.
[**Más información sobre la confianza de dominio en ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/child-domain-da-to-ea-in-parent-domain) [**Más información sobre la confianza del dominio en ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/child-domain-da-to-ea-in-parent-domain)
## AD -> Cloud & Cloud -> AD ## AD -> Cloud & Cloud -> AD
@ -497,7 +520,7 @@ Si no ejecuta esto desde un controlador de dominio, ATA lo atrapará, lo siento.
## Más herramientas ## Más herramientas
* [Script de PowerShell para automatizar la auditoría de dominio](https://github.com/phillips321/adaudit) * [Script de PowerShell para automatizar la auditoría del dominio](https://github.com/phillips321/adaudit)
* [Script de Python para enumerar Active Directory](https://github.com/ropnop/windapsearch) * [Script de Python para enumerar Active Directory](https://github.com/ropnop/windapsearch)
* [Script de Python para enumerar Active Directory](https://github.com/CroweCybersecurity/ad-ldap-enum) * [Script de Python para enumerar Active Directory](https://github.com/CroweCybersecurity/ad-ldap-enum)
@ -509,10 +532,10 @@ Si no ejecuta esto desde un controlador de dominio, ATA lo atrapará, lo siento.
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary> <summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* ¿Trabaja en una **empresa de ciberseguridad**? ¿Quiere ver su **empresa anunciada en HackTricks**? ¿O quiere tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulte los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * ¿Trabaja en una **empresa de ciberseguridad**? ¿Quiere ver su **empresa anunciada en HackTricks**? o ¿quiere tener acceso a la **última versión del PEASS o descargar HackTricks en PDF**? ¡Consulte los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos. * Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos.
* Obtenga el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com) * Obtenga el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com).
* **Únase al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegramas**](https://t.me/peass) o **sígame** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Únase al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígame** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Comparta sus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud). * **Comparta sus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details> </details>