Merhaba, bu yazıda Tryhackme’de bulunan Agent Sudo makinesinin çözümünü inceleyeceğiz. Openvpn bağlantısı ile ilgili bilgi almak istiyorsanız Tryhackme CTF’deki ilk yazımızı okuyabilirsiniz. Bağlantı sağlandıktan sonra Tryhackme’de bulunan makine deploy edilir ve makinenin ip adresi öğrenilir. Bu çözümde kullandığım ip adresi 10.10.213.13 olarak belirlendi. Artık bilgi toplama aşamasına geçilebilir.
nmap -sC -sV 10.10.213.13 komutu ile port taraması yapılır. 21 ftp, 22 ssh, 80 http portunun açık olduğu görülüyor.
http://10.10.213.13 sayfasına gidildiğinde böyle bir mesajın yer aldığı sayfa çıkıyor. İnternet tarayıcıları User Agent stringi barındırır. Bu string ifadenin taşıdığı bilgiler sayesinde web siteleri yüksek performanslı kullanıcı deneyimleri sunar. Soruda gizli sayfanın bulunması isteniyor. Mesajda Agent R yazdığı için bu gizli sayfanın User Agent’i alfabedeki herhangi bir harf olabilir. Bu harfi bulmak için curl komutuyla tek tek User Agent için harfler denenebilir ama eğer aranan harf alfabenin sonlarında ise bunu yapmak zaman alacaktır. Bu komut yerine Burp Suite programını kullanarak kısa sürede bütün harfler denenebilir.
Burp Suite başlatılır. Intercept açıkken sayfa isteği yakalanır. Sağ tık, Send to Intruder ile sayfa isteği Intruder’a gönderilir.
Intruder’ın Positions sekmesinde User Agent’ın içeriğinin tanımlı olduğu kısım add butonu ile işaretlenir.
Payloads sekmesinde harflerin olduğu ilgili wordlist belirlenir ve start attack denildikten sonra User Agent’a brute force saldırısı başlatılır. C harfinde status 302(geçici yönlendirme) durum kodu alındı. Response, raw sekmesine bakıldığında location kısmında sayfa url bilgisi yansıyor.
https://10.10.97.223/agent_C_attention.php sayfasına gidildiğinde Ajan R’den Chris adına gönderilmiş bir mesaj çıkıyor.
hydra -l chris -P /usr/share/wordlists/rockyou.txt 10.10.97.223 ftp komutuyla ftp portuna Hydra aracı ile brute force saldırısı başlatılıyor ve parola kısa sürede bulunuyor.
ftp 10.10.97.223 komutuyla dosya sistemine bağlanır. Chris kullanıcı adı ve parolası girildikten sonra başarılı bir bağlantı sağlanır.
mget * ile bütün dosyalar kendi makinemize alınır. Dosyalar bir png, jpg ve txt’ten oluşuyor.
cat To_agentJ.txt dosyasının içeriğine bakıldığında Ajan C’den Ajan J’ye gönderilmiş bir mesaj var.
binwalk -e cutie.png ile cutie.png dosyası analiz edildiğinde içeriğinde bir zip dosyası gizlendiği ortaya çıkıyor.
cutie.png dosyasının içerisindeki dosyalara bakıldığında tek önemli dosyanın şifrelenmiş 8702.zip arşivi olduğu görülüyor. Bu zipin parolasını bulmak için JohntheRipper aracı kullanılabilir.
zip2john 8702.zip > hashjohn.txt komutuyla zip dosyası, John the Ripper aracı ile brute force gerçekleştirmek için txt formatı haline getirilir.
john hashjohn.txt –wordlist=/rockyou.txt komutuyla brute force saldırısı gerçekleştirildiğinde zipin parolası başarılı bir şekilde bulunuyor.
7z x 8702.zip komutu ile dosya çıkartıldığında yeni bir To_agentR.txt dosyası geliyor. Bu dosyanın içeriğine bakıldığında bir resimden bahsediliyor ve mesajda bir hash değeri var.
Bu hash büyük ihtimalle base64 ile kriptolanmış olabilir.
echo hash | base64 -d komutu ile şifreleme çözüldüğünde A***51 parolası bulunuyor.
Hash’i içeren To_agentR.txt mesajında bir resimden bahsediliyor ve base64 ile bulunan bir string cute-alien.jpg’in parolası olabilir. Resimlerin içerisine gizlenmiş metinlerin bulunmasını sağlayan Steghide aracı ile cute-alien.jpg incelenmek istendiğinde
steghide extract -sf cute-alien.jpg komutu çalıştırılır. Parola olarak hashi çözümleyerek bulunan A***51 parolası girildiğinde Chris’in James adında birine gönderdiği bir mesaj ortaya çıkıyor. Bu mesajda James’e giriş parolasının h*********! olduğu söyleniyor.
ssh james@10.10.46.195 komutu ile bağlantı gerçekleştirilir. James’in parolası olarak cute-alien.jpg’in içerisindeki gizli mesajda bulunan h*********! parolası girildiğinde başarılı bir bağlantı sağlanıyor.
Root flag’ı bulmadan önce burada kaza fotoğrafının ismi nedir diye bir sorunun cevaplanması gerekiyor. Biraz araştırma yapıldığında /home/James dizininde Alien_autospy.jpg adında bir resim bulunuyor. Bu görseli kendi yerel makinemizde rahatça incelemek için
scp james@10.10.46.195:/home/james/Alien_autospy.jpg /home/kali/agentsudo/pic komutuyla taşınır. Parola, ssh parolası ile aynı h*********!
Bu görsel açıldığında bir uzaylı görseli karşımıza çıkıyor. Bu görseli Google görseller aracılığıyla aratıldığında bu uzaylı otopsisinin Roswell’de yapıldığı öğreniliyor ve ikinci soruda böylelikle cevaplanmış oluyor.
Root flag’ını bulmak için root yetkisi elde edilmesi gerekli bunun için sudo -l komutu kullanıldığında /bin/bash özel kısıtlaması ile karşılaşılıyor. Soruda bizden bir exploit adı istenmiş bu yüzden bu kısıtlamayı bypass etmek için bir exploit bulmak gerekiyor.
Google’da kısıtlama adı ve exploit diye aratıldığında ilk sonuçta sudo 1.8.27 exploiti bulunuyor. Soruda bizden CVE adı girilmesi isteniyor.
Exploitin içerisindeki bir kod satırında bulunan sudo -u#-1 bash komutunu kullanmak yeterli olur. Exploitin bütününe ihtiyaç duyulmadan root yetkisi elde ediliyor.
cd /root
cat root.txt ile root flag’ı da bulunur.