VulnHub | FristiLeaks CTF WriteUp

Ghost Killer

Özel Üye
13 Ocak 2019
11,239
70
7,710
Hepinize selamlar arkadaşlar. Bugünkü konumuzda Vulnhub'da bulunan FristiLeaks adlı CTF makinesini çözeceğiz. Hedef makinaya sızarak root yetkisini elde etmeye çalışacağız ve ardından istenen flag'ı bularak konumuzu sonlandıracağız. Dilerseniz başlayalım.


h7fao2l.png


Öncelikle her zaman ki gibi



nmap -sV -p- 10.0.2.37





(ip adresi farklılık gösterebilir)



komutunu çalıştırarak hedef sistemdeki bütün portları tarıyoruz. ( Nmap aracı ile daha gelişmiş taramalar yapmamız mümkün, detaylı öğrenmek daha faydalı olacaktır)





fufa1lr.jpg






Yukarıdaki görselde nmap komutunun çıktısını incelediğimizde yalnızca 80 numaralı http portunda bir web sitesinin çalıştığını görüyoruz. Web sitesine zaten gideceğiz ancak daha fazla bilgi için ve vakit kaybı olmaması adına hemen gobuster aracı yardımıyla



gobuster dir -u 10.0.2.37 -w /usr/share/wordlists/dirb/big.txt








komutunu çalıştırıyoruz ve hedef web sitesinde gizli dizinler olup olmadığının kontrolünü sağlıyoruz.





cs9gx6l.png






Oluşan çıktıyı incelediğimizde /robots.txt , /beer , /images dizinlerinin varlığını ve bu dizinlerin erişilebilir olduklarını görüyoruz (403 kodu olan dizinlere erişemeyiz). Robots.txt dizini genellikle Google Crawlerlarının erişilmesinin istenmediği dizinleri belirtmek için kullanılan bir dizindir. Bu dizini incelemek her zaman faydalıdır. Bu nedenle dizine gidiyoruz.





220o2x9.jpg






Yukarıdaki görselde de görüldüğü gibi /cola , /sisi, /beer dizinlerine erişilmesi istenmemektedir. Biz bu dizinlere eriştik ancak içerilerinde kayda değer bir bilgiye rastlayamadık, bu aşamada vulnhub sitesindeki ctf tanımında fristi adında bir içecek içtiklerinden bahsediliyordu, bu isimde gizli bir dizin olup olmadığını araştıralım.





n3f4sk7.jpg






Evet yukarıdaki görselin url kısmını incelediğimizde gerçekten de bu şekilde bir dizin olduğunu ve bizlere admin portalını açtığını görüyoruz. Hemen sağ tıklayarak view page source diyerek sayfa kaynağını görüntülüyoruz ve bizim için bir ipucu bulunup bulunmadığını kontrol ediyoruz.





55ieuxg.jpg






Gördüğümüz gibi gerçekten de bizim için faydalı olabilecek bir şeyler var, burada eezeepz adlı bir kullanıcının varlığını öğreniyoruz ve kodu biraz daha incelemeye devam ettiğimizde aşağıdaki görselde de görüldüğü gibi base64 ile hashli bir yorum satırı daha bırakılmış.





lqbjwia.jpg






Şimdi ise yapmamız gereken bu hashi decode etmeye çalışmak ve içerisindeki bilgiye erişmek. Bunun için öncelikle buradaki hashi kopyalıyoruz ve hash adında yeni bir dosya oluşturarak içerisine yapıştırıyoruz. Daha sonra



base64 -d hash > dosya



komutunu kullanarak hashi kırıyor ve içerisindeki metni dosya adında yeni bir dosyaya yazdırıyoruz.





sgfdezz.jpg






Oluşan dosyayı açtığımızda ise yukarıdaki görselde de görüldüğü gibi içerisinde gizlenmiş olan “keKkeKKekKekkEkkEk” metnini görüntülüyoruz. Şuan da elimizde kullanıcı adı ve parola olarak deneyebileceğimiz iki adet bilgi var. Hemen login sayfasına tekrar gidiyoruz ve bu bilgileri kullanarak giriş yapmaya çalışıyoruz.





nhyyj5y.jpg






Evet, gerçekten de elde ettiğimiz bu bilgilerle siteye giriş yapabildik ve karşımıza image dosyaları yükleyebileceğimiz bir sayfa çıktı. Daha önceden bilgisayarıma indirmiş olduğum reverse_shell.php dosyasını içeriğindeki kodları düzenleyerek ip adresimizi ve bağlanmak istediğimiz portu ayarlayarak bu dosyayı siteye yüklemeye çalışacağız. (Bu şekilde veya buna benzer ters bağlantı açabilecek dosyaları bulmak için internette reverse Shell cheat sheet gibi bir arama yapabilirsiniz.) Ancak ilk işlem olarak dosyamızın ismini zararli.php.jpg olarak değiştiriyoruz ki php uzantılı olan dosyamız site tarafından jpg dosyası olarak algılansın ve sorunsuz bir şekilde siteye yükleyebilelim.





b4ldwi8.jpg






Yapmamız gereken ikinci işlem ise nc -nvlp 1234 komutunu çalıştırarak bağlantının kurulacağı portu dinlemek. Dosyamızı yükledikten sonra url kısmına yazarak dosyamızı çalıştırıyoruz.





irkf09w.jpg






Yukarıdaki görselde de görebileceğimiz gibi başarılı bir şekilde kendi bilgisayarımızda ters bağlantı açtık. whoami komutunu çalıştırdığımızda hedef sistemde “apache” kullanıcısı olduğumuzu görüyoruz. Şimdi ise yetki yükseltme işlemi yaparak root olmalıyız. İlk olarak bir shell açmamız rahat çalışabilmemiz için daha sağlıklı olacaktır. Bunun için ise python -c ‘import pty;pty.spawn(“/bin/bash”)’ komutunu çalıştırıyoruz.





8syesk3.jpg






Yukarıdaki görselde de görebileceğimiz gibi başarılı bir şekilde bash shell açtık, şimdi ise yapmamız gereken sistemde mümkün olduğunca gezinerek işimize yarayabilecek ipuçları olup olmadığını taramak olmalı. /home dizininin altında bulunan kullanıcılardan eezeepz kullanıcısının dizininin içerisine girdiğimizde karşımıza notes.txt adında bir dosya çıkıyor.





p3clk9z.jpg






cat notes.txt komutu ile bu dosyanın içeriğini görüntülediğimizde ise bizlere Jerry isimli bir kullanıcı tarafından bırakılmış; /home/admin dizinini kullanarak chmod, df, cat, echo, ps, grep ve egrep komutlarını kullanabileceğimiz ve ayrıca /tmp dizinine giderek “runthis” ismiyle bir dosya oluşturduğumuzda, bu dosyanın sistem tarafından çalıştırılarak cronresult adında her dakika çalışacak yeni bir dosya üreteceğini belirttiği bir not görüyoruz.



Ancak biz /home/admin dizinine girmeye yetkili değiliz, işte bu yüzden, kendimizi bu dizine yetkilendirebilmek için echo “ /home/admin/chmod 777 /home/admin” > /tmp/runthis komutunu çalıştırıyoruz.





i8cl2v6.jpg






Yukarıdaki görselde de gördüğümüz gibi cd admin komutu ile önceden giremediğimiz admin dizininin içerisine şuanda girebiliyoruz. İçeriği görüntülediğimizde ise bazı ilginç dosyaların olduğunu görüyoruz. cat cryptpass.txt komutunu çalıştırdığımızda burada şifreleme algoritması çalıştıran bir python scripti olduğunu anlıyoruz.





g3qeivz.jpg






cat cryptedpass.txt komutunu çalıştırdığımızda ise içerisinde “=RFn0AKnlMHMPIzpyuTI0ITG” şeklinde bir hash görüyoruz. Elimizdeki bu python kodlarını tersine tekrar yazarak hash den parolaya gitmeyi deneyebiliriz. Bunun için aşağıdaki görselde gördüğümüz python kodunu kullanabilir ve hash algoritmasını tersine mühendislik uygulayarak düz metin olarak elde edebiliriz.





pueh25p.jpg






python reverse.py komutu ile önceden hazırlamış olduğumuz yukarıdaki python scriptimizi çalıştırdığımızda gerçekten de parolayı düz metin olarak elde ediyoruz.





ndywkgn.jpg






Elde ettiğimiz bu parola ile “fristigod” kullanıcısı olmayı deneyebiliriz. Bunun için su fristigod komutunu çalıştırıyoruz ve elde ettiğimiz parolayı giriyoruz.





1iqbp4o.jpg






Gerçekten de işe yaradı ve whoami komutunu çalıştırdığımızda fristigod kullanıcısına geçmiş olduğumuzu görüyoruz. Şimdi ise sudo -l komutu çalıştırabilir ve eğer mevcutsa sudo yetkisi ile çalıştırabileceğimiz dosyalar olup olmadığını kontrol edebiliriz.





4ilt4fq.jpg






Yukarıdaki görselde de görüldüğü gibi fristi kullanıcısını kullanarak /var/fristigod/.secret_admin_stuff/ dizinindeki doCom adlı dosyayı root yetkisi ile çalıştırabiliyoruz. O halde bu dosyayı çalıştırarak buradan root kullanıcısına geçmeyi deneyebiliriz.



Bunun için ise sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash komutunu çalıştırıyoruz.





nhn8fqn.jpg






Evet gerçekten de işe yaradı ve whoami komutunu çalıştırdığımızda root olduğumuzu gördük , şimdi /root dizinine giderek cat fristileaks_secret.txt komutu ile fristileaks_secret.txt dosyasının içeriğini görüntülüyoruz ve böylelikle bayrağı elde ederek ctfi başarıyla tamamlamış oluyoruz.





Konumuzun sonuna geldik, okuduğunuz için teşekkürler.





h7fao2l.png






iUBacd.gif










 

Adanalıtrojan

Kıdemli Üye
25 Haz 2021
2,026
7
1,054
17
Konya Ovası Askeri Tesislerinde
Hepinize selamlar arkadaşlar. Bugünkü konumuzda Vulnhub'da bulunan FristiLeaks adlı CTF makinesini çözeceğiz. Hedef makinaya sızarak root yetkisini elde etmeye çalışacağız ve ardından istenen flag'ı bularak konumuzu sonlandıracağız. Dilerseniz başlayalım.


h7fao2l.png


Öncelikle her zaman ki gibi



nmap -sV -p- 10.0.2.37





(ip adresi farklılık gösterebilir)



komutunu çalıştırarak hedef sistemdeki bütün portları tarıyoruz. ( Nmap aracı ile daha gelişmiş taramalar yapmamız mümkün, detaylı öğrenmek daha faydalı olacaktır)





fufa1lr.jpg






Yukarıdaki görselde nmap komutunun çıktısını incelediğimizde yalnızca 80 numaralı http portunda bir web sitesinin çalıştığını görüyoruz. Web sitesine zaten gideceğiz ancak daha fazla bilgi için ve vakit kaybı olmaması adına hemen gobuster aracı yardımıyla



gobuster dir -u 10.0.2.37 -w /usr/share/wordlists/dirb/big.txt








komutunu çalıştırıyoruz ve hedef web sitesinde gizli dizinler olup olmadığının kontrolünü sağlıyoruz.





cs9gx6l.png






Oluşan çıktıyı incelediğimizde /robots.txt , /beer , /images dizinlerinin varlığını ve bu dizinlerin erişilebilir olduklarını görüyoruz (403 kodu olan dizinlere erişemeyiz). Robots.txt dizini genellikle Google Crawlerlarının erişilmesinin istenmediği dizinleri belirtmek için kullanılan bir dizindir. Bu dizini incelemek her zaman faydalıdır. Bu nedenle dizine gidiyoruz.





220o2x9.jpg






Yukarıdaki görselde de görüldüğü gibi /cola , /sisi, /beer dizinlerine erişilmesi istenmemektedir. Biz bu dizinlere eriştik ancak içerilerinde kayda değer bir bilgiye rastlayamadık, bu aşamada vulnhub sitesindeki ctf tanımında fristi adında bir içecek içtiklerinden bahsediliyordu, bu isimde gizli bir dizin olup olmadığını araştıralım.





n3f4sk7.jpg






Evet yukarıdaki görselin url kısmını incelediğimizde gerçekten de bu şekilde bir dizin olduğunu ve bizlere admin portalını açtığını görüyoruz. Hemen sağ tıklayarak view page source diyerek sayfa kaynağını görüntülüyoruz ve bizim için bir ipucu bulunup bulunmadığını kontrol ediyoruz.





55ieuxg.jpg






Gördüğümüz gibi gerçekten de bizim için faydalı olabilecek bir şeyler var, burada eezeepz adlı bir kullanıcının varlığını öğreniyoruz ve kodu biraz daha incelemeye devam ettiğimizde aşağıdaki görselde de görüldüğü gibi base64 ile hashli bir yorum satırı daha bırakılmış.





lqbjwia.jpg






Şimdi ise yapmamız gereken bu hashi decode etmeye çalışmak ve içerisindeki bilgiye erişmek. Bunun için öncelikle buradaki hashi kopyalıyoruz ve hash adında yeni bir dosya oluşturarak içerisine yapıştırıyoruz. Daha sonra



base64 -d hash > dosya



komutunu kullanarak hashi kırıyor ve içerisindeki metni dosya adında yeni bir dosyaya yazdırıyoruz.





sgfdezz.jpg






Oluşan dosyayı açtığımızda ise yukarıdaki görselde de görüldüğü gibi içerisinde gizlenmiş olan “keKkeKKekKekkEkkEk” metnini görüntülüyoruz. Şuan da elimizde kullanıcı adı ve parola olarak deneyebileceğimiz iki adet bilgi var. Hemen login sayfasına tekrar gidiyoruz ve bu bilgileri kullanarak giriş yapmaya çalışıyoruz.





nhyyj5y.jpg






Evet, gerçekten de elde ettiğimiz bu bilgilerle siteye giriş yapabildik ve karşımıza image dosyaları yükleyebileceğimiz bir sayfa çıktı. Daha önceden bilgisayarıma indirmiş olduğum reverse_shell.php dosyasını içeriğindeki kodları düzenleyerek ip adresimizi ve bağlanmak istediğimiz portu ayarlayarak bu dosyayı siteye yüklemeye çalışacağız. (Bu şekilde veya buna benzer ters bağlantı açabilecek dosyaları bulmak için internette reverse Shell cheat sheet gibi bir arama yapabilirsiniz.) Ancak ilk işlem olarak dosyamızın ismini zararli.php.jpg olarak değiştiriyoruz ki php uzantılı olan dosyamız site tarafından jpg dosyası olarak algılansın ve sorunsuz bir şekilde siteye yükleyebilelim.





b4ldwi8.jpg






Yapmamız gereken ikinci işlem ise nc -nvlp 1234 komutunu çalıştırarak bağlantının kurulacağı portu dinlemek. Dosyamızı yükledikten sonra url kısmına yazarak dosyamızı çalıştırıyoruz.





irkf09w.jpg






Yukarıdaki görselde de görebileceğimiz gibi başarılı bir şekilde kendi bilgisayarımızda ters bağlantı açtık. whoami komutunu çalıştırdığımızda hedef sistemde “apache” kullanıcısı olduğumuzu görüyoruz. Şimdi ise yetki yükseltme işlemi yaparak root olmalıyız. İlk olarak bir shell açmamız rahat çalışabilmemiz için daha sağlıklı olacaktır. Bunun için ise python -c ‘import pty;pty.spawn(“/bin/bash”)’ komutunu çalıştırıyoruz.





8syesk3.jpg






Yukarıdaki görselde de görebileceğimiz gibi başarılı bir şekilde bash shell açtık, şimdi ise yapmamız gereken sistemde mümkün olduğunca gezinerek işimize yarayabilecek ipuçları olup olmadığını taramak olmalı. /home dizininin altında bulunan kullanıcılardan eezeepz kullanıcısının dizininin içerisine girdiğimizde karşımıza notes.txt adında bir dosya çıkıyor.





p3clk9z.jpg






cat notes.txt komutu ile bu dosyanın içeriğini görüntülediğimizde ise bizlere Jerry isimli bir kullanıcı tarafından bırakılmış; /home/admin dizinini kullanarak chmod, df, cat, echo, ps, grep ve egrep komutlarını kullanabileceğimiz ve ayrıca /tmp dizinine giderek “runthis” ismiyle bir dosya oluşturduğumuzda, bu dosyanın sistem tarafından çalıştırılarak cronresult adında her dakika çalışacak yeni bir dosya üreteceğini belirttiği bir not görüyoruz.



Ancak biz /home/admin dizinine girmeye yetkili değiliz, işte bu yüzden, kendimizi bu dizine yetkilendirebilmek için echo “ /home/admin/chmod 777 /home/admin” > /tmp/runthis komutunu çalıştırıyoruz.





i8cl2v6.jpg






Yukarıdaki görselde de gördüğümüz gibi cd admin komutu ile önceden giremediğimiz admin dizininin içerisine şuanda girebiliyoruz. İçeriği görüntülediğimizde ise bazı ilginç dosyaların olduğunu görüyoruz. cat cryptpass.txt komutunu çalıştırdığımızda burada şifreleme algoritması çalıştıran bir python scripti olduğunu anlıyoruz.





g3qeivz.jpg






cat cryptedpass.txt komutunu çalıştırdığımızda ise içerisinde “=RFn0AKnlMHMPIzpyuTI0ITG” şeklinde bir hash görüyoruz. Elimizdeki bu python kodlarını tersine tekrar yazarak hash den parolaya gitmeyi deneyebiliriz. Bunun için aşağıdaki görselde gördüğümüz python kodunu kullanabilir ve hash algoritmasını tersine mühendislik uygulayarak düz metin olarak elde edebiliriz.





pueh25p.jpg






python reverse.py komutu ile önceden hazırlamış olduğumuz yukarıdaki python scriptimizi çalıştırdığımızda gerçekten de parolayı düz metin olarak elde ediyoruz.





ndywkgn.jpg






Elde ettiğimiz bu parola ile “fristigod” kullanıcısı olmayı deneyebiliriz. Bunun için su fristigod komutunu çalıştırıyoruz ve elde ettiğimiz parolayı giriyoruz.





1iqbp4o.jpg






Gerçekten de işe yaradı ve whoami komutunu çalıştırdığımızda fristigod kullanıcısına geçmiş olduğumuzu görüyoruz. Şimdi ise sudo -l komutu çalıştırabilir ve eğer mevcutsa sudo yetkisi ile çalıştırabileceğimiz dosyalar olup olmadığını kontrol edebiliriz.





4ilt4fq.jpg






Yukarıdaki görselde de görüldüğü gibi fristi kullanıcısını kullanarak /var/fristigod/.secret_admin_stuff/ dizinindeki doCom adlı dosyayı root yetkisi ile çalıştırabiliyoruz. O halde bu dosyayı çalıştırarak buradan root kullanıcısına geçmeyi deneyebiliriz.



Bunun için ise sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash komutunu çalıştırıyoruz.





nhn8fqn.jpg






Evet gerçekten de işe yaradı ve whoami komutunu çalıştırdığımızda root olduğumuzu gördük , şimdi /root dizinine giderek cat fristileaks_secret.txt komutu ile fristileaks_secret.txt dosyasının içeriğini görüntülüyoruz ve böylelikle bayrağı elde ederek ctfi başarıyla tamamlamış oluyoruz.





Konumuzun sonuna geldik, okuduğunuz için teşekkürler.





h7fao2l.png






iUBacd.gif










Hocam ben bu ctfler çözümünü anlatırken içinden çıkamıyorum çokkkkkk hoşuma gidiyor nedense
Elinize sağlık hocam, ctf olan merakım biraz daha artı 😃😃
 

Ghost Killer

Özel Üye
13 Ocak 2019
11,239
70
7,710
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.