Yusuf Can Çakır tarafından 1 Şubat 2021 tarihinde yazılmıştır.
Merhabalar. Bugün sizlere Tryhackme’de bulunan Lian_Yu isimli odanın çözümünü anlatacağım.Odamız Easy seviyesinde. Makinemizi çalıştırıp IP adresini alalım ve hızlıca Nmap taramasına başlayalım.
Gördüğünüz gibi 4 tane port açık. Bunlardan biri 80 yani HTTP portu. Siteye giriş yapalım ve biraz inceleyelim.
Site içerisinde pek bir şey bulamadık. Arrow dizisine ait birkaç replik var sadece. Hemen vakit kaybetmeden Gobuster aracını kullanarak dizin taramasına başlayalım.
Gobuster ile dizin taraması yaptığımızda “/island” şeklinde bir alt dizin buldu. Bu sayfaya gidip kaynak kodlarına baktığımızda “I wasn’t Expecting You at this Moment. I will meet you there” yazısı ve onun yanında yorum satırı içinde bulunan “Go! Go! Go!” yazısı dikkatimi çekti ve alt dizinle beraber tekrar siteyi Gobuster aracına göndermeye karar verdim. Gözden kaçırdığımı sandığım aşağıda beyaz renkle yazılmış “vigilante” yazısını da bir yere not alıyorum tabi ki.
Düşündüğüm gibi Gobuster aracı bana yeni bir alt dizin verdi. Bu alt dizine “/island/2100” linkine giderek ulaşabildim.
Yeni bulduğumuz dizinin kaynak kodlarına baktığımda yine yorum satırı içerisinde “you can avail your .ticket here but how?” yazan bir yer vardı. Yani .ticket uzantılı bir yer daha vardı ama neredeydi? Bunu yine Gobuster aracını kullanarak –x parametresiyle bulabilmemiz mümkündü.
Gobuster aracına “gobuster dir –url IPADRRESS/island/2100 –w WORDLIST –x .ticket” yazdım ve çok geçmeden dizin önüme belirdi.
İlgili linke gittiğimde önümde ne olduğunu anlamadığım bir kod vardı. CyberCheff sitesinin Magic özelliğini kullanarak şifreyi kırdım ve Base58 olduğunu anladım.
/island dizini içerisindeki “vigilante” yazısını kullanıcı adı gibi düşündüm ve şimdi bulduğumuzu da şifre olarak düşünerek ftp bağlantısı yapmayı denedim ve bingo! FTP bağlantısı olmuştu. Burada karşımıza 3 adet resim çıkıyor. Hepsini tek tek indirdim ve incelemeye başladım.
FTP Bağlantısı
FTP dizini içerisinde bir üst konuma geçiş yaptığımda iki farklı kullanıcı olduğunu ve bunlardan birinin bizim giriş yaptığımız “vigilante” kullanıcı olduğunu gördüm. Ama farklı bir kullanıcı daha vardı. Bu kullanıcı adını da bir kenara not ettikten sonra resimleri incelemeye başladım.
aa.jpg isimli dosyayı steghide ile açmayı denediğimde şifre sorması beni iyice düşündürdü. Leave_me_alone.png isimli dosyanın hex kodlarına baktığımda ise hex header kısmının PNG olmadığını gördüm. Ufak bir araştırma yaparak PNG Hex Header kısmının nasıl olacağını öğrendim ve Hex Editor kullanarak başlığı ona göre düzenledim.
Gördüğünüz gibi artık header kısmı .PNG şeklinde olmuştu ve resim açılmıştı. Açılan resim üzerinde Sparcatus’ün efsanevi karakteri Crixus ve yanında da aa.jpg dosyasına ait olduğunu düşündüğüm şifre vardı.
Şimdi aa.jpg resmini steghide ile açtım ve karşıma bir zip dosyası verdi. Dosyayı açtığımda 2 tane txt belgesi vardı.
Shado isimli dosyanın içerisinde bir şifre vardı.
SSH portunun açık olduğunu hatırlayarak biraz önce bulduğum “slade” kullanıcısı ve bu şifre ile SSH bağlantısı denedim. Bağlantıyı sağladıktan sonra “ls” komutunu kullanarak içerikleri listeledim ve Bingo! User flagı karşımdaydı.
Root şifresi olmadan başka hangi dosyaları okuyabileceğimi görmek için “sudo –l” komutunu kullandım ve “/usr/bin/pkexec” dizininin root şifresine ihtiyaç duymadan da okunabildiğini gördüm. Aslında yetki yükseltme için bu dosyanın exploiti var. Ancak çok daha basit bir yöntem kullanarak dosyayı okuyabilirsiniz.
“sudo /usr/bin/pkexec /bin/bash” komutunu yazdığımızda artık root yetkisine sahip olduk. “ls” komutunu girerek root.txt dosyasını karşımızda gördük. “cat root.txt” dedik ve root flagıda artık elimizdeydi!
Umarım yazımdan keyif almışsınızdır. Çok daha detaylı CTF çözümleri için sayfamızda kalmaya devam edebilirsiniz.
-Buğra Ünver