Bu yazıda, 8 Mart tarihinde Dünya Kadınlar Günü için PriviaHub platformunda özel olarak yayınlanan ve emekliye ayrılan “W000PS” adlı makinenin çözüm adımları anlatılmaktadır.
İlk olarak; makinede bulunan açık portların, açık portlar üzerinde çalışan güncel servislerin ve işletim sisteminin tespit edilmesi için tarama başlatıldı. Tarama işlemi için NMAP aracı kullanılarak, nmap -A <<IP_Adresi>> -v komutu çalıştırıldı. -A parametresi SYN taraması, güncel servis versiyon taraması, işletim sistemi taraması ve traceroute taraması yapan bir parametredir. -v parametresi ise detaylı bilgi vermek amacıyla kullanıldı.
Yapılan tarama işlemi sonucunda 21 ve 22 numaralı TCP portlarının açık olduğu ve 21 numaralı port üzerinde FTP (vsftpd 3.0.3), 22 numaralı port üzerinde SSH (OpenSSH 7.6p1) servislerinin çalıştığı tespit edildi. Resim 1’de tarama sonuçları yer almaktadır.
FTP servisine, anonim erişim olup olmadığının test edilmesi için
nmap -T4 -sV -v <<IP_Adresi>> –script=ftp-anon -p 21
komutu çalıştırıldı. Nmap tarafından sunulan ftp-anon scripti kullanılarak FTP servisine anonim erişim olduğu tespit edildi. Resim 2’ de tarama sonuçları yer almaktadır.
Resim 2 – Anonim Erişim Taraması
FTP servisine anonim erişim sağlandı ve erişim sağlanan dizin listelenerek backup adlı bir dosya bulundu.
Resim 3 – Backup Dosyası
Backup dosyası yerel makineye indirildi ve dosya bir metin editörü ile açılarak çerisinde yer alan bilgilerin shadow dosyasının yedeği olduğu tespit edildi. Shadow dosyasında kullanıcı parolalarının hash değerleri saklanır ve bu hash değerleri bir parola listesi aracılığıla kırılarak açık metin parolalar elde edilebilir. Resim 4’te backup dosyasının içeriği yer almaktadır.
Resim 4 – Backup Dosyasının İçeriği
Dosya içerisinde w0ps adlı kullanıcının parolasına ait hash değeri yer almaktadır. Bu hash değeri bir parola listesi aracılığıyla kırılabilir. Resim 5’te John-The-Ripper aracıyla, rockyou.txt adlı parola listesi kullanılarak w0ps adlı kullanıcının parolasına ait hash değeri kırıldı ve parola açık metin olarak elde edildi.
Resim 5 – Elde Edilen Kullanıcı Parolası
w0ps kullanıcısı ile SSH servisi üzerinden makineye erişim sağlandı. Resim 6’da elde edilen SSH oturumu yer almaktadır.
Resim 6 – SSH Oturumu
w0ps adlı kullanıcı düşük yetkilere sahiptir. Bu nedenle yüksek yetkilere erişmek ve privflag.txt adlı dosyayı okuyabilmek için hak ve yetki yükseltme işlemi yapılması gerekmektedir. Resim 7 ‘de hak ve yetki yükseltme işlemi için sudo -l komutu çalıştırıldı ve sudo programının kullanıcı yetkileri incelendi.
Resim 7 – SUDO Yetkileri
Yapılan inceleme sonucunda, socat programının sudo programıyla birlikte, herhangi bir sudo kullanıcısının parolasına gerek olmadan çalıştırılabileceği tespit edildi. Böylece, socat programı sudo programıyla birlikte çalıştırılarak bir port üzerinden dinleme modu başlatılabilir ve o porta saldırgan makine ile bağlanıldığında, makine üzerinde root hakları elde edilebilir. Resim 8’de socat programı sudo programı ile birlikte çalıştırıldı ve 4444 portu üzerinden dinleme modu başlatıldı.
Resim 8 – SOCAT Dinleme Modu
Socat programı, EXEC parametresine /bin/sh yolu atanarak çalıştırıldığı için, dinlenen porta saldırgan makine üzerinden bağlanılması durumunda, root haklarıyla bir shell oturumu elde edilecektir. Resim 9’da saldırgan makine üzerinde socat programı kullanılarak, W000PS makinesinin 4444 portuna erişim sağlandı ve root haklarıyla shell oturumu elde edilerek hak ve yetki yükseltme işlemi gerçekleştirildi.
Resim 9 – Root Haklarıyla Oturum Elde Edilmesi