CTF linki: https://app.hackthebox.com/machines/MetaTwo

Hackthebox tarafından sağlanan ip üzerinde çalışan servisleri tespit etmek ve karşı makine hakkında fikir sahibi olmak için hedef makineyi tarıyoruz.

nmap -sV -sC 10.10.11.186

55d8bbde8c00789008f78880adc5fbf5.png

Karşı tarafın 21. portunda FTP servisi, 22. portunda SSH servisi, 80. portunda ise http servisi yani bir web sitesi çalıştığını görüyoruz. Ayrıca karşıda bir WordPress web sitesi olduğunu ve bu web sitesinin 5.6.2 sürümünü çalıştırdığını görüyoruz.

7a1f8069e8151dfc5c198839291bb67b.png

Bize verilen IP’yi tarayacımızda açtığımızda “http://metapress.htb/” web adresine yönlendirdiğini görüyoruz. Bizim elimizde bir IP adresi var fakat karşı tarafta bir domain çalışmakta bu IP adresini bilgisayarımızda domain adresine yönlendirmemiz gerekmekte. Bu sebeple “/etc/hosts” dosyasını düzenlememiz gerekiyor. sudo nano /etc/host

6dd7d8b73d662ae918b2d9f20be61403.png

Web sitesine girdiğimizde bu ekranla karşılaşıyoruz ve bu ekranda bir randevu sistemine yönlendiren bir link olduğunu görüyoruz

ce832d8ec9f827b508c5e52d55023a69.png

Bu randevu sistemi bir eklenti ile çalışmak zorunda, bu eklentinin sürümünü bularak bu sürümde herhangi bir zafiyet olup olmadığını öğreneceğiz.

f82b8607196691ed56f9b3c674cb55f8.png

Sitenin kaynak koduna bakarak eklenti sürümünü görebiliriz.

c3d2d4dfd43458dba1b7618d174b6a68.png

Bu sürümü internette aratarak zafiyet arıyoruz.

https://wpscan.com/vulnerability/388cd42d-b61a-42a4-8604-99b812db2357 5a616b1f0e22a982733f5c7e6d239e49.png CVE-2022-0739

Aratınca karşımıza bir SQL Injection zafiyeti çıkıyor. Ve CVE’sini internette aratarak bu zafiyeti sömüren bir python kodunu buluyoruz.

https://github.com/destr4ct/CVE-2022-0739

Bu python kodunu çalıştırmak için nonce bulmamız gerekiyor. Bunun için çalışan servisin yine kaynak kodunda “nonce” aratıyoruz.

26cd298a3e481e1c99d322fa17a96d9b.png

Kodumuzu çalıştırıyoruz, admin ve manager kullanıcılarının SQL sunucsunda şifrelenmiş olarak depolanan hallerini elde ediyoruz. Bunları kullanmadan önce bruteforce yöntemi ile asıl şifreyi bulmamız gerekiyor.

2bbc0cbb9a51d12eb70121bfe93b1242.png

Admin kullanıcısı için herhangi bir eşleşme bulamıyoruz fakat manager kullanıcısı için şifreyi bize kullandığımız araç veriyor.

765b0709340547631192c42c841108a0.png

Elde ettiğimiz şifre ve kullanıcı adını kullanarak sitedeki manager kullanıcısına giriş yapıyoruz.

06c0c4af07f14c67cb31dd14d8d38657.png

Manager kullanıcısının sitede çok yetkisinin olmadığını görüyoruz. Ama siteye dosya yükleyebiliyoruz, en başta bulduğumuz wordpress sürümünün eski olduğu için zafiyetli olabileceğini düşenerek bu sürümle alakalı zafiyetleri internette aratıyoruz.

25cd62d725bf1bb1c4860d439677691f.png

https://blog.wpsec.com/wordpress-xxe-in-media-library-cve-2021-29447/

Sitede verilen yönergeleri takip ederek evil.dtd ve payload.wav dosyalarını oluşturuyoruz. Daha sonra php sunucusu başlatıp wav dosyamızı karşı tarafa yüklüyoruz.

72d46dc40aaa4e995daba3bf81818647.png c75a8564a3b899a2c66103680f128df3.png

Elde ettiğimiz veri base64 formatında olduğu için decode ediyoruz.

f7def063623f9af9c4f8dcb460a08586.png

Karşı tarafta dosya okuyabiliyoruz, o zaman wordpress web sitelerinin önemli bilgilerini tutan “wp-config” dosyasını okuyarak kayıtlı kullanıcıların giriş bilgilerini elde edebilriz.

a4b0c8239d45304c06db27f75d1d290d.png

Kodumuzu tekrar çalıştırıp decode ettiğmizde FTP sunucusu için giriş bilgilerini buluyoruz.

8f9d64b86ef8ca155f13451aea433a71.png

FTP sunucusna giriş yapıp içinde bilgiler barındırabilecek dosyayı kendi bilgisayarımıza indiriyoruz.

5dfa6eba4ab6a6a314349f4be794d0cb.png

Bu dosyaya baktığımızda SSH giriş bilgileri elde ediyoruz.

00785069dcc6240e788f1a624fda101f.png

Bilgileri kullanıp giriş yaptığımızda ilk flagimizi buluyoruz.

cf083896af4842b95720873f9ba7e87f.png

Daha sonra home klasörümüze baktığımızda .passpie isimli bir klasör buluyoruz. Passpie isimli bir şifre yöneticisi uygulamasının karşı tarafta kurulu olduğunu görüyoruz.

f3ef1c1fa96960d46b27d8567a0f6c2f.png

“.keys” dosyasındaki PGP anahtarını alıp bilgisayarımızda key adlı dosyaya kaydediyoruz.

329a38dad80dca20eceba09cbf89864b.png 0a12771fcbfaaa41ee88d44f0c327e90.png

Önce gpg2john adlı aracı kullanarak bu private keyi hash formatına çeviriyoruz. Ve john ile bruteforce yöntemiyle şifreyi elde ediyoruz.

c969425d78cb4394be101dddb7f84a43.png

Bu elde ettiğimiz şifre passpie’ın şifresi. Bu şifreyi kullanarak passpie’daki kayıtlı kullanıcı giriş bilgilerini elde ediyoruz. Sonra bu şifreyi kullanarak root kullanıcısına giriş yapıp root flagimizi alıyoruz.

378902ba001aca78892db89b2be2f4cc.png 6e99989eb38bec4b03e93749f03b07c8.png

Eren İşlek