HackTheBox - Manager - 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
26
Tepkime puanı
40
Puanları
13
Merhaba! Bugün size HackTheBox platformunda emekliye ayrılmış makinelerden biri olan “Manager” makinesinin çözümünü anlatacağım. Keyifli okumalar!


İlk olarak, numaralandırmaya nmap taraması ile başlıyorum.

1.jpg


Burada LDAP portlarının açık olduğunu görüyorum ve bir nmap scripti kullanarak numaralandırıyorum.

2.jpg


Numaralandırmanın sonucunda, sunucuya ait domain adresini buluyorum: “manager.htb”.

“lookupsid.py” aracını kullanarak sunucudaki kullanıcıların kullanıcı adlarını numaralandırıyorum. Aynı işlemi “kerbrute” aracı ile bir kullanıcı adı listesi (xato) bulup da yapabilirdim, ancak ben burada “lookupsid.py” ‘ı tercih ediyorum.

3.jpg


Şifresiz olarak numaralandırma yapmama izin verdi, artık serverdaki kullanıcı adlarını biliyorum.

4.jpg




Çok fazla kullanıcı elde ettiğim için, “rockyou.txt” gibi büyük wordlistleri kullanmak yerine, kullanıcı adı ve şifrenin aynı olabileceği ihtimalini değerlendirip, şifre listesine de kullanıcı listesini ekliyorum.

5.jpg


operator kullanıcısının şifresini elde ediyorum ve sonrasında bu bilgilerle SMB yi numaralandırıyorum

6.jpg

7.jpg


SMB’den de herhangi bir ipucu bulamadım. Şimdi elimde bulunan kullanıcı adı ve şifre ile MSSQL’e giriş yapmayı deniyorum.

8.jpg


Elimdeki bilgilerle MSSQL serverine giriş yapabiliyorum. Burada kullandığım -windows-auth parametresi direkt olarak Windows’un kimlik doğrulama sistemini kullanıyor ve bu sayede giriş yapabiliyorum. (Bu parametre default olarak kapalıdır ve bu soruda eklemazseniz MSSQL servisine giriş yapamazsınız.)

MSSQL Server’ında direkt olarak server içerisinde kod yürütme komutu olan “xp_cmdshell” i aktif etmek için “enable_xp_cmdshell” yazıyorum, ancak buna yetkim olmadığını görüyorum.

9.jpg


Bir diğer işime yarayabilecek olan komutlardan olan “XP_DIRTREE” yi deniyorum. Bu komut, belirli bir dizindeki tüm dosyaları listeler (ls). Bu komut ile “C:\Users\Raven” adlı kullanıcının dizinine gitmek istiyorum, ancak buna da yetkim yok. Bu noktada, aklıma 80 portunun açık olduğu fakat numaralandırdığımda elime hiçbir şey geçmediği geliyor ve IIS kök dizinine bakıyorum.

10.jpg



Burada dikkatimi bir zip dosyası çekiyor ve bunu terminalimden indiriyorum.

11.jpg


Zip’i çıkarttıktan sonra farklı bir dosya çıkıyor ve bunu inceliyorum.

12.jpg


Dosyanın içerisinden kullanıcı adı ve şifreyi buluyorum. Bu bilgileri kullanarak sisteme giriş yapacağım.

13.jpg


Giriş yaptıktan sonra “Raven” adlı kullanıcının masaüstü dizinine gidip “user.txt” dosyasını alıyorum.

14.jpg


Bu kısım benim için kolaydı, ancak Domain Admin olmak için çok çaba sarf ettim 🙂

İlk olarak BloodHound ile serveri enumerate ettim. Elime hiçbir şey geçmeyince, bu sefer AD içerisindeki sertifikaları kontrol etmek için “certipy-ad” (certipy) ve “Certify.exe” adlı araçları kullandım.

Active Directory’de sertifikalar, güvenliği arttırmak ve ek kimlik doğrulama yöntemleri sağlamak amacıyla kullanılır. Bazen bu sertifikalar yanlış yapılandırılabilir. Bu makinemizde de yanlış yapılandırma var; Raven kullanıcısı sertifika üzerinde “Manage CA” yetkisine sahip ve bu da ESC7 olarak adlandırılıyor. Aşağıda daha detaylı olarak bilgi verdim.

Şimdi sömürüye başlayalım. İlk olarak “Certify.exe” dosyasını server’a upload edelim.

16.jpg


Upload ettikten sonra dosyayı çalıştırıyorum.

17.jpg


Bu çıktı, bana zaafiyetli sertifikaları getirecektir.

18.jpg


Buradaki yanlış yapılandırma, bizi Domain Admin seviyesine yükseltecektir. Aynı işlemi “Certify.exe” yerine “certipy” ile gerçekleştirelim.


19.jpg


Buradaki çıktı, bize daha fazla bilgi veriyor. Domain Admin olmayan bir kullanıcının bir CA üzerinde “manage” yetkisinin olması ESC7 olarak (sadece bununla sınırlı değil, ileride gerekli diğer önkoşulu açıklayacağım) adlandırılıyor. Bunu herhangi bir şekilde kötüye kullanmanın bir yolu yok, ancak bu yetki sayesinde istekleri düzenleyebiliriz.

Konuyla ilgili daha geniş çaplı bilgiyi buradan öğrenebilirsiniz.

İlk olarak, CA üzerinde “manage” yetkisi olan kullanıcıyı yönetici olarak ekleyelim.

20.jpg


Şimdi, yukarıda bahsettiğim bir diğer önkoşula geçelim. SubCA template’i, bu template’i etkinleştirmek ESC7 olarak kategorize edilmesi için bir önkoşuldur.

21.jpg


Saldırıya geçmek için gerekli olan tüm önkoşulları gerçekleştirdik. SubCA şablonuna bağlı bir sertifika isteği yaparak başlıyoruz. Bu istek reddedilecektir, ancak bize bir istek numarası verilecek ve bunun yanında bu istek numarasının anahtarı da verilecektir.

23.jpg


Sahip olduğumuz “Manage CA” yetkisiyle başarısız sertifika isteğini farklı parametrelerle düzenleyebiliriz.

24.jpg


Burada her ne yaparsam yapayım, bu işlemi başarılı bir şekilde gerçekleştiremedim. Alternatif olarak, buraya kadar olan adımları tek bir komut halinde yazdığımda, bu sorun çözüldü.

25.jpg


Şimdi son olarak, istekte olan sertifikayı alabiliriz.

26.jpg


İstediğimiz sertifika “administrator.pfx” olarak kaydedildi, şimdi bunu kullanalım.

27.jpg


Burada “Clock Skew too great” adında bir hata aldım. Bu hatanın anlamı şudur: Kerberos biletlere koyduğu zaman damgasının doğru çalışması için zamanın senkronize olmasını ister. Sistemler arasında zaman farkının belli bir sınırdan fazla olması “Clock Skew too great” hatasını verir.


Bu hatanın önüne geçmek için zamanı hedefimize göre uyarlıyoruz.

28.jpg



Bu işlem sonrasında “Administrator” kullanıcısının hash’ini almayı başardık.

29.jpg


Eğer yukarıdaki işlemler işe yaramazsa, aşağıdaki komutu çalıştırarak, ardından bu işlemleri yaparsanız başarılı bir şekilde “Administrator” kullanıcısının hash’ini alacaksınız.

timedatectl set-ntp 0

Hash başarılı bir şekilde alındıysa, “pass-the-hash” saldırısı ile sisteme giriş yapabiliriz.

30.jpg


Buraya kadar okuduğunuz için teşekkür ederim. :)
 

Ekli dosyalar

  • 15.jpg
    15.jpg
    131.9 KB · Görüntüleme: 85
  • 22.jpg
    22.jpg
    63.3 KB · Görüntüleme: 93
Son düzenleme:
Geri
Üst