Bugün PRISMA CSI ekibi tarafından hazırlanan Typhoon v1.02 makinesinin çözümünü yapacağız. Makine oldukça kolay bir makine, yeni başlayanlar için oldukça yararlı olduğunu düşünüyorum. Ben çözerken oldukça eğlendim. Özellikle birden fazla zafiyet bırakılması aynı makine üzerinde birçok servisi tecrübe edebilmemize olanak sağlıyor.
İlgili makineyi indirmek için tıklayın
İçindekiler Tablosu
Bilgi Toplama
Öncelikle makinemizin ip adresini ve üzerinde çalışan servis ve uygulamaları bulmakla işe başlıyoruz. “ip -a” komutu ile kali makineme 192.168.64.3 ip adresinin verildiğini görüyorum. Dolayısıyla zafiyetli makinemiz de bizimle aynı subnettte olmalı. Dolayısıyla 192.168.64.0/24 ip aralığına nmap taraması gerçekleştiriyorum.
Böylece makinemizin ip adresinin 192.168.64.8 olduğunu öğrenmiş olduk. Ayrıca makinenin hostname kısmını da bulmuş olduk. Şimdi makinenin ip adresini bildiğimize göre servis taraması gerçekleştirebiliriz.
Her yiğidin bir yoğurt yiyişi vardır derler. Gözümüze bir sürü zafiyetli servis çarpsa da geleneği bozmuyorum ve ilk başta 80 portuyla işe başlıyorum. Tarayıcıdan 192.168.64.8 adresine gittiğimde statik bir html sayfası beni karşıladı. Burada çok yol kat edemeyeceğimi anladım ve /robots.txt dosyasını okumaya çalıştım. Ve bingo ilk olası zafiyetimizi bulduk.
User-agent: *
Disallow: /mongoadmin/
Tabi web zafiyetlerinin bununla sınırlı kalmayacağını bildiğimden dirbuster ile ufak bir dizin taraması işlemi gerçekleştirmeye karar verdim. Aşağıda dirbuster işlemi sonucunda aldığım çıktıyı görüyorsunuz.
Zafiyet Tespiti & Sömürüsü
Bilgi toplama aşamasının tamamlanmasının artından zafiyet toplama aşamasıyla yolculuğumuza devam ediyoruz.
Lotus CMS 3.0 RCE Exploit
Dirbuster ile öğrenmiş olduğumuz /cms klasörünü ziyaret ettiğimizde karşımıza bir içerik yönetim sistemi çıkmakta. Footer kısmındaki “Powered by LotusCMS” yazısı dikkatimi çekti. Metasploit Framework üzerinden bu CMS için bir exploit olup olmadığını sorguladığımda karşıma Lotus CMS 3.0 üzerinde bulunan RCE (Remote Code Execution) güvenlik açığı çıkmış oldu.
use exploit/multi/http/lcms_php_exec
Exploitin parametrelerini verip payload olarak php/meterpreter/reverse_tcp seçmemin ardından www-data olarak msf Shell almış oldum.
WebCalendar 1.2.4 RCE Exploit
Dirbuster üzerinden bulmuş olduğumuz ikinci klasör olan /calendar ile devam ediyoruz. Tarayıcıda bu URL’i ziyaret etmek istediğimde beni calendar.typhoon.local domainine yönlendirdiğini ve bu domainin hiçbir DNS kaydı olmadığı için 404’e düştüğümü gördüm. İlk olarak /etc/hosts dosyamıza bu domaini ekleyerek işe başlıyoruz.
192.168.64.8 calendar.typhoon.local
Sayfayı yenilediğimde footer kısmında webcalendar 1.2.4 yazısı dikkatimi çekiyor. Yine metasploit üzerinden yapmış olduğum arama sonucunda WebCalendar 1.2.4 Pre-Auth RCE exploit bulunduğunu öğreniyorum.
use exploits/Linux/http/webcalendar_settings_exec
Exploitin gerekli parametrelerini verdiğimde beni yine bir msf Shell karşılıyor.
Drupalgeddon 2 Forms Api Property Injection
Şimdi ise /drupal klasörümüze bakıyoruz. Versiyon bilgisi göremediğimden sayfa kaynağını görüntüle dedim. HTML head kısmında meta generator olarak Drupal 8 verilmişti. Drupal 8 üzerinde var olan zafiyetleri araştırdığımda ilgili zafiyet ile karşılaştım.
use /etploit/Unix/webapp/drupal_drupalgeddon2
Exploitin ilgili parametrelerini verip çalıştırdığımda ise meterpreter ile karşılaşıyorum.
Diğer Klasörler
Buraya kadar olan yöntemlerden herhangi biri ile elde ettiğim bir Shell üzerinden web root folder olan /var/www/html klasörüne ls komutunu gönderdiğimde içeride /dvwa ve /xvwa isimli iki adet klasör daha olduğunu gördüm. Bu klasörlerde zafiyetli web uygulamaları laboratuvarları var. İsterseniz buralardaki zafiyetleri de ayrıyeten çözebilirsiniz. Ancak ben bu konuya burada değinmeyeceğim.
PHPMyAdmin
/xvwa klasörünü ziyaret edip içerisinde bulunan config.php dosyasını okuduğumda veritabanı bilgileri döndü. Kullanıcı adı: root, Parola: toor. Kısaca her web uygulaması için ayrı mysql kullanıcıları oluşturmak yerine root kullanıcısı ile bağlantı gerçekleştirilmiş.
Bu bilgiler ile /phpmyadmin klasöründe oturum açtıktan sonra mysql root yetkisine sahip olduğumu görüyorum.
MongoAdmin Creds
Hatırlarsanız en başta /mongoadmin adında bir klasörümüz daha vardı. Bunu ziyaret ettiğimde komik bir şekilde hiçbir parola sormadan mondodbadmin yetkisiyle karşı karşıya kalıyorum. Creds tablosunu görüntülediğimde ise karşıma kullanıcı adı ve parola çıkıyor. Kullanıcı Adı: typhoon, Parola: 789456123.
Bu bilgiler neyin parolası olabilir diye düşünürken ssh bağlantısı sağlama fikri aklıma geliyor. Ve bingo ssh [email protected] olarak başarıyla oturum açıyorum.
Böylece web üzerinden elde edebileceğimiz bütün zafiyetlere değinmiş oldum. Şimdi sırada servislerdeki zafiyetler var.
Apache Tomcat
use auxiliary/scanner/http/tomcat_mgr_login kullanarak tomcat parolasını bulmaya çalıştım. Bu işlem sonucunda tomcat:tomcat şeklinde giriş bilgilerini buldum.
Daha sonrasında 192.168.64.8:8080/manager adresinden kullanıcı adı ve parolayı girerek tomcat admin olarak sisteme giriş yaptım. Bu aşamadan sonra isterseniz msfvenom ile backdor oluşturularak sistemde user Shell elde edebilirsiniz.
PostgreSQL DB 9.3.3 – 9.3.5 Dosya Okuma
İçeride çalışan PostgreSQL sunucusunun ilgili sürümlerinde dosya okuma açığı bulunmaktadır. Metasploit üzerinden auxiliary/admin/postgres/postgres_readfile kullanılarak istenilen dosyayı okuyabilirsiniz. Okumak istediğiniz dosyayı “set RFILE” ile belirlemeniz yeterli.
Yetki Yükseltme
Elde ettiğimiz typhoon kullanıcısı ile SSH bağlantısı gerçekleştiriyorum. Uname ile kernel sürümünü kontrol ettiğimde 3.13.0-32-generic olduğunu görüyorum. CVE-2015-1328 numarasına sahip bir exploit olduğunu görüyorum.
https://www.exploit-db.com/exploits/37292
İlgili exploiti yukarıdaki bağlantıdan indirip gcc ile derledikten sonra başarılı bir şekilde makinede root oluyorum.
Böylece makinemizi bitirmiş olduk. Birden fazla zafiyet olduğundan, makine üzerindeki tüm zafiyetlerin keşfi ve sömürüsü yaklaşık 3-4 saat zamanımı aldı. Makine çözümüne yeni başlıyorsanız oldukça faydalı olacağını söyleyebilirim. Sorularınız için yorumlar bölümünü kullanabilir, [email protected] mail adresimden bana ulaşabilirsiniz.
Daha fazla writeup yazısına erişmek için tıklayın
Deniz Bektaş
HacktorX YazarıYaklaşık 10 yıldır programlama ve siber güvenlik ile ilgilenmekteyim. Kendimi Web Application Pentesting, DevOps ve Backend Development alanlarında geliştirmekteyim.