Kaldığımız yerden makina çözümlerine devam ediyoruz 🙂 Bu hafta gözüme Pandora makinasını kestirdim kolları sıvayıp çözüme başladım. Çok fazla vakit ayırdığım söylenilemez o yüzden sadece user flag alıp sonlandırdım.

Görsel 1.0

Nmap taramasını yaptığımızda 2 adet açık port olduğunu görüyoruz. 80 portuna giriş yaptığımızda bizi bir web sayfası karşılamakta

Görsel 2.0

Web sayfasını biraz incelediğimde çok işe yarar bir bilgi edinemedim. Sayfanın alt kısımlarında bulunan iletişim formuna bir kaç XSS ve SQLInjection saldırısı denedim ama hiç bir sonuç elde edemedim. Daha sonra Nmap ile bütün portları tarattığımda açık UDP portlarının olduğunu fark ettim ardından sadece UDP portlarını taratmakla işe tekrar başladım. Nmap hakkında yazdığım detaylı incelemeleri okumak isterseniz buraya tıklayınız.

Görsel 3.0

Açık portlar içerisindebulunan snmp servisi dikkatimi çekti. Nedir bu snmp servisi ve ne için kullanılır? Bu konu hakkında sizlere güzel bir içerik buluyorum ve okumanız için buraya tıklayın. Snmp hakkında zafiyetleri araştırmaya başlıyorum ve oldukça ilginç bir zafiyet yöntemini keşfediyorum ve snmpnin ne denli bir sorun olabileceğini öğrendiğimde gerçekten şaşırdım. SNMP1 ve SNMP2 içeriklerin şifrelemeden yani içeriklerin çok rahat okunulabildiği bir versiyon sadece SNMP3 de şifreleme mevcut. Günümüzde ise SNMP3 dışında eski sürümler kullanılmamaktadır.

Bu durum da Snmp1’de neler yapılmış öğrenmek için kullanabileceğimiz bir araç mevcut. Bu aracın ismine snmwalk denilmektedir. Bu aracın kullanımına geçmeden önce kali işletim sistemimde bulunan /etc/hosts dosyasında hedef makinanın isminie karşılık pandora.htb ismini veriyorum. Ip adreslerini sürekli aklımda tutmak benim için biraz güç ve bu şekilde daha sağlıklı ilerliyorum. Ayrıca sizler için snmwalk hakkında faydalı bir makaleyi paylaşmak istiyorum. Makaleyi okumak için buraya tıklayınız.

Snmpwalk uygulamasını çağırıp gerekli komutların girdikten sonra içeriğini bir .txt dosyasına yazılmasını istiyorum bu sayede içeriği daha rahat okur ve önemli kısımları gözden kaçırmamış oluruz. Kullandığım komut tam olarak; snmpwalk -v 1 -c public pandora .htb > snmpwalk-1.txt

Görsel 4.0

Çıkan içeriği bir editörde açıp incelediğimde ilk başta daniel isimli bir kullanıcı olduğunu gördüm. Ctrl + f yardımıyla daniel ismini girip, çıkan sonuçları incelerken, daniel kullanıcısına ait olduğunu düşündüğüm bir parolayı gördüm. Hemen ssh yardımı ile hedef makinaya daniel kullanıcısı sayesinde bir bağlantı gönderiyorum

Görsel 5.0

Ve denediğim parola tahmin ettiğim gibi daniel kullanıcısına ait çıktı. Bu sayede sisteme erişim sağlıyorum fakat daniel kullanıcsının yetkileri çok güçlü değil. Sistem içerisinde gezinirken matt kullanıcısına ait user.txt okumak istediğimde erişim engeli ile karşı karşıya kaldım. Daha sonra /var/www klasörünü ziyaret ederken aslında iki adet dosyanın olduğunu fark ettim. Url kısmında pandora.htb/pandora adresine gitmek istediğimde böyle bir sayfanın olmadığıyla ilgili bir hata mesajı aldım. Hedef makina üzerinde /etc/hosts dosyasına gittiğimde ise local ağda çalışan farklı adreslerin olduğunu gördüm (Görsel 6.0)

Görsel 6.0

Ssh ile giriş yapmayı başarmıştık şimdi ssh’ın proxy özelliğini kullanarak hedef makina üzerine erişim sağlayıp sadece localde erişime açık olan domain isimlerini görmeyi deneyeceğiz. Öncelikle tarayıcımızın proxy ayarını yapıyoruz.

Görsel 7.0

Proxy ayarlarımızı local ip adresimi olarak tanımlıyoruz çünkü ssh kullanarak bağlantı sağlayacağız ve ssh komutunda ise localden gelen istekleri hedef makinada 80 portuna gönderilmesini isteyeceğiz. SOCKS_v5’in işaretli olduğunu kontrol edin çünkü hedef makinaya bağlantı sağladığımızda URL kısmına panda.htb adresini girdiğimizde ip çözümlemesini yapması gerekmekte. SOCKS_v5 tam olarak bu adr es çözümlemeyi yapmaktadır.

Görsel 8.0

Kedni makinamız üzerinde 8785 portuna gelen istekleri hedef makina üzerinde 80 portuna yönlendirilmesini istediğimi komutlarla bildirdim. Kullanıcı adı ve parolamızı girdikten sonra hedef makina bağlantımız başarıyla gerçekleşti. SSH Tunnel hakkında faydalı bir makale buldum, okumak için tıklayınız.

Görsel 9.0

Görsel 6.0’da karşılaştığımız adreslerden pandora.htb’a giriş yapmak istediğimizde bizi farklı bir web sitesi karşılamakta. Pandora FMS hakkında araştırmalar yaparken bir yazıya denk geliyorum ve char_generator.php dosyasındaki session_id parametresinin bir zafiyete sahip olduğunu öğreniyorum. Okumak için tıklayınız.

sqlmap uygulamasını çalıştırıyorum ve hedef makinaya proxy ile bağlanmasını istiyorum. Sırasıyla önce veritabanlarını listelerken daha sonra panda veritabanına ait tablolaları listeliyorum ve hemen hemen hepsini incelediğim tablolardan php_sessions tablosunda işime yarayacak verilerin kayıt edildiğini gördüm. Görsellere geçmeden önce sqlmap için kullandığım komutlar sırasıyla;

sqlmap –url=”http://localhost.localdomain/pandora_console/include/chart_generator.php?session_id=”” –dbs –tables –proxy=http://127.0.0.1:8785

sqlmap –url=”http://localhost.localdomain/pandora_console/include/chart_generator.php?session_id=”” -D pandora -T tsessions_php –dump –proxy=http://127.0.0.1:8785

Görsel 10.0

Görsel 10’da kullanıcılar oturum açarken elde edilen session idlerinin saklandığı bir veritabanını görüyorsunuz. Bunlar nerede kullanılır dediğinizi duyar gibiyim.

“http://pandora.htb/pandora_console/include/chart_generator.php?session_id=” adresine gidip yukarıdaki yakaladığımız session anahtarlarından işimize yarayacak olanı kopyalayıp adresin sonuna eklediğimizde sistem içerisine şifreye gerek kalmadan erişim sağlıyoruz. Bu sayede sistemin içerisinde daha rahat dolanırken hangi zafiyetleri kullanabiliriz bunu keşfetmiş olacağız.

Pandora üzerinde mevcut exploitlerin olup olmadığını görmek için searchsploit aracını başlatıyorum ve hedef makina üzerinde dosya yüklememize olana sağlayan bir exploitin olduğunu görüyorum. Exploite ulaşmak için tıklayınız.

Hedef makinaya, indirdiğimiz exploiti ve reverse shell almak için bir php dosyasını gönderiyorum. Php dosyasını exploit aracılığı ile images klasörüne yüklemeyi başarıyorum fakat reverse shell alamıyorum. Daha sonra webshell yüklüyorum ve hedef makina üzerinde bağlantı sağladığımız kullanıcı üzerinden komut göndermeyi deniyorum.

Görsel 11.0

Komut gönderimini başarıyla sağladığımı görüyorum ve sisteme eriştiğim en başta okumaya çalıştığım dosyayı buradan terar okumaya çalışıyorum ve ilgili dosyanın içerisindeki hash kodunu alarak makina çözümünü tamamlıyorum