Merhabalar bu yazımda hackthebox platformundaki emekliye ayrılmış makinelerdene olan Bastard'ı çözeceğim.
İlk olarak, "nmap" taraması ile başlayalım.
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.
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.
İndiğinden emin olmak için Python3 sunucumuzun çıktısına bakacağız.
2-Reverse shell almak için nc.exe'yi kullanacağız.
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.
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.
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.
Adresinden binary dosyasını (MS10-059) indirebilirsiniz.
Dosyayı aynı yöntemleri kullanarak hedef sisteme indiriyoruz.
Bu adımlardan sonra SYSTEM kullanıcısı oluyoruz ve iki flag'i de okuyabiliriz.
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.
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
foxglovesecurity.com
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.
farklı uygulamaların CLSID sini kullanıp deneyeceğim.
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
)
shell'i başarıyla aldık şimdi flagleri okuyup konuyu bitireceğim..
İlk olarak, "nmap" taraması ile başlayalım.
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.
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.
İndiğinden emin olmak için Python3 sunucumuzun çıktısına bakacağız.
2-Reverse shell almak için nc.exe'yi kullanacağız.
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.
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.
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.
Adresinden binary dosyasını (MS10-059) indirebilirsiniz.
Dosyayı aynı yöntemleri kullanarak hedef sisteme indiriyoruz.
Bu adımlardan sonra SYSTEM kullanıcısı oluyoruz ve iki flag'i de okuyabiliriz.
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.
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

COM,COM+,ActiveX,OLE,MTS ve Windows DNA kavramları
COM,COM+,ActiveX,OLE,MTS ve Windows DNA kavramları C#, Visual C# ve .NET Sefer Algan
www.csharpnedir.com
(no title)
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.
farklı uygulamaların CLSID sini kullanıp deneyeceğim.
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

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