Curling – Hack The Box

Merhaba!!!

Dün Hack The Box‘da emekliye ayrılan Curling makinesinin çözümünü paylaşacağım. Öncelikle makinemizin ağ haritasını çıkartmak ile başlayalım.

Hedef makinemizde 80 ve 22 portları açıkmış. Web tarayıcımızda incelemeye başlıyoruz.

Yazıların paylaşıldığı bir web sitesi. CTF’lerden alışkanlık olarak sayfaların kaynak kodlarına bakarım. Burada da bakınca birşeyler veriyor.

secret.txt adında bir dosya bulunmakta. String’e bakıldığında base64 ile encode edildiği anlaşılıyor.

Linux terminalimizde decode edip parolamızı alıyoruz. İlk önce ssh ile denedim ama bu kadar kolay değilmiş. Web tarafında devam ediyoruz.

Web sitesinin dizinlerini tarayalım.

Her zamanki komutuz ile taradıktan sonra /administrator dizinini görüyoruz ve giriş yapmaya çalışıyoruz.

Parolamız var ama kullanıcı adımız yok. Yazılar arasında biraz gezindikten sonra ilk yazının sonunda Floris ismine ulaşıyoruz. Ve giriş yapıyoruz.

Joomla 3.8.8 versiyonu sistemde kuruluymuş (Sağ alt kısımda). Buradan sonra aklıma direkt dosya yükleyip veya herhangi bir php dosyanın içeriğini kendi php reverse shell’imle değiştirerek shell almayı denedim. Bazı linux sistemlerde default olarak /usr/share/webshells/php/php-reverse-shell.php şeklinde bulunuyor.

Önce nc ile dinleyerek ve değiştirdiğim php sayfasına giderek shell’i alıyoruz. Burdan sonra yetki yükseltme adımlarına geçiyoruz.

/home/floris dizini içinde birkaç dosya bulunmakta. Sadece password_backup adlı bir dosyayı okuma iznimiz bulunmakta. Bazı verilerin hexdump‘ı alınmış hali.

Rahat işlem yapabilmek için nc ile kendi local’ime alıyorum dosyayı.

Sonra backup dosyasından password.txt adlı bir dosyayı çıkarttım. Bu kısım Linux 101 olduğu için eğer bilmiyorsanız buradaki örnekleri çözerek daha iyi öğrenebilirsiniz.

Aldığımız parola ile ssh’a bağlanıyoruz. Ve root olmak için biraz daha inceliyoruz.

/home/floris/admin-area içinde iki dosya’yı fark ediyoruz.

Dosyaların içeriğine baktığımızda input dosyasında bir url bulunmakta. Reportta ise curl http://127.0.0.1 komutunun çıktısı bulunmakta. Root yetkisi ile çalışıyor ve bizim yazma yetkimiz var.

Burada url kısmına okumak istediğimiz dosyanın yolunu vererek okumayı deneyebiliriz.

Biraz bekledikten sonra root yetkisiyle curl file:///root/root.txt çalıştıktan sonra report kısmına flag’imiz düştü

Okuduğunuz için teşekkürler. Yazılarımda herhangi bir hata varsa bildirmekten çekinmeyiniz…

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir