Selamlar herkese, bugün yine vadesi dolan bir zafiyetli makineyi çözeceğiz.
Çözeceğimiz makine; user kısmı kolay, yetki yükseltme kısmı ondan da kolay olan Curling makinesi olacak. Bu makinenin detaylı çözümü için hazırladığım pdf dosyasını da yine bilalkan.com/downloads kısmında bulabilirsiniz.

Çözdüğümüz en rahat makine olacağı için eşofmanları çektik üstümüze ve bir nmap taraması başlattık.

80 portu açık, hemen tarayıcıdan yürüyelim.
Tarayıcıdan makine ip adresine gittiğimizde bizi login kutucuğu da olan bir blog sayfası karşılıyor.

Hemen ilk yazıda Floris ismi göze çarpıyor. Kullanıcı adı olabileceğini düşünerek parola için brute-force öncesi ipucu arıyoruz.

Derken sayfa kaynağını görüntülediğimizde, alt kısımda secret.txt olarak verilen ipucunu görüyor ve tarayıcıdan /secret.txt dosyasına gidiyoruz.

secret.txt dosyasına gittiğimizde karşımıza Base64 ile encode edilmiş bir metin çıkıyor. Bunu bir decoder ile çevirdiğimizde Curling2018! metni karşımıza çıkıyor.
Şimdi elimizdeki Floris:Curling2018!  bilgileriyle giriş yapmayı deneyelim.

Super User olarak giriş yapabildik fakat burası bir yönetim paneli değil.
Bir dizin taraması yaparak sayfaları düzenleyebileceğimiz bir admin paneli arayalım.

/administrator dizinini bulduk şimdi oraya doğru yol alalım.

/administrator dizininde karşımıza Joomla admin paneli giriş sayfası çıktı. Yine Floris:Curling2018!  bilgileriyle zorlanmadan giriş yapıyoruz.
Hemen bir sayfayı php reverse shell ile değiştirerek shell almak gibi bir niyetimiz var, rabbim utandırmasın.

Canım öyle istediği için error.php sayfasını, pentestmonkey.net sayfasından aldığımız php reverse shell kodlarıyla değiştiriyoruz.

Bununla birlikte shell alabilmemiz için temanın yönetim ayarlarından düzenleme izinlerini aktif hale getiriyoruz.
İzinleri de aktif hale getirdiğimize göre, error.php sayfasına gidip netcat ile shell alabiliriz.

Nefes nefese kaldık ama shell alabildik. Şöyle hızlıca bir user.txt okuyalım bakalım.

“Yavaş oku kardeş” der gibi bir Permission denied hatası aldık. Sebebi ise user.txt dosyasına sahip olan Floris kullanıcısı ile değil www-data kullanıcısı ile shell almış olmamız.
Floris kullanıcısı için bir parola bulabilirsek user.txt okuyabileceğiz, aramaya başlıyoruz.

Hemen user.txt yanında password_backup isimli bir hex dump dosyası bulduk. Evirip çevirip ne olduğuna bakalım diye kendi makinemize kopyalıyoruz.

xxd aracını kullanarak bu yorucu görüntüye sahip dosyayı orijinal haline çevirdiğimizde karşımıza bir bzip2 dosyası çıkıyor.
Senin hakkından binwalk gelir diyip girişiyoruz.

binwalk -Me yeni_dosya  komutu ile tekrar tekrar uğraşmak yerine, tek seferde iç içe olan dosyaları çıkartıyoruz. Bu işlemi ben teker teker binwalk -e simdiki_dosya  diye birkaç sefer uğraşarak çıkardım ve beni bir miktar yordu.

Binwalk aracı ile ulaştığımız password.txt dosyasındaki parolayı da alarak
floris:5d<wdCbdZu)|hChXll  bilgileri ile ssh bağlantısını kuruyor ve hızlıca user.txt okuyoruz.

hızlıca admin-area klasörü altına göz atıyoruz. admin-area klasörü altında input ve report isimli iki dosya bulunmakta.

input dosyasının içeriğini bastırdığımızda sadece http://localhost url’i yazılmış olduğunu görüyoruz.
input dosyası böyleyken report dosyasını bastırdığımızda ise makineden servis edilen blog sayfasının kaynak kodları karşımıza çıkıyor.
Bu durumda input dosyasına yolunu girdiğimiz şeyler report dosyasına yazılıyorsa root.txt yolunu belirttiğimizde, yetki yükseltmeye gerek kalmadan root.txt okuyabiliriz.

input dosyasına file:///root/root.txt yolunu url olarak veriyoruz ve report dosyasını kontrol ediyoruz.

report dosyasından root.txt içeriğini okuyabildik.

Okuduğunuz için teşekkürler. Sorularınız için bilalkan.com/contact

https://www.linkedin.com/feed/update/urn:li:activity:6518814369218850816

Tags: