
Bugün sizlerle çözmüş olduğum keyifli bir CTF makinesinin adımlarını paylaşacağım. Bu makinede temel bilgi toplama süreçlerinden başlayarak, zayıf yapılandırılmış bir WebDAV dizini üzerinden sisteme sızmayı ve ardından basit bir sudo yetki aşımı ile root ayrıcalıklarına ulaşmayı adım adım inceleyeceğiz.
Hazırsanız, bilgi toplama aşamasıyla başlayalım!
1. Bilgi Toplama ve Keşif (Reconnaissance)
Her zaman olduğu gibi makineyi anlamak ve dışarıya açık kapıları bulmak için standart nmap taramamızı başlatıyoruz.
nmap -sC -sV -p- <HEDEF_IP>
Tarama sonucunda makinede yalnızca 80 (HTTP) portunun açık olduğunu ve üzerinde bir Apache sunucusunun çalıştığını görüyoruz. Web sayfasına tarayıcıdan gittiğimizde dikkat çekici bir şey bulamayınca, arka planda gizli kalmış dizinleri keşfetmek için ffuf aracına başvuruyoruz.
ffuf -w /usr/share/wordlists/dirb/common.txt -u http://<HEDEF_IP>/FUZZ
Dizin taramamız sonucunda /webdav adında bir dizin tespit ettik!
2. WebDAV'a Sızma (Exploitation)
Tarayıcı üzerinden http://<HEDEF_IP>/webdav/ adresine gittiğimizde bizi bir HTTP Basic Authentication (Giriş Paneli) karşıladı. Brute-force (kaba kuvvet) saldırısına geçmeden önce, en çok bilinen varsayılan (default) kimlik bilgilerini denemek her zaman vakit kazandırır.


Giriş yaptıktan sonra bu dizine dışarıdan dosya yükleyip yükleyemeyeceğimizi ve sunucunun hangi uzantıları çalıştırdığını test etmek için davtest aracını kullandım.
davtest -url http://<HEDEF_IP>/webdav/ -auth wampp:xampp
Davtest sonuçları bize .php dosyalarını yükleyip çalıştırabileceğimizi gösterdi. Bu da demek oluyor ki, bir PHP Reverse Shell ile sistemde komut çalıştırma yetkisi elde edebiliriz.
3. Reverse Shell Alma ve İlk Bayrak
Kali Linux'ta varsayılan olarak bulunan meşhur PHP reverse shell dosyamızı kullanmak üzere bulunduğum dizine kopyaladım ve içeriğini düzenledim.
cp /usr/share/webshells/php/php-reverse-shell.php ./shell.php
nano shell.php
Hazırladığım bu zararlı dosyayı hedefe yüklemek için, terminal üzerinden harika bir WebDAV istemcisi olan Cadaver aracını kullandım. cadaver, tıpkı klasik bir FTP istemcisi gibi çalışarak WebDAV dizinleriyle terminal üzerinden kolayca komut satırı etkileşimi kurmamızı sağlar.
Bağlantıyı başlatmak için terminale şu komutu girdim:
cadaver http://<HEDEF_IP>/webdav/Bağlantı isteğini gönderdiğimizde sunucu bizden kimlik doğrulaması isteyecek. Az önce tespit ettiğimiz wampp ve xampp bilgilerini girerek oturum açıyoruz.
İçeri girdikten sonra put komutu ile shell dosyamızı hedef sunucuya yüklüyoruz:
dav:/webdav/> put shell.phpDosyayı WebDAV dizinine başarıyla yükledikten sonra, kendi terminalimde netcat ile dinlemeye geçtim:
nc -lvnp 4444
Sisteme girdikten sonra ev dizinine (/home/merlin) giderek ilk bayrağımızı başarıyla okuduk.

4. Yetki Yükseltme
Sistemde kısıtlı bir kullanıcıyız ama hedefimiz elbette Root olmak. Yetki yükseltme adımlarında her zaman ilk kontrol ettiğim yerlerden biri, mevcut kullanıcının şifresiz çalıştırabildiği sudo komutlarıdır.
sudo -l
Çıktıyı incelediğimde, kullanıcımızın root yetkisiyle ve şifreye ihtiyaç duymadan /bin/cat komutunu çalıştırabildiğini gördüm. Bu inanılmaz bir güvenlik zafiyeti! /bin/cat komutu, dosya okumaya yarar. Eğer bu komutu root yetkisiyle kullanabiliyorsak, sistemdeki en gizli dosyaları bile (örneğin /etc/shadow veya root bayrağını) okuyabiliriz
Hiç vakit kaybetmeden doğrudan root bayrağını okumak için şu komutu çalıştırdım:
sudo /bin/cat /root/root.txt
Ve root bayrağı karşımızda! Makineyi başarıyla tamamladık.