METASPLOITABLE 2

Metasploitable2 makinası ile aynı subnet içerisinde olduğumuz için öncelikle ip adresini çözümleyip daha sonrasında üzerinde çalışan servislerin tespitini yapıcağız.

Aşağıda gösterilen ekran görüntüsünde netdiscover aracı ile ağdaki aktif makinaların tespiti yapılmıştır ve burada hedef makinamız metasploitable2’ye ait olan ‘192.168.2.139’ ip adresi bulunmuştur gateway adresimiz ise ‘route -n’ komutu ile öğrenilmiştir.

Ardından metasploitable makinasına ait açık olan portların ve üzerinde çalıştırdığı servislerin tespiti için nmap versiyon keşfi için (-sV) , açık portları listelemesi için (--open) ve tüm portların taranması için (-p-) parametreleri kullanılarak aşağıdaki sonuç elde edilmiştir.





Bu taramadan sonra üzerinde çalışan tüm servislerin versiyon bilgileri gibi kritik öneme sahip olan bilgilerini elde ettik, ilk olarak sırasıyla 21 numaralı port üzerinde çalışan ftp servisi’nin versiyon bilgisi için metasploit içerisinde bir exploit arandı.Bunu gerçekleştirirken bize zaman kazandıracak olan filtrelemelerden yararlanıldı ve aşağıdaki ekran görüntüsündeki sonuç elde edildi.

Sonrasında ise yapmamız gereken hedef sistem üzerinde vsftpd 2.3.4 versiyonlu uygulaması için yazılmış olan exploiti kullanmaya geldi.

Aşağıdaki ekran görüntüsünde bu exploiti use komutu ile seçip gerekli olan ayarları options komutu ile öğrenip metasploitable’ın ip adresini ekliyoruz.



Daha sonrasında ise run komutu ile çalıştırdık(bunu exploit komutu ile de gerçekleştirebilirsiniz.) exploit sonucumuz aşağıdaki gibi bir çıktı veriyor ve bizde başarılı olan sömürü işlemini sonrasında sistemdeki kullanıcı kimliğimizi öğrenmek için id komutunu çalıştırıyoruz, bunun sonucunda sistemde yetki yükseltme(privilege escalation)’ye gerek olmadan işlemimizi gerçekleştirdik.





Nmap çıktısında nfs servisinin de açık olduğu gözüküyor bu durumda ağ içerisinde bir ihlal yapılabilir.Öncelikle showmount komutu kullanılarak hedef makina’nın dışarıya aktardığı alanı görüntülüyoruz.





Yukarıdaki ekran görüntüsünde görüldüğü gibi hedef makinanın dışarıya kök dizini’ni aktardığını görüyoruz ardından buradan yola çıkarak bir ssh anahtarı oluşturup bu dışa aktarılan dizine bağlantı kurabiliriz.





Evet Yukarıdaki ekran görüntüsünde de görüldüğü üzere ssh-keygen ile varsayılan olarak belirlenen dizin yoluna bir kimlik doğrulama anahtarı oluşturulmuşt



Ardından yukarıdaki ekran görüntüsünde /tmp dizini altına mts2 adında yeni bir dizin oluşturulup, bu dizin mount komutu kullanılarak hedef sistem olan ve kök dizini’ni dışarı aktarım sağlayan metasploitable2 makinasının kendi sistemimizde belirlemiş olduğumuz tmp/mts2 dizini ile bağlıyoruz.



Yukarıdaki ekran görüntüsünde göründüğü gibi yaptığımız işlem metasploitable2 makinasında nfs ile dışa aktarılan kök dizini’ni /tmp içerisinde oluşturmuş olduğumuz mts2 ile bağlamıştık sonrasında bağlanan bu dizinden hedef makinanın /root/.ssh dizinindeki doğrulama anahtarı ile bizim oluşturmuş olduğumuz pub uzantılı doğrulama anahtarını cat komutu ile ekliyoruz ve ardından ssh bağlantımızı root erişimi ile gerçekleştirip sisteme giriyoruz.

Diğer bir Zafiyetli uygulama ise dns sunucusu olan ve udp 53 numaralı port’ta çalışan isc bind servisidir. Elde edilen versiyon türü araştırıldığında Remote dns cache poisoning ya da diğer adıyla dns spoofing bu saldırı hedef sistemin dns servisi’nin bilgi aldığı dns belleğini zehirleyerek kurban makina’nın istenilen adrese çekilmesine yol açmaktadır kısaca.Bu zafiyetin cve detayları aşağıdaki ekran görüntüsünde gösterilmiştir;

Belirtilen modullerin ortak isimleri olan ‘bailiwicked ’ kelimesi metasploitable da aratıldığında iki adet auxiliary modul bizi karşılamakta.

Cve sayfasında belirtilen modul özellikleri incelendiğinde yapmak istediğimiz saldırı için ‘1’ numaralı modul kullanılmaya karar verildi.Ardından hedef için gerekli ayarlar eklenerek modul çalıştırılabilir hale getirildi.

Burada hostname alanı ‘na dig komutu sayesinde google.com alan adının ns(name server) sunucuları tespit edilerek herhangi bir tanesi eklenmiştir.





Ardından ise bu alan adının gerçek olmayan ip adresi olan kendi makinamızın ip adresi newaddr alanına eklendi vebelirtildiği gibi otamatik bir kaynak portu için srcprt alanına da ‘0’ atanmıştır, sonrasında ise modul çalıştırılmıştır ve aşağıdaki wireshark sonucu elde edilmiştir.

Yukarıdaki wireshark sonucunda ‘dns && ip.src == 192.168.2.139’ filtrelemesi yapılarak dns sorgu trafiğinin belirtilen ip adresinden çıkan paketler filtrelenmiştir.Daha sonra ilk paket incelendiğinde ve Network katmanında çalışan ip ‘nin içerdiği bilgiler incelendiğinde hedef sorgu adresi olarak ‘192.168.2.128’ ip adresi(yani bizim kandırma işlemi yaptığımız kendi ip adresimiz)gözükmektedir. Ardından ise DNS protokolü içerisindeki bilgiler incelendiğinde (Bilindiği üzere dns uygulama katmanında çalışır) sorgu alan adının bizim belirttiğimiz alan adı olduğu görülmektedir.

Ardından 139 ve 445 numaralı portlar üzerinde hizmet vermekte olan nebios hizmeti üzerinde çalışan samba versiyon bilgileri için aşağıdaki ekran görüntüsünde olduğu gibi nmap aracı -sC(varsayılan scriptleri denemek için) opsiyonu ile taranarak kritik bilgileri öğrendik.



Buna göre servisimiz Samba 3.0.20 kullanıyor bu versiyon için arama yaptığımızda kullanılan servis hakkında bir command execution zafiyeti olduğu ve bu zafiyetin cve detaylarında kullanabileceğimiz metasploit modulu gözümüze çarpıyor.





Sonrasında bu modul aşağıdaki gibi hedef sistemin ip adresi ve target id olarak ‘0’ eklenip çalıştırılmıştır.





Evet yukarıdaki ekran görüntüsünde de göründüğü gibi sistem üzerinde exploit’imiz başarılı olmuştur ve root olarak sisteme sızma işlemi gerçekleşmiştir.



Daha sonrasında ise 8180 numaralı port’ta unknow adında bir servisin çalıştığı dikkatimizi çekiyor bu servisi spesifik olarak nmap ile tarama yaptığımızda aşağıdaki ekran görüntüsünde de belirtildiği gibi apache tomcat servisinin olduğu ortaya çıkıyor.



Sonrasında ise tomcat uygulaması’nın versiyon bilgisi ve uygulama’nın çalışma prensibi hakkında biraz araştırdıktan sonra uygulamanın java tabanlı olduğunu ve bazı moduller ile yanlış yapılandırılma ihtimaline karşılık metasploit içerisinde modul araması yapılmıştır.



Ve yukarıdaki ekran görüntüsünde olduğu gibi auxiliary modulleri sıralanmıştır.Yapmamız gereken modullerin ne işe yaradığını öğrenmek için açıklamalarını okuyabiliriz. 4 numaralı modulun tam da istediğimiz gibi uygulama üzerindeki kullanıcı isimlerini listeleyebileceğini görüyoruz ve ilk önce bunu kullanmayı uygun bulduk.





Yukarıdaki ekran görüntüsünde de göründüğü gibi hedef makinanın bilgilerini ekledik, ve varsayılan olarak kullandığı kullanıcı adı wordlist’ini değiştirmedik ve bu işlemler bittikten sonro modulumuzu çalıştırdık.



Daha sonra yukarıdaki ekran görüntüsündeki sonuç ile karşılaştık buradan bulunan kullanıcı isimleri tırnak işareti içerisinde belirtildiğini görüyoruz.

Bu işlemden sonra ise bulmuş olduğumuz diğer modul olan ve numarası ‘5’ olan auxilairy modulunu kullanıyoruz ve gerekli olan hedef makina bilgilerini ekliyoruz.Bu ayarlara baktığımızda yine varsayılan olarak kullanıcı parola ve kullanıcı isimlerine ait wordlistler ekli bir vaziyette,eğer varsayılan olan bu wordlister sonuca götürmezse yukarıdaki gibi bulduğunuz kullanıcı isimlerini ve bu kullanıcı isimleri ile doğruluk oranı yüksek olan parola wordlisterinizi kendiniz ekliyebilirsiniz.

Bu ayarlardan sonra modulumuzu çalıştırdığımızda aşağıdaki bulunan kullanıcı adı ve sonucu ile karşılaşıyoruz.

Buradan kullanıcı adı ve parola ‘nın tomcat:tomcat olduğu bulunmuştur.Sırada aşağıdaki gibi bu kullanıcı adı ve parola ile giriş yapmaya geldi.



Sonrasında ise tarayıcımızdan servisin çalıştığı port numarasına bağlanıyoruz, burada ‘tomcat manager’ alanı dikkatimizi çekiyor giriş yapmak istediğimizde bize kullanıcı adı ve parola soruyor.Bulmuş olduğumuz kullanıcı adı ve parolayı buraya ekleyerek devam ediyoruz.



Ardından manager alanında bizi karşılayan sayfada bir dosya upload alanı gördük, buraya belirtilen ‘war’ dosya formatında bir payload üreterek buradan shell alabiliriz.

Payload üretimi için msfvenom aracını kullanıyoruz, ve öncelikle hededf sisteme uygun bir payload arıyoruz.Bizim hedef sistemimiz ‘war’ formatında yani java’yı çalıştırabilecek bir formatta bir payload’a hayır demez.

Aşağıdaki ekran görüntüsünde gösterildiği gibi msfvenom -l opsiyonu ve grep komutu ile spesifik bir arama gerçekleştirip ihtiyacımız olan payload’ları listelemiştir.

Burada kendi cihazımızdan bağlantı kurmak için bir reverse tipi payload’ı seçiyoruz ve cihazımızın ip adresi ile dinleme yapacağımız port numarasını verdikten sonra gerekli olan platform , dosya uzantısını da ekliyoruz.



Ardından netcat ile belirttiğimiz port numarasını dinlemeye geçiyoruz, ve tarayıcıdan yüklediğimiz dosyayı etkinleştirerek netcat ile bir reverse bağlantısı oluşturuyoruz sonuç aşağıdaki ekran görüntüsündeki gibi oluyor.





Şimdi sırada yetki yükseltme işlemine geldi bu işlemi gerçekleştirirken öncelikle sistemde root kullanıcısı ile çalıştırılan servisleri ve uygulamaları listeliyoruz.



Ardından root olarak çalıştırılan servislerden olan nmap ile bu işlemi gerçekleştirebileceğimizi düşünerek nmap ‘i –interactive opsiyonu ile çalıştırıyoruz, ardından sh kabuğu’nu çalıştırıp yetki yukseltme işlemini başarılı bir şekilde gerçekleştiriyoruz.



Tüm portların taranması sonucunda irc servisi’nin 6667 numaralı port’ta çalıştığını görüyoruz ve aşağıdaki ekran görüntüsünde de gösterildiği gibi nmap üzerindeki script opsiyonu ile spesifik bir port taraması gerçekleştirildi.





Bunun sonucunda yine çok kritik bilgilere erişim sağladık ve servisin versiyon numarasını etkileyen bir zafiyet için araştırdık daha sonrasında ise bu versiyon ile ilgili aşağıdaki ekran görüntüsünde ki cve detayları ile bulunmuştur.



Bunun yanında zafiyetin sömürüsü için 1 metasploit modulü ve 1 public exploit de gösterilmektedir. Bundan yararlanarak metasploit framework üzerinde belirtilen metasploit modulunu kullanmaya karar verip aşağıdaki ekran görüntüsünde olduğu gibi gerekli bilgileri modul üzerinde ekliyoruz ve çalıştırıyoruz.





Yukarıdaki ekran görüntüsünde exploitimiz başarılı bir şekilde çalışmıştır ve yetki yükseltme işlemine gerek kalmadan root ile sisteme erişim sağlanmıştır.

Yine tarama sonucunda postgresql kullanan hedef makinamızın kullandığı servisin versiyonu ile biraraştırma yapıldığında aşağıdaki ekran görüntüsünde gösterilen cve sonuçları ile karşılaşıyoruz.





Sonrasında belirtilen metasploit modulunu kullanarak ve gerekli olan eklemeleri yaparak çalıştırıyoruz bunun sonun da başarılı bir şekilde sisteme erişim sağlamış olduk.







Yukarıdaki ekran görüntüsünde göründüğü gibi exploit modulune ek olarak bir de 4444 numaralı portu dinleme gerçekleştiren ve sahneleyicisi meterpreter olan payload’da eklenmiştir.





Ardından yukarıdaki gibi başarılı bir şekilde meterpreter shell alınmıştır fakat sisteme erişen kullanıcı adının postgres adında bir kullanıcı olduğu gözükmektedir ve yetkileri kısıtlıdır bir yetki yükseltme gerçekleştirmek için yukarıdaki tomcat örneğinde olduğu gibi root kullanıcı yetkisi ile açılan uygulamalardan yetki yükseltilebilir ya da kullanılan linux çekirdeği’nin versiyonu araştırılarak ve buna uygun bir yetki yukseltme exploit modulu varsa bu da kullanılabilir. exploit-db.com adresinde buna uygun olarak bir exploit modulu aşağıdaki ekran görüntüsünde de göründüğü gibi indirilerek adı ‘exploit_kernel.c’ olarak değiştirilmiştir.





Daha sonra ilk 18 satırlık kısmı okunarak modul hakkında içerisinde bilgi alınmıştır ve bu sayede derleme aşamasında kullanılabilecek parametreler terminal ekranında gösterilmiştir.





Sonrasında ise bu dosya meterpreter ‘upload’ komutu ile sisteme yüklenmiştir ve bu dosyayı gcc çalıştıran hedef sistemde derleyip çalıştırılabilir izni verilip çalıştırılarak yeni bir root parolası oluşturulmuştur.









Daha sonrasında exploit bilgisinde yazılan ‘mv /tmp/passwd.bak /etc/passwd ‘ komutu çalıştırılarak ve ssh bağlantısı exploit’te yazılan kullanıcı adı ile gerçekleştirilerek sistemde yetki yükseltme sağlanmıştır.





Bir diğer zafiyet ise 21 numaralı port’ta çalılan ftp servisi üzerinde ki yanlış yapılandırma sonucu oluşan Anonymous zafiyetidir. Bunun tespiti için yine -sC ile nmap script taraması gerçekleştirip terminal ekranında görebiliriz.



Aşağıdaki gibi hedef sisteme ftp bağlantısı gerçekleştirilerek kullanıcı adı’nı Anonymous olarak ve herhangi bir parola ile bu bağlantıyı gerçekleştirebilir ve kritik dosya’ların varlığını kontrol edebiliriz.







Bir diğer büyük bir zafiyet ise ingres veritabanı yönetim sistemi ile alakalı 1524 numaralı port’ta çalışan bir arka kapı zafiyeti.Bunu istismar etmek için yapmamız gereken sadece netcat ile bir bind shell bağlantısı gerçekleştirmektir.