Merhabalar, bugün vadesi dolan Vault makinesini çözeceğiz.
Vault makinesinin zorluğu medium olmasına rağmen, benim çözdüğüm en karmaşık makineydi. Bu makinenin detaylı çözümü için hazırladığım pdf dosyasını da yine bilalkan.com/downloads kısmında bulabilirsiniz.

Dost düşman belli olsun diye seri bir nmap taraması başlatalım.

80 portunda bir hareketlilik var, tarayıcıdan bi göz atalım.

Karşımıza Slowdaddy isimli web servisleri yazan bir firmanın anasayfası çıktı. Alt satırda da Sparklays isimli ilk müşterisinin sitesini henüz tamamlamadıklarını yazmışlar. O zaman /sparklays  dizini var mıdır diye bi kontrol edelim.

Varmış ama erişmek için yetkimiz yok.
Başka dizin bulmak adına hızlıca dirb atalım.

Dirb taraması sonucu gelen index.php  sayfası ilk başta çıkan Slowdaddy’nin anasayfası.
Bu taramadan elde ettiğimiz tek şey sayfanın php çalıştırdığı oldu. Niye buraya dirb attık ki zaten, bi de/sparklays  dizinine dirb atalım.

Tarama sonucu bir admin login sayfası ve /design  dizini elde ettik.
Admin sayfasındaki login formu makineye rabbit hole olarak koyulmuş. Giriş yapmak için herhangi bir credential veya zafiyet elimizde yok.
Yine tarama sonucu gelen /design ve /design/uploads  dizini de forbidden döndürdü.

Dirb aracı yine şaşırtmadı ve bize faydalı bir bilgi döndürmemiş oldu. Bi şeyler olmalı, İsviçre çakısından gobuster aracını çıkardık ve daha geniş bir wordlist kullanarak php ile html uzantılarını da taramasını istiyoruz. Bunları dirb ile de yapabilirdik ama bi soğudum dirb’ten.

Tarama sonucunda design.html  sayfasını elde ettik, yürüyelim.

Link gördük, tıklamazsak olmaz. Buyurun “Change Logo” diyelim.

Basit bir upload sayfası karşıladı bizi. Hemen php reverse shell atalım dedik ama filtreleme yapılmış, resim harici dosyaların yüklenmesi engellenmiş. Uzantıyı php yerine php5 yaptık vee…

Şimdi shell alabilmek için netcat ile dinlerken /sparklays/design/uploads  dizinine giderek bilal.php5  dosyasını çalıştıralım.

www-data  kullanıcısıyla bir shell almayı başardık. Şimdi sıra makinede geçerli bir user olabilmekte.

Aradan çıkarmış olmak açısından python ile etkileşimli bir shell alıp home dizinine yol alıyoruz. Makinede 2 user var gözüküyor.
alex ve dave kullanıcılarından alex kullanıcısının dizinleri boş, dave kullanıcısının ise Desktop dizininde 3 dosya bulunuyor.
Dosyalardan Servers dosyasında Firewall ve DNS makinelerinin IP adresleri bulunmakta, ssh dosyasında SSH giriş bilgileri ve key  dosyasında da henüz anlamlandıramadığımız bir metin var.

Daha stabil ilerleyebilmek için SSH bağlantımızı, verilen dave:Dav3therav3123   bilgileriyle kuruyoruz ve DNS makinesine zıplayabilmek için araştırma yapmaya başlıyoruz.

Araştırma sonucunda bir veri elde edemeyince makinede yüklü olan netcat aracıyla DNS makinesinin ilk 100 portunu tarıyoruz.

*İlk 100 port taraması sonucu biraz fazla yer kapladığı için sonuçlarda açık olarak gözüken 22 ve 80 portlarını ekran görüntüsü almak için tekrar taradım.

Port taraması sonucunda 22 ve 80 portları açık olarak döndü. DNS makinesinin açık olan 80 portunda ne var ne yok bakabilmek için, ubuntu makinesi aracılığıyla SSH tünelleme yapacağız.

ssh -L 1071:192.168.122.4:80 dave@10.10.10.109  komutuyla tünelledik.
https://www.youtube.com/watch?v=w0Lz_J3WKNA

Uzatmadan tarayıcıyı açıp 80 portunu tünellediğimiz http://localhost:1071  adresine gidelim.

Karşımıza DNS ayarlarını düzenleyebileceğimiz ve VPN konfigürasyonunu test edebileceğimiz bir sayfa çıktı.
İkisini de görüntülediğimizde pek anlam veremedik. Bu yüzden gobuster’ı yerinden tekrar çıkarıyoruz.

Gobuster /notes  dizinini buldu, göz atalım.

/notes  dizininde chmod 123.ovpn 777   görünce “ulan anladım da olur mu ki” diyerek, google’da “how to get reverse shell from openvpn configuration file” aramasını yapıyoruz. Alttaki linkte adamın biri sorumuzun cevabını direkt yazmış, vermiş.
https://medium.com/tenable-techblog/reverse-shell-from-an-openvpn-configuration-file-73fd8b1d38da
Şimdi sıra dosyayı kendimize göre düzenleyip shell almakta.

“Test VPN” demeden önce netcat aracını çalıştırıyoruz ve root yetkileriyle DNS sunucusunda oturum elde etmiş oluyoruz.

Bizi burada öncelikle user.txt dosyası karşıladı. Yanında da ssh  isimli bir başka dosya bulunuyor.
Tahmin edildiği üzere SSH giriş bilgileri verilmiş, girelim.

DNS sunucusu bu makine olduğu için Vault makinesine buradan geçiş yapacağız.
Hangi IP adresine Vault denilmiş öğrenmek için /etc/hosts  dosyasını görüntülüyoruz.

Vault makinesinin IP adresini öğrendiğimize göre daha rafine bilgiler toplamaya başlayabiliriz.

Bu aşamada varsa elinizdeki tüm antidepresanları yarım ekmek arasına koyup yiyebilirsiniz, çünkü işler iyice karışacak.

Log dosyaları içerisinde makinenin kurduğu bağlantıları loglayan dosya auth.log  dosyasıdır. Kullanıcıların authentication metotlarını ve bağlantı kurma zamanlarını kayıt altına alır.
Bu dosyaya göz atarak devam ediyoruz.

auth.log  dosyasında Vault makinesi ile kurulan bağlantıları inceleyelim.
Öncelikle 4444 portundan yapılan SSH bağlantısı gözümüze çarpıyor. Devamında 4444 portundan Vault makinesinin portları taranmış ve son olarak da 53 portundan 987 portuna yapılan istekler 1234 portundan dinlemeye alınmış.
Şimdi hem kaynak belirterek hem de kaynak belirtmeden iki nmap taraması yaparak ortalığı biraz daha karıştıralım, kaos benim karakterimdir.

Kaynak portu 4444 verdiğimizde açık gelen 987 portu, kaynak belirtmeden tarama yaptığımızda bize yanıt döndürmüyor.
Artık anlaşıldığı üzere Vault makinesi, önündeki firewall sayesinde sadece 4444 ve 53 portundan gelen istekleri yanıtlıyor.
Bir de 987 portunda bu kadar gizlenecek ne çalıştığını kontrol edelim.

Yine 4444 portundan yaptığımız isteğe dönen cevaba göre, Vault makinesinin 987 portunda SSH servisi çalışıyor.

Artık bölüm sonu canavarını görmenin vakti geldi, tünelliyoruz.
Dinlemeye aldığımız bir portu SSH bağlantısı için proxy olarak kullanırsak Vault makinesine erişebiliriz.

Evet, 4444 portundan 987 portuna bağlanarak dönen cevabı 571 portundan dinlemeye alıyoruz. Sona koyduğum &  işareti ile de bu dinlemeyi arka plana alarak terminalimizi tekrar hazır hale getiriyoruz.

Devamında DNS makinesinin SSH bilgilerini kullanarak Vault makinesine de bağlantı kurmayı başardık. Makine komple insanları yormak üzerine kurulmuş, başka bir amacı yok.
Neyse makineye dönelim.

Hemen root.txt okuyayım da bitsin bu acı derken root.txt  dosyasının gpg ile şifrelendiğini gördük. Aklıma direkt ubuntu makinede gördüğümüz key dosyası geldi. Encryption işlemi ubuntu makinesinde yapıldığı için decryption işlemini de yine ubuntu makinesinde yapmamız gerekecek. Bunun için dosyayı Vault makinesinden ubuntu makinesine taşımamız gerekmekte.

Dosyayı aslında base64 formatına çevirip ubuntu makinesine rahatlıkla kopyalayabilirdik fakat makinede base64 yüklü değil. SCP kullanarak 2 kere taşıma yapıp root.txt.gpg  dosyasını, ubuntu makinesine alabiliriz. Aslında makinede base32 yüklüymüş fakat ben bunu çözdükten sonra ekran görüntülerini alırken fark ettim.

Neyse base32 kullanmak kolay beyler, biz SCP kullanalım. Önce son bir kez daha 987 portunu yönlendirelim.

SCP aracını kullanarak, SSH protokolü üzerinden DNS makinesine dosya transferini gerçekleştirdik. Vault makinesindeki dosya artık DNS makinesinde de var.
Şimdi DNS makinesindeki bu dosyayı da ubuntu makinesine alalım.

Çok şükür dosyayı ubuntu makinesine alabildik. Şimdi tek yapmamız gereken gpg ile key dosyasındaki anahtarı kullanarak decrypt etmek.

Ve root.txt  okumayı başardık.

Okuduğunuz için teşekkürler. Sorularınız için bilalkan.com/contact

https://www.linkedin.com/feed/update/urn:li:activity:6521346065663295488

Tags: