Wallaby's Nightmare Walkthrough
Selam, Wallaby’s: Nightmare (v1.0.2) sanal makinesinin tam çözümünü yaptık, sizlerle paylaşmak istedik. Keyifli okumalar.
Wallaby’s: Nightmare (v1.0.2)
VM hakkında ayrıntılı bilgi alabileceğiniz ve indirme bağlantısını bulabileceğiniz link aşağıdadır
VM çözümü
İşe her zamanki gibi maksimum özgüvenle, hedef tespiti ve port tarama ile başlıyoruz.
ve hedef sistemimizin 192.168.1.22 IP adresinde ve SSH(22) , HTTP(80) TCP portlarının açık ve IRC(6667) portununda filtreli bir şekilde hizmet verdiğini görüyoruz. IRC ile uğraşmak bana göre bir dert olduğu için hiç denemeden HTTPye yöneliyoruz. Default portunda hizmet verdiği için port belirtmeden, doğrudan IP adresini tarayıcımıza yazarak bağlanabiliyoruz ve bir kullanıcı adı ile üye oluyoruz (aucc). Bizi, başımıza geleceklerden haberdar eden şu ekran karşılıyor.
Start the CTF! diyerek insanlık için küçük, akıl sağlığımız için büyük bir adım atıyoruz.
gelen sayfa gözümüzü korkutmuyor bile, yukarıdaki ?page= i farkedince “Hadi canım!” diyip passwd dosyasını görmeye çalışıyoruz.
bikaç deneme daha yapalım derken ensemizden bizi yakaladığı gibi “Nereye? Kolay mı geldi?” diye bir yazı gösteriyor.
başa dönelim demeye kalmadan sayfanın yerinde olmadığını görüyoruz.
hemen panikle nmapin kapısına tekrar gelip.
60080 TCP portunda httpyi görünce
gibi bir sitemle tarayıcımıza tekrar dönüyoruz.
Sayfamız değişmiş ama sorgu hala çalışıyor mu diye denememizle “bu muydu güvenlik” dememiz bir oluyor.
ilk sayfada neden Fuzzing is your friend. dediğiyle ilgili kafamızda şimşekler çakıp,
dirb http://192.168.1.22:60080/?page= /usr/share/dirb/wordlists/common.txt
ile sayfaya hazır bir wordlist ile dictionary based attack başlatıyoruz
bu çıkan adresleri denediğimizde ?page=indexte ilk kayıt olduğumuz sayfayı, ?page=homeda da varsayılan olarak açılan sayfayı görüyoruz. ?page=.git/HEAD‘den bir şey çıkacak diye ümitlensek de bu ümidimiz çok sürmüyor. ?page=contact‘ta önemli bir şeyler bulamayıp ?page=mailer da ipucunu alıyoruz.
ipucundan hareketle, adresimizi komut verebilecek hale getiriyoruz.
hatta bir ara abartıp:
kendimize güldürtüp, demek başkalarıda deniyormuş ki bunu yazmışlar diyerek teselli bulmaya çalışıyoruz. O depresyonla IRC’ye razı olsak bile Irssi ‘den
irssi -c 192.168.1.22 -p 6667
ile bağlanmayı denediğimizde Connection Timed Out hatasıyla o bize razı olmuyor. Damarımıza bastıklarından olsa gerek pentestmonkey‘den reverse shell beğenip python’u görünce
Kali Linux’tan
nc -lvp 1234
ile 1234 portunu dinlerken, kodu kali makinemizin IP adresine göre düzenleyip acımadan kullanıyoruz ve bilgi toplamaya başlıyoruz.
yine bir zaafiyetli makine olduğu için tüm kullanıcılara verilmiş iptables’ı yönetme iznini kullanarak irc ye dışarıdan yolladığımız paketlerin drop edildiğini görüyoruz ve drop eden bu kuralı siliyoruz.
irssi -c 192.168.1.22 -p 6667
ile yeniden bağlanmayı denediğimizde bağlanıyoruz ve
/list
ile kanalları listeleyip,
/join #wallabyschat
ile wallabyschat kanalına katılıyoruz.
.help
ile seçeneklerimizi listeleyip
bize özelden gönderdiğini söyleyince
/window 3
ile yolladığı seçeneklere bakıyoruz
bunların hangisi bizim işimize yarar diye baktığımızda run dikkatimizi çekiyor.
/window 2
ile yeniden kanala dönüp run diyerek çalıştırmak istediğimizde hiçbir tepki almıyoruz ve /run ile .run ‘ı da deniyoruz. Yalnızca .run ‘da bize Waldo olmadığımızı söylüyor. “Oluruz canım dertettiğin şeye bak” deyip
/nick waldo
dediğimizde tepki dahi vermiyor çünkü zaten kanalda bir waldo var. Onu atmayı denediğimizde de yetkimizin olmadığını söylüyor.
işler burada geriye dönmemiz gerektiğini söylüyormuş. yeniden python reverse shell ‘i ile bağlandığımız terminale gelirsek ve
sudo --list
yaparsak vim ile bir dosyanın waldo adına “parola sormadan” açılabildiğini görmüş oluruz:
ile vim editörü üzerinden bash ‘e sh ‘a kısacası yeniden shelle çıkabiliriz. Zaten herhangi bir metin editörünü, böylesine gerçek olmayan bir terminalde kullanmamız malesef mümkün değil. Ben bireysel seçimim olarak yeni bir sayfa açmayı tercih ederek yeni bir reverse shell ile başka porttan(2017) devam ediyorum.
ve şuan waldonun nasıl olup da IRC kanalına bağlı olduğunu öğrenmek için
who
ile login olmuş kullanıcıları ve neler yaptıklarını listeliyoruz.
pkill tmux
ile de waldo hesabında bulunduğumuz için bu çalışan tmux işlemini durduruyorum.
irssi ‘ye döndüğümde waldonun çıktığını belirtiyor.
/nick waldo
ile nickname’imizi waldo yapıp .run ‘ı çalıştırmaya çalıştığımızda beklediğimiz cevabı alıyoruz. Sürekli .run yazmamak için yine bir reverse shell ile mide bulandırarak bağlantımı bu sefer 1996 portundan sağlıyorum.
bütün bıkkınlığımızla wallaby kullanıcısında
sudo --list
çıktısını gördüğümüzde sonda olduğumuzu anlıyoruz çünkü hiçbir sudo parolası istemiyor. En mantıklısını yapıp,
sudo su -
ile root oluyoruz,
find / -name "flag.txt"
ile flag’ımızı /root dizininde bulup cat ile bastırıyoruz.
FLAG
BU CTF’DEN ÇIKAN SONUÇ