Bilgi Toplama ve Keşif (Nmap)
nmap -sC -sV -T4 <hedef_ip>
Açık Portlar ve Servisler:
- 21/TCP: FTP (vsftpd 3.0.3)
- 22/TCP: SSH (OpenSSH 8.2p1)
- 80/TCP: HTTP (gunicorn — Python web uygulaması)
Web Arayüzü İncelemesi ve IDOR Keşfi
Port 80 üzerinden bir güvenlik paneli/dashboard karşıma çıktı. Menüdeki "Security Snapshot" bağlantısı, ağ analiz dosyalarını (PCAP) indirmemizi sağlayan bir sayfaya yönlendiriyordu.
URL'de /data/1 veya /data/2 gibi sayısal bir parametre
(ID) fark ettim. Bu parametreyi değiştirerek IDOR (Insecure Direct Object
Reference) açığını test ettim: URL'i elle /data/0 yaptığımda
sunucudaki ilk ağ kaydı (ID 0) başarıyla görüntülendi ve indirilebilir hale geldi.
PCAP Dosyası Analizi ve İlk Erişim (SSH)
İndirilen 0.pcap dosyasını Wireshark ile açtım.
Ağ paketleri incelendiğinde sisteme yapılan bir FTP bağlantı
trafiği yakalandı. FTP şifresiz bir protokol olduğu için paket içeriğinden
kullanıcının giriş bilgileri açık metin (cleartext) olarak okunabiliyordu.
Elde edilen kimlik bilgileriyle SSH üzerinden hedef makineye bağlandım ve
user.txt bayrağını aldım.
Yetki Yükseltme (Privilege Escalation) — Linux Capabilities
Sistemde yetki yükseltmek için Linux capabilities (yetenekler) tarandı:
getcap -r / 2>/dev/null
Tarama Çıktısı:
/usr/bin/python3.8 = cap_setuid+ep
Bu çıktı, Python 3.8 yorumlayıcısının setuid yeteneğine (kullanıcı
kimliğini değiştirme) sahip olduğunu gösteriyordu. Yani kısıtlı bir kullanıcı da
olsak, Python üzerinden UID değerimizi 0 (root) yapabilirdik.
python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'
Komut çalıştırıldıktan sonra whoami çıktısının root
olduğu görüldü. /root/root.txt bayrağı okunarak makine çözümü
tamamlandı.