# Linux Active Directory {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** 馃挰 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 馃惁 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %} Una m谩quina linux tambi茅n puede estar presente dentro de un entorno de Active Directory. Una m谩quina linux en un AD podr铆a estar **almacenando diferentes tickets CCACHE dentro de archivos. Estos tickets pueden ser utilizados y abusados como cualquier otro ticket kerberos**. Para leer estos tickets necesitar谩s ser el usuario propietario del ticket o **root** dentro de la m谩quina. ## Enumeraci贸n ### Enumeraci贸n de AD desde linux Si tienes acceso a un AD en linux (o bash en Windows) puedes intentar [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) para enumerar el AD. Tambi茅n puedes consultar la siguiente p谩gina para aprender **otras formas de enumerar AD desde linux**: {% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %} [pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md) {% endcontent-ref %} ### FreeIPA FreeIPA es una **alternativa** de c贸digo abierto a Microsoft Windows **Active Directory**, principalmente para entornos **Unix**. Combina un **directorio LDAP** completo con un Centro de Distribuci贸n de Claves **Kerberos** de MIT para la gesti贸n similar a Active Directory. Utilizando el **Sistema de Certificados** Dogtag para la gesti贸n de certificados CA y RA, admite autenticaci贸n **multifactor**, incluyendo tarjetas inteligentes. SSSD est谩 integrado para procesos de autenticaci贸n Unix. Aprende m谩s sobre esto en: {% content-ref url="../freeipa-pentesting.md" %} [freeipa-pentesting.md](../freeipa-pentesting.md) {% endcontent-ref %} ## Jugando con tickets ### Pass The Ticket En esta p谩gina encontrar谩s diferentes lugares donde podr铆as **encontrar tickets kerberos dentro de un host linux**, en la siguiente p谩gina puedes aprender c贸mo transformar estos formatos de tickets CCache a Kirbi (el formato que necesitas usar en Windows) y tambi茅n c贸mo realizar un ataque PTT: {% content-ref url="../../windows-hardening/active-directory-methodology/pass-the-ticket.md" %} [pass-the-ticket.md](../../windows-hardening/active-directory-methodology/pass-the-ticket.md) {% endcontent-ref %} ### Reutilizaci贸n de tickets CCACHE desde /tmp Los archivos CCACHE son formatos binarios para **almacenar credenciales Kerberos** que generalmente se almacenan con permisos 600 en `/tmp`. Estos archivos pueden ser identificados por su **formato de nombre, `krb5cc_%{uid}`,** que corresponde al UID del usuario. Para la verificaci贸n del ticket de autenticaci贸n, la **variable de entorno `KRB5CCNAME`** debe establecerse en la ruta del archivo de ticket deseado, permitiendo su reutilizaci贸n. Lista el ticket actual utilizado para la autenticaci贸n con `env | grep KRB5CCNAME`. El formato es port谩til y el ticket puede ser **reutilizado configurando la variable de entorno** con `export KRB5CCNAME=/tmp/ticket.ccache`. El formato del nombre del ticket Kerberos es `krb5cc_%{uid}` donde uid es el UID del usuario. ```bash # Find tickets ls /tmp/ | grep krb5cc krb5cc_1000 # Prepare to use it export KRB5CCNAME=/tmp/krb5cc_1000 ``` ### Reutilizaci贸n de tickets CCACHE desde el keyring **Los tickets de Kerberos almacenados en la memoria de un proceso pueden ser extra铆dos**, particularmente cuando la protecci贸n ptrace de la m谩quina est谩 deshabilitada (`/proc/sys/kernel/yama/ptrace_scope`). Una herramienta 煤til para este prop贸sito se encuentra en [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey), que facilita la extracci贸n inyectando en sesiones y volcando tickets en `/tmp`. Para configurar y usar esta herramienta, se siguen los pasos a continuaci贸n: ```bash git clone https://github.com/TarlogicSecurity/tickey cd tickey/tickey make CONF=Release /tmp/tickey -i ``` Este procedimiento intentar谩 inyectar en varias sesiones, indicando el 茅xito al almacenar los tickets extra铆dos en `/tmp` con una convenci贸n de nombres de `__krb_UID.ccache`. ### Reutilizaci贸n de tickets CCACHE desde SSSD KCM SSSD mantiene una copia de la base de datos en la ruta `/var/lib/sss/secrets/secrets.ldb`. La clave correspondiente se almacena como un archivo oculto en la ruta `/var/lib/sss/secrets/.secrets.mkey`. Por defecto, la clave solo es legible si tienes permisos de **root**. Invocar \*\*`SSSDKCMExtractor` \*\* con los par谩metros --database y --key analizar谩 la base de datos y **desencriptar谩 los secretos**. ```bash git clone https://github.com/fireeye/SSSDKCMExtractor python3 SSSDKCMExtractor.py --database secrets.ldb --key secrets.mkey ``` El **blob de cach茅 de credenciales de Kerberos se puede convertir en un archivo CCache de Kerberos utilizable** que se puede pasar a Mimikatz/Rubeus. ### Reutilizaci贸n de tickets CCACHE desde keytab ```bash git clone https://github.com/its-a-feature/KeytabParser python KeytabParser.py /etc/krb5.keytab klist -k /etc/krb5.keytab ``` ### Extraer cuentas de /etc/krb5.keytab Las claves de cuentas de servicio, esenciales para los servicios que operan con privilegios de root, se almacenan de forma segura en los archivos **`/etc/krb5.keytab`**. Estas claves, similares a contrase帽as para servicios, exigen estricta confidencialidad. Para inspeccionar el contenido del archivo keytab, se puede emplear **`klist`**. La herramienta est谩 dise帽ada para mostrar detalles de la clave, incluyendo el **NT Hash** para la autenticaci贸n de usuarios, particularmente cuando el tipo de clave se identifica como 23. ```bash klist.exe -t -K -e -k FILE:C:/Path/to/your/krb5.keytab # Output includes service principal details and the NT Hash ``` Para los usuarios de Linux, **`KeyTabExtract`** ofrece funcionalidad para extraer el hash RC4 HMAC, que se puede aprovechar para la reutilizaci贸n del hash NTLM. ```bash python3 keytabextract.py krb5.keytab # Expected output varies based on hash availability ``` En macOS, **`bifrost`** sirve como una herramienta para el an谩lisis de archivos keytab. ```bash ./bifrost -action dump -source keytab -path /path/to/your/file ``` Utilizando la informaci贸n de cuenta y hash extra铆da, se pueden establecer conexiones a servidores utilizando herramientas como **`crackmapexec`**. ```bash crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDOMAIN" ``` ## Referencias * [https://www.tarlogic.com/blog/how-to-attack-kerberos/](https://www.tarlogic.com/blog/how-to-attack-kerberos/) * [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey) * [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory) {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Apoya a HackTricks * Revisa los [**planes de suscripci贸n**](https://github.com/sponsors/carlospolop)! * **脷nete al** 馃挰 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **s铆guenos** en **Twitter** 馃惁 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
{% endhint %}