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

VulnHub

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Ç


Hüseyin Erdem