[THM] C0lddBox CTF Writeup

Herkese Merhabalar. Bu gün TryHackMe’deki C0lddBox makinesini çözeceğim. İyi okumalar.

Zafiyetli makine için tıklayın. Zorluk seviyesi kolay. 3 adımda çözeceğim. Hemen geçelim.


1.Recon(Bilgi Toplama)

İlk olarak nmap taramasıyla işlemlere koyuluyorum.

nmap -A -T4 -v [IP_ADDRESS]

‘-A’ — ‘Agresive Scan’ anlamına gelmektedir

-T4’ — Tarama hızımızı belirtiriyoruz(1–5)

‘-v’ — ‘Verbose’ seçeneğini aktif ediyoruz

Çıktımız şu şekilde oluyor;

Gördüğünüz gibi Nmap çıktımızdan sadece 80 portunun açık olduğunu görüyoruz. 80.portu görür görmez aklımıza 2 şey gelmeli. 1. gobuster(Veya eşdeğer bir uygulama dirb gibi) çalıştırmalıyız, 2. ise tarayıcımıza gidip ip adresini adres çubuğuna yapıştırıp siteye gitmek.

İlk olarak bakalım ne tarz bi siteymiş ?

Sitemiz gördüğünüz gibi blog tarzında bir site şimdide dizin bulma programımızı(gobuster) çalıştıralım

gobuster dir -u İp -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

Sitede hidden adında bir dizin olduğunu görüyoruz ve hemen o dizine gidiyoruz.

Burada bizi bir yazı karşılıyor. Bu yazının içinde geçen şahıs isimlerini kaydedelim belki ileride işe yarayabilirler. Şimdi buraya kadar her şey güzel peki devamında ne yapıcaz ?

2. Sisteme Giriş Ve Reverse Shell
Şimdi sitemiz WordPress’ti. Demekki giriş panellerinede bakabilir kolaylıklar.

[IP_ADDRESS]/wp-login.php

Bakınız burda ne varmış. Admin paneli. Tamda istediğimiz. Aklımıza kenara yazdığımız şahısların isimleri geldi tek tek hepsini deniyoruz ve C0ldd kullanıcısının hesabının olduğunu fark ediyoruz. Hemen terminalimiz açıyoruz ve Wpscan’in bf özelliğini kullanıyoruz.

wpscan --url http://[IP_ADRESS]--usernames C0ldd --passwords /usr/share/wordlists/rockyou.txt

Veee sonuç

Elimizde artık bir kullanıcı adı bir de şifre var hemen dashboarda girmeye deniyelim

Giriş başarılı şimdide kendimize makineye girmek için bir kapı açalım. Sol tatafta gördüğünüz seçenklerden ilk olarak Appearance kısmına tıklıyoruz ve en altta yer alan editör kısmına giriyoruz. Burada sağ tarafta sayfalarımız var kolaylık açısından 404.php yazan sayfaya tıklıyoruz ve o sayfanın php kodlarını görüyoruz burayı tamamen temizleyip php reverse shellimizi yapıştırıyoruz. Ağaıdaki linkten kodlara ulaşabilirsiniz.

PHP Reverse Shell

NOT: Kodların içinde değiştirmemiz gerekn 2 yer var biri ip adresi diğeride port. Portu değiştirmesenizde olur ancak ip adresimizi değiştirmek zorundayız. Terminalden ifconfig yazarak ip adresimizi öğrenebiliriz.

Kaydettikten sonra terminalemizden verdiğimiz portu dinlemeye başlıyoruz

nc -nvlp 123

Terminalden portu dinlemeye aldıktan sonra tekrar tarayıcımıza gelip reverse shellimizi yüklediğimiz sayfayı açıyoruz

http://[IP_ADDRESS]/wp-content/themes/twentyfifteen/404.php

Sayfaya girdikten sonra boş bir sayfada yükleme yapıyormuş gibi gözükecek. Eğer dediğim gibi olduysa shellimizi başarlı bir şekilde sisteme aktarmışız ve makineye girmişiz demektir. Hemen ardından terminalimize dönebiliriz. Eğer bu şekilde olmassa yüklediğiniz kodları ip adresini ve sayfayı kontrol edip tekrar deneyin.

Burdan sonra işlem kolaylığı açısından kendimize bir python shell açmamız lazım.

python3 -c 'import pty;pty("/bin/bash")'

Şuanda makinedeyiz ama bir şey değiştirmek bir şey okumak için iznimiz yok. Bu sepepten dolayıda kendimizi bir üst kullanıcıya geçirmemiz gerekli. Nasıl yapıcaz diye düşünüyor sitemizin wp olduğu aklımıza tekrar geliyor ve site dosyaları arasından database şifresini bulabiliriz. Sitenin olduğu dizine gidip oradan öğrenmeliyiz.

wp-config.php dosyasında aradğımız şifreyi bulabiliriz. Cat komutu ile dosyanın içindekileri okuyabiliriz.

Şifremizi öğrendiğimize göre artık c0ldd kullanıcısına geçebiliriz. Bunun için su komutunu kullanmamız yeterli

Artık user.txt dosyasını okuyabilir haldeyiz.

cd /home/c0ldd
cat user.txt

Birinci bayrağımızıda almış olduk. Sıra 2. bayrak olan root.txt dosyasında

3.Privilege Escalation(Yetki Yükseltme)

Birinci bayrağımızı almıştık. İkinci bayrağımızı almamız için sistemde root olmamız gerekli. Yetki yükseltmenin bir çok farklı yolu var. Bunuda ayrı bir konuda anlatabilirim. Makinemize devam edelim. Makine terminaline gelip şu komut satırını yazalım

sudo -l

Bizden sudo şifresini istiyor. Korkmamıza gerek yok çünkü biz zaten sudo şifresini sistemden c0ldd kullanıcısı için almıştık. O şifreyi burada kullanıyoruz.

Buradaki amacımız root tarafından bizim şuandaki kullanıcımıza verilen sudo ile çalıştırılabilir program yetkilerimizi görmek

Burada 3 farklı program verilmiş. Birini kullanmak bizim işimizi görür. Şimdide kafalarda tek bir soru biz programla nasıl root olucaz ? Bunun için harika bir site önerim var sizlere. Aşağıda bırakacağım site çoğu ctf çözümde işinize yarayacaktır.

GTFOBins

Siteye girdikten sonra arama kısmına makineden yetki yükseltmek için seçtiğimiz bir programı yazıyoruz.(Ben kolaylık açısından vim programını seçtim)

Orada vim yazan yere tıkladıktan sonra bir sayfa gelicek önümüze buradan üst kısımda yer alan etiketlerden sudo etiketini seçiyoruz.

Karşımızda 3 tane seçenek var bunlardan ilkini deniyoruz ilki olmazsa diğerlerinide kullanabiliriz. a şıkkında yer alan komutu makine terminaline yapıştırıyoruz ve entera basıyoruz.

Arka planda program bizim yetkimizi yükseltmeye çalışıyor. Bu arada ekranda yazılar çıkacaktır. Hiç bir yere basmayın. Yapıştırdığımız kod bizim yerimize her şeyi halledecektir.

İşlem bittiğinde bu ekran bizi karşılayacaktır.

Daha sonra root klasöründeki root.txt yi okuyabiliriz

Makinenin çözümü bu şekildeydi. Okuduğunuz için teşekkür ederim. Bir sonraki makalede görüşmek üzere.