Hepinize selamlar arkadaşlar. Bugünkü konumuzda Vulnhub'da bulunan JIS adlı VulnUpload CTF makinesini çözeceğiz. Hedefimiz, makine içerisinde çeşitli yerlere gizlenmiş olan 5 adet bayrağı bularak içeriklerine erişmek. Süreç boyunca kullanılacak ip adresleri herkeste farklılık gösterebilir, makine herkese farklı bir ip adresi vermektedir. Bu ayrıntıya dikkat etmeyi unutmayalım.
İlk olarak nmap aracımız ile bize verilen ip adresinde bilgi topluyoruz.
Komutumuz;
nmap -p- -A 10.0.2.40
Bu şekilde hedef sistem üzerindeki bütün portları tarıyor ve hedef sistem hakkında bilgi sahibi oluyoruz.
İlk olarak nmap aracımız ile bize verilen ip adresinde bilgi topluyoruz.
Komutumuz;
nmap -p- -A 10.0.2.40
Bu şekilde hedef sistem üzerindeki bütün portları tarıyor ve hedef sistem hakkında bilgi sahibi oluyoruz.
Görüldüğü üzere bir web sitesi ve bir de ssh portu açık bırakılmış. O halde dirb, dirbuster veya gobuster gibi araçlardan herhangi birisiyle web sitesi içerisinde farklı dizinlere erişim sağlayıp sağlayamayacağımızın kontrolünü yapmak faydalı olacaktır, biz burada gobuster aracını kullanıyoruz.
Komutumuz;
gobuster dir -u 10.0.2.40 -w /usr/share/wordlists/dirb/big.txt
( dir: dizinleri göster , -u : hedef web site ip adresi , -w : tarama sırasında kullanılacak wordlist )
komutunu çalıştırıyoruz.
Burada karşımıza birkaç tane erişmeye çalışabileceğimiz dizin adresi çıkıyor. İlk olarak /flag dizinine gidecek olursak
Bu dizinin altında bize ilk bayrağımızı verdiğini görüyoruz, artık bulmamız gereken 4 adet bayrak kalmış oluyor. Şimdi ise /robots.txt dizinine bir göz atıyoruz ve işimize yarayabilecek dizinler olup olmadığını kontrol ediyoruz.
/robots.txt dizininin içeriğini ve burada bulunan dizinleri incelediğimizde karşımıza pek de bir ipucu çıkmıyor ancak /admin_area dizini hariç. Bu dizine gittiğimizde karşımıza aşağıdaki görselde görüldüğü gibi bir sayfa çıkıyor.
İlk bakışta bir şey yok gibi görünse de faremize sağ tıklayarak view page source veya sayfa kaynağını görüntüle dediğimizde ve sayfanın kaynak kodlarını incelediğimizde karşımıza aşağıda da görüldüğü gibi ikinci bayrak ve bir kullanıcı adı ile bu kullanıcıya ait bir parola çıkıyor.
Artık elde etmemiz gereken 3 adet bayrak kaldı. Şimdi bu kullanıcı adı ve parolayı kullanmak üzere sitenin giriş sayfasına gidiyoruz ve bu bilgileri doğru bir şekilde giriyoruz.
Karşımıza çıkan ekranda bizi siteye dosya yükleyebileceğimiz bir seçenek karşılıyor ve hemen internetten “php reverse shell” gibi bir aratma yaparak ters bağlantı açabileceğimiz herhangi bir php dosyasını indiriyoruz. Ardından indirmiş olduğumuz dosyayı açarak dosyanın ilgili kısmındaki kodları kendi ip adresimiz ve ters bağlantı yapmak istediğimiz port numarası uygun olacak şekilde düzenliyoruz, eğer bu işlemi yapmadan dosyayı yükler ve çalıştırırsak herhangi bir bağlantı oluşmayacaktır. Bu nedenle bu kısım önemli.
Dosyamızı başarılı bir şekilde yükledik. /robots.txt dizininde keşfettiğimiz /uploaded_files dizinine giderek aşağıdaki görselde görüldüğü gibi URL kısmında dosyamıza erişim sağlıyoruz ancak burada bu erişimi sağlamadan hemen önce yeni bir terminal açarak nc -nvlp 1234 komutu ile oluşacak bağlantıyı dinlemeye başlıyoruz ( Buradaki 1234 portu sizin dosyanın içeriğine yazdığınız port numarasıyla aynı olmalıdır )
Görüldüğü gibi whoami komutunu çalıştırdığımızda “www-data” kullanıcı adı ile hedef sisteme sızmış olduğumuzu görüyoruz. Şimdi ise hedef sistemde /var/www/html dizinine gidelim. Gittiğimizde dizinin içeriğini görüntülediğimizde “hint.txt” isimli bir dosya olduğunu görüyoruz. Bu dosyayı açalım.
cat hint.txt komutunu kullanarak dosyanın içeriğini okuduğumuzda ise 3.bayrağı da başarılı bir şekilde elde etmiş oluyoruz. Diğer bir dosya olan flag.txt yi okuyabilmemiz için ise bize “technawi” isimli kullanıcının parolasını bilmemiz gerektiği bilgisi veriliyor.
cd /etc/mysql komutu ile veritabanı dosyalarını barındıran mysql dizinine gittiğimizde ve içerisinde araştırmalar yaptığımızda “credentials.txt” adında bir dosya dikkatimizi çekiyor ve bu dosyayı okuduğumuzda ise bize hem 4.bayrağı hem de technawi kullanıcısının parolasını veriyor. İşlememize devam edelim.
Şimdi yeni bir terminal açarak ssh [email protected] komutu ile bir ssh bağlantısı kuruyoruz ve parola kısmına elde ettiğimiz parolayı yazarak technawi kullanıcısı olarak sisteme girebiliyoruz.
Son olarak tekrar /var/www/html dizinine gidiyoruz ve muhtemel olarak son bayrağın bulunduğu dosya olan flag.txt dosyasının içeriğini okuyoruz. Bunun sonucunda ise işte karşımızda 5. ve son bayrak. Bu bayrağı da elde ettiğimize göre geriye başka bulmamız gereken flag kalmıyor.
Bu şekilde de CTF makinemizi başarıyla çözmüş ve konumuzu da tamamlamış oluyoruz. Okuduğunuz için teşekkürler.
/robots.txt dizininin içeriğini ve burada bulunan dizinleri incelediğimizde karşımıza pek de bir ipucu çıkmıyor ancak /admin_area dizini hariç. Bu dizine gittiğimizde karşımıza aşağıdaki görselde görüldüğü gibi bir sayfa çıkıyor.
İlk bakışta bir şey yok gibi görünse de faremize sağ tıklayarak view page source veya sayfa kaynağını görüntüle dediğimizde ve sayfanın kaynak kodlarını incelediğimizde karşımıza aşağıda da görüldüğü gibi ikinci bayrak ve bir kullanıcı adı ile bu kullanıcıya ait bir parola çıkıyor.
Artık elde etmemiz gereken 3 adet bayrak kaldı. Şimdi bu kullanıcı adı ve parolayı kullanmak üzere sitenin giriş sayfasına gidiyoruz ve bu bilgileri doğru bir şekilde giriyoruz.
Karşımıza çıkan ekranda bizi siteye dosya yükleyebileceğimiz bir seçenek karşılıyor ve hemen internetten “php reverse shell” gibi bir aratma yaparak ters bağlantı açabileceğimiz herhangi bir php dosyasını indiriyoruz. Ardından indirmiş olduğumuz dosyayı açarak dosyanın ilgili kısmındaki kodları kendi ip adresimiz ve ters bağlantı yapmak istediğimiz port numarası uygun olacak şekilde düzenliyoruz, eğer bu işlemi yapmadan dosyayı yükler ve çalıştırırsak herhangi bir bağlantı oluşmayacaktır. Bu nedenle bu kısım önemli.
Dosyamızı başarılı bir şekilde yükledik. /robots.txt dizininde keşfettiğimiz /uploaded_files dizinine giderek aşağıdaki görselde görüldüğü gibi URL kısmında dosyamıza erişim sağlıyoruz ancak burada bu erişimi sağlamadan hemen önce yeni bir terminal açarak nc -nvlp 1234 komutu ile oluşacak bağlantıyı dinlemeye başlıyoruz ( Buradaki 1234 portu sizin dosyanın içeriğine yazdığınız port numarasıyla aynı olmalıdır )
Görüldüğü gibi whoami komutunu çalıştırdığımızda “www-data” kullanıcı adı ile hedef sisteme sızmış olduğumuzu görüyoruz. Şimdi ise hedef sistemde /var/www/html dizinine gidelim. Gittiğimizde dizinin içeriğini görüntülediğimizde “hint.txt” isimli bir dosya olduğunu görüyoruz. Bu dosyayı açalım.
cat hint.txt komutunu kullanarak dosyanın içeriğini okuduğumuzda ise 3.bayrağı da başarılı bir şekilde elde etmiş oluyoruz. Diğer bir dosya olan flag.txt yi okuyabilmemiz için ise bize “technawi” isimli kullanıcının parolasını bilmemiz gerektiği bilgisi veriliyor.
cd /etc/mysql komutu ile veritabanı dosyalarını barındıran mysql dizinine gittiğimizde ve içerisinde araştırmalar yaptığımızda “credentials.txt” adında bir dosya dikkatimizi çekiyor ve bu dosyayı okuduğumuzda ise bize hem 4.bayrağı hem de technawi kullanıcısının parolasını veriyor. İşlememize devam edelim.
Şimdi yeni bir terminal açarak ssh [email protected] komutu ile bir ssh bağlantısı kuruyoruz ve parola kısmına elde ettiğimiz parolayı yazarak technawi kullanıcısı olarak sisteme girebiliyoruz.
Son olarak tekrar /var/www/html dizinine gidiyoruz ve muhtemel olarak son bayrağın bulunduğu dosya olan flag.txt dosyasının içeriğini okuyoruz. Bunun sonucunda ise işte karşımızda 5. ve son bayrak. Bu bayrağı da elde ettiğimize göre geriye başka bulmamız gereken flag kalmıyor.
Bu şekilde de CTF makinemizi başarıyla çözmüş ve konumuzu da tamamlamış oluyoruz. Okuduğunuz için teşekkürler.