Bu çalışmada zafiyetli tr0ll 3 makinesinin çözümünü ele aldım. Keyifli okumalar..
Kurulum sonrası bir nmap taraması ile ağa bağlı aktif cihazları taratalım ve hedef makinemizin ip adresini tespit edelim.
Makineye ait ip adresinin 192.168.216.176 olduğu tespit edildikten sonra tekrardan nmap aracı kullanımıyla sistemin açık portları keşfedilebilir.
SSH portu açık ve kullanıcı adı - parola bilgisi elde edilebilirse bir ssh bağlantısı kurulabilir.
Hedef makine üzerinde bir ipucu bırakılmış ve bağlantı kurabileceğimiz bilgiler gibi duruyor.
Bu bilgilerle ssh bağlantısı kurabilir miyim? Start kullanıcı adı ve here parolasıyla bağlantı sağlanabilmektedir.
bluepill dizini altında awesome_work adlı bir dosya var ve bu dosya görüntülendiğinde bir url’nin mevcut olduğu görülecektir.
Adrese gidildiğinde böyle bir sayfa karşımıza çıkacaktır. Önemsiz!
Sistemi kurcalamaya devam edelim. Bir diğer dizin olan redpill dizini altında ki dosya görüntülendiğinde ise bir kullanıcı adıyla parola bilgisi daha elde etmiş olacağız. start2:Password1! Bunlarla ssh bağlantısı denendiğinde bağlantı kuramamış, trollenmiş olacağız :)
Home dizini altında da bir şey bulamadık. Ardından find / -perm -4000 type f 2>/dev/null komut satırıyla erişim yetkimizin olduğu dosyaları bulup getirmesini ve boş döndürmemesini belirtiyoruz. Sonuç olarak biri .cap uzantılı diğeri .txt uzantılı dosya karşımıza çıktı.
Bu iki dosyanın da kopyasını scp kullanarak Masaüstüne çekebiliriz. Sonunda ki .(nokta) ile işlemin bulunduğumuz dizine gerçekleşmesini belirtiyoruz.
gold_star.txt dosyası görüntülendiğinde baya uzun şifrelenmiş bir parloa listesinin mevcut olduğu görülecektir. Diğer dosya cap uzantılıydı bunu wireshark üzerinde analiz edebiliriz.
İncelemeye aldığımızda 802.11 protokolü üzerinden bir iletim söz konusu olduğunu göreceğiz ve bu protokol, paketin kablosuz bağlı cihazlar arasında iletimi için kullanılmaktadır. Ayrıca burada bir wifi bağlantısının olabileceği kanısına varılabilir. Wifi parolasını kırabiliriz.
Parola kırmak için kullanacağımız araç aircrack aracı ve parola listesi olarak az önce keşfedilen gold_star.txt dosyası kullanılabilir.
Parola bilgisini tarama sonucunda elde etmiş olduk. Şimdi tekrardan bir ssh bağlantısı yapalım. Bunun için elde edilen kullanıcı bilgilerini tek tek denediğimizde bağlantı sağlanamayacaktır. Cap uzantılı dosyanın adında bir kullanıcı olabilir düşüncesiyle kullanıcı adını wytshadow olarak girerek bağlantı sağlanabilir.
Bağlantı sonrası oohfun adlı çalıştırılabilir bir dosyanın mevcut olduğu farkedilecektir. Dosya çalıştırıldığında sonsuz döngüye giren bir cümle var. Yani kısacası burdan da bir şey çıkmadı.
Ardından wytshadow kullanıcısı için sudo haklarını kontrol ediyoruz ve nginx’in root olarak çalıştırılabileceğini görüyoruz.
Nginx sunucusu başlatıp içerisinde neler var göz atalım. sites_enabled dizini altında ki default dosyası bir nginx yapılandırma dosyasıdır.
Nginx yapılandırma dosyası kontrol edildiğinde http_user_agent olarak 8080 portu üzerinden dinleme yapan tırnak içerisinde Lynx komutunun belirtildiği görülecektir. Zaten bu port üzerinden adrese gidildiğinde 403 hatası alınacak bunun içinde belirtilen if koşulunu kullanmak gerekecektir.
Sayfaya gönderilen isteği burp suite üzerinde incelemeye alıp User_agent kısmını Lynx olarak değiştirelim.
Ardından forward ettiğimizde bize farklı bir kullanıcı ve parola bilgisi döndürecektir. Sistem de sadece ssh portu açık olduğu için ssh portu üzerinden sistemde komut satırını elde etmeye ve ardından yetki yükseltmeye çalışıyoruz.
Bu bilgilerle tekrardan bir ssh bağlantısı kuralım.
Sistemde mevcut maleus kullanıcısı içinde bir ssh key ve xlogin dosyasında bir html kod bulunmaktadır.
Burada da pek birşey yok maalesef. Maleus’un bir kullanıcı bilgisi olduğunu düşünerek elde ettiğimiz ssh key ile bir ssh bağlantısı kurmayı deneyebiliriz.
Bağlantı kurarken başta yetkileri sınırlamadığımız için bağlantıyı reddetti. Dolayısıyla bu anahtarı bir key dosyasına kaydedip chmod 600 key diyerek yetkileri sınırladım ve bu şekilde bağlantı sağladım.
Daha sonra dont_even_bother adlı bir çalıştırılabilir dosyanın var olduğunu göreceğiz. Dosyayı çalıştırmadan önce strings komutu ile görüntüleyelim. Burada bir parola ile giriş yapabileceğimiz belirtilmiş. Bu parola kullanılarak dosya çalıştırılabilir.
Burdan da bir şey çıkmadı. Bu kullanıcı adı altındaki dosyaları görüntüleyince okumamıza izin verilen .viminfo dosyasını okumaya çalışıyoruz.
Burda da bir parola bilgisiyle karşı karşıyayız. Yani bir parola gibi durmaktadır. Sonrasında işimize yarayabilir.
Daha önce wytshadow kullanıcısı için sudo haklarını kontrol etmiştik. Şimdide maleus kullanıcısı için sudo haklarını kontrol ediyoruz ve az önce ki dont_even_bother dosyasını aslında root yetkisi altında çalıştırabileceğimizi görüyoruz. Şimdi sistemde nasıl root olabiliriz bunun yollarını arayalım.
Ufak bir araştırma sonucu ekranda ki basit c koduyla root olabileceğimizi gördüm. Vim ile dont_even_bother dosyasını açıp bu kodu yapıştırıyoruz ve kaydedipi çıkıyoruz.
Çalıştırmadan önce kodu derlemememiz gerekmektedir. Bunun içinde gcc aracını kullanıyoruz. Ardından dosyanın derlenmiş halini çalıştırıp root oluyoruz.
CTF’lerde tebrik flagleri genellikle root dizini altında olurlar. Burada da root dizini altında ki flag.txt dosyasını görüntülediğimizde flag elde edilmiş olacaktır.
Bu zafiyetli makineyi çözerken birçok parola elde ettik ve işe yaramayanlar oldu. Adından da anlaşılacağı üzere troller üzerine oluşturulmuş bir makine olduğunu gördük.