HackTheBox - Bastard - Writeup

  • Konbuyu başlatan Konbuyu başlatan mao7un
  • Başlangıç tarihi Başlangıç tarihi

mao7un

VM Creator
Moderatör
Katılım
22 Ocak 2024
Mesajlar
27
Tepkime puanı
40
Puanları
18
Merhabalar bu yazımda hackthebox platformundaki emekliye ayrılmış makinelerdene olan Bastard'ı çözeceğim.

İlk olarak, "nmap" taraması ile başlayalım.

1.png


Direkt olarak 80 portunu numaralandırmaya geçiyorum.
Karşıma Drupal CMS çıkıyor. Sayfa kaynağına baktığımda Drupal 7 olduğunu görüyorum.


Exploitini kullanıyorum bu exploit, kimlik doğrulaması yapmadan uzaktan kod yürütmemizi sağlıyor.

2.png


Evet, uzaktan kod çalıştırabiliyoruz, şimdi amacımız bir ters shell almak. Önceki makine çözümlerimden birini okuduysanız, bunun nasıl yapılacağını biliyorsunuzdur, ancak yine de adım adım göstereceğim.

1. İlk olarak, hedef makineye nc.exe'yi (genellikle 64 bit olanı) göndermemiz gerekiyor. Bunun için bir Python sunucusu kuruyorum ve Drupal 7'den yararlandığım RCE (Uzaktan Kod Çalıştırma) ile sisteme indiriyorum.

3.png


İndiğinden emin olmak için Python3 sunucumuzun çıktısına bakacağız.

4.png


2-Reverse shell almak için nc.exe'yi kullanacağız.

5.png


Sisteme girebildik, şimdi sırada SYSTEM kullanıcısı olmak var. Bunun için iki ayrı yol göstereceğim.

Privilege Escalation 1.Yol (Kernel)

İlk olarak, hedef sistemde tüm sistem bilgilerini almak için `systeminfo` komutunu çalıştırıyoruz.

6.png


Burada işletim sisteminin adını Google'da aratınca bile çok fazla exploit çıkıyor, ancak bunu otomatik olarak gerçekleştirmek istiyorum. Bunun için Wes (Windows Exploit Suggester) aracını kullanacağız. Wes'i buradan indirebilirsiniz.

"systeminfo" komutunun çıktısını kendi makinemizde bir yere kaydediyoruz, bu bize işimize yarayacak.

Çalıştırmadan önce, ilk olarak bir veritabanı dosyası oluşturmamız gerekiyor. Wes, exploitleri bir veritabanında tutar, bu veritabanı olmadan herhangi bir tespit yapamaz.

7.png


2024-01-25.mssb.xls adında bir dosyayı dışa aktardı.

Şimdi bu dosyayı çalıştırabiliriz. Ben bu yazıda bu sömürüyü (MS10-059) kullanacağım, siz diğerlerini de deneyebilirsiniz.

8.png


Adresinden binary dosyasını (MS10-059) indirebilirsiniz.

Dosyayı aynı yöntemleri kullanarak hedef sisteme indiriyoruz.

9.png


10.png



Bu adımlardan sonra SYSTEM kullanıcısı oluyoruz ve iki flag'i de okuyabiliriz.


11.png



Privilege Escalation 2.Yol (Token İmpersonation)

Sistem içerisinde yetkilerimizi gösteren komutu çalıştırdığımızda, karşımıza `SeImpersonatePrivilegeToken` yetkimizin olduğunu görüyoruz.

12.png


Bunu gördüğümde, direkt olarak bir meterpreter shell'i alıp 'incognito' modülünü yükledim. Bu şekilde bu yetkiyi sömüremedim. Sonrasında PrintSpoofer64.exe ikilisini indirip komut satırına 'PrintSpoofer64.exe -i -c cmd.exe' yazsam da gene bu yetkiyi sömüremedim. Geriye sadece token manipülasyonunda kullanılan Potato saldırıları kaldı (Hot, Rotten, Rogue, Juicy).

bunların arasından işletim sistemi eski olduğu için (Windows Server 2008) ve JuicyPotato Windows Server 2019 ve Windows 10 gibi daha yeni işletim sistemlerinde çalışmadığı için bana daha yakın geldi (Buna rağmen bunu rogue ve rotten potato saldırılarından sonra denedim :( )

JuicyPotato SeImpersonatePrivilege veya SeAssignPrimaryTokenPrivilige yetkilerinden herhangi birine sahip bir kullanıcıyı üst kullanıcılardan birinin kimliğine bürünmesini sağlar. Peki iç işleyiş nedir (araştırma sonucunda edindiğim bilgileri sizinle paylaşacağım)

COM (Component Object Model) objelerinin ve DCOM (Distributed Component Object Model) mekanizmasının bir zafiyetini kullanır. Bu zafiyet, bir düşük ayrıcalıklı kullanıcı hesabının yüksek ayrıcalıklı bir COM nesnesi başlatmasına izin verir. Bir COM nesnesinin sınıf kimliğini (CLSID) değiştirmek düşük ayrıcalıklı bir kullanıcının bir COM nesnesi başlattığında, aslında yüksek ayrıcalıklı bir işlem başlatmasını sağlar. Yüksek ayrıcalıklı bir işlem başlatıldığında, JuicyPotato, bu işlemin token'ını alır ve istenilen hedefe erişim sağlayacak şekilde token'ı değiştirir. Bu şekilde üst yetkide bir kullanıcı taklit edilir .


Daha detaylı bir açıklama için




sitelerini ziyaret edebilirsiniz.


Şimdi sömürümüze gelelim ilk olarak

Buradan binary dosyayı indiriyoruz.

Bu site içerisinde verilen CLSID listesinden bir CLSID kullandım (BITS uygulaması) ama başarısız oldum.


13.png


farklı uygulamaların CLSID sini kullanıp deneyeceğim.

14.png


Başarılı! burada CLSIDlerin bulunduğu siteye gidip kendi işletim sistemimiz olan (Windows Server 2008) 'ı seçerek uygulamaların CLSIDlerine ulaşabiliriz ve ben bu örnekte winmgmt adlı uygulamanın CLSIDsini kullandım (birçoğu çalışıyor sadece çalışmayanı göstermek istedim :) )

15.png



shell'i başarıyla aldık şimdi flagleri okuyup konuyu bitireceğim..


16.png
 
Geri
Üst