İçeriğe geç

PTES Metodolojisi ile “BSides Vancouver: 2018 Vulnlab” Çözümü

PTES metodoloji çerçevesinde değerlendirilecek olan bu makina 21 Mart 2018 tarihinde  “BSides Vancouver: 2018” adıyla yayınlanmıştır içeriğinde reel olarak sızma testi gerçekleştirilirken karşılaşılabilecek zaafiyetler içermektedir. Virtualbox ve Vmware gibi sanallaştırma uygulamalarına uygun hazırlanmış bir imaj dosyası formatındadır. 

Dosya indirme linki: https://www.dropbox.com/s/j3r9l7kaydwsdm9/BSides-Vancouver-2018-Workshop.ova

Hedef: /root dizininin altındaki flag.txt adlı dosyanın okunması.

İzlenilecek adımlar şu şekildedir:

  • İstihbarat toplama
  • Tehdit Modellemesi
  • Zaafiyet Analizi
  • İstismar Süreci
  • İleri Sömürü Aşaması
  • Raporlama

İstihbarat Toplama

Yerel ağımıza kurulu olan sanal makinenin tesbiti için öncelikle ağ kartımızdaki ip subnet tespiti yapılacaktır.

 Resim 1: Yerel Ağ Bilgisi

Yukarıda resimde “ifconfig” komut çıktısı ile mevcut ip adresimizin tesbiti yapılmıştır. Kurban makinemiz ile aynı ağda olduğumuz için hedef alt ağımız 192.168.56.0/24 olarak belirlenmiştir.

Belirlenen subnet nmap adlı program ile taratılarak ip, port ve servis tesbiti yapılacaktır.

Resim 2: Linux nmap çıktısı

Yukarıdaki çıktı komutunda -sS ile portlar ile Syn flag i set ederek iletişim kurmasını dönen cevapların -sV parametresi ile mevcut nmap versiyon veritabanı ile karşılaştırılmasını ve -Pn parametresi ile de tüm hostların açık olarak kabul ederek tarama işlemi gerçekleştirilmesi istenmektedir.

Port taraması sonucu tespit edilen 192.168.56.101 ip adresli makinada 3 adet portun açık olduğu 80, 21 ve 22 bu portlar üzerinde kullanılan uygulama çıktısı elde etmiştir.

80 portunda Apache web serveri tespit edilmiştir. Web sunucusu  tarayıcıda açıldığında örnek bir apache hizmet sayfası bizi karşılamakta.

Resim 3: Apache web sunucu kök dizin

Herhangi bir girdi noktası bulunmayan bu web serverde istihbarat toplamaya devam ederken gönderilen ve alınan paketlerin içeriğinde tanımlı bir bir bilgi olup olmadığı kontrol edilir.

Alınan veride bilinmeyen bir bilgiye rastlanmadığı için web sunucusunda araştırma yapılmaya devam edilir sık kullanılan dosya ve dizinler taranır.

Resim 4: Dosya ve dizin tarama

Yukarıda resimde kullanılan dirb komutu hedef sistem üzerinde en çok kullanılan dosya ve dizinleri belirtilen wordlist ile dener ve sunucunun döndüğü değerleri yansıtır.Resim 4’te 403 kodu ile dönen dizinlerde yetkisiz erişim olduğunu, 200 kodu ile yer alan dizinlerin ise onaylandığı belirtilmektedir. Burada dikkat çeken dosya, arama motorlarının sitede erişilmesini istenmediği yerleri gösteren robots.txt dosyasıdır.

Resim 5: Robots.txt Dosyası

Belirtilen dizine erişilir.


Resim 6: WordPress Site Dizini

Burada WordPress tabanlı bir hazır script karşımıza çıkıyor. Bu adımda sitede var olan kullanıcıların tesbiti yapılarak yönetici paneline erişim hedef gözetilir.

WordPress hedef site ile ilgili daha fazla bilgiye erişmek için “wpscan” aracı kullanılır. Komut “wpscan -url http://192.168.56.101/backup_wordpress -enumarete u” şeklindedir.

Resim 7: Wp Kullanıcı Tesbiti

 

Tehdit Modelleme

Elimizdeki verilere bakıldığında uygulanacak tehdit modelleme sürecini şu şekilde    yorumlanabilinir. 

  • Ftp ve Ssh uygulama versiyonları mevcut bir zaafiyet barındırıyor mu? 
  • WordPress kullanıcı adlarına yönelik bir kaba kuvvet saldırısı başarılı olabilir mi? Başarılı olursa sisteme sızılabilinir mi?

 Zaafiyet Analizi

Ftp ve Ssh versiyonlarına yönelik bir zafiyet bulunmamıştır.

WordPress kullanıcısını yapılan saldırıda parolaya ulaşılmıştır.

Resim 9: Wp Kaba Kuvvet Saldırısı

Resim 10:Wp Yönetici Paneli


Resim 11: Wp Girdi Alanının Keşfedilmesi ve Zaafiyet Testi

Saldırı başarılı olmuş ve yönetici paneline girilmiştir.Burada wp sitesinde php komut çalıştırabileceğimiz editör sayfalarına yöneliyoruz.

İstismar Süreci

Apache Serverde bulunan WordPress sitesinin kullanıcı adı ve parolasına erişip zararlı bir php dosyası yüklenebilecek bir alan bulduktan sonra phpinfo dosyası ile birlikte herhangi bir kısıtlanmış fonksiyon olup olmadığını teyit ettikten sonra aynı girdi noktasından zararlı dosyamızı yükleyerek sunucu ağına giriş yapılır.


Resim 12: WebShell

Yukarıdaki resimde saldırgan bakış açısıyla yönetilen bir sızma testi sırasında şifrelenmiş kaynak koda sahip web kabuğunu sisteme yükleyip ilgili sayfayı açtıktan sonra karşımıza çıkan ekranda üst bölgede bulunan çeşitli seçenekler ile sistem üzerinde bir yönetim panelinin sunduğu erişim hizmetlerinden daha fazla seçeneğe sahip olan bir ekran bizi kaşılamaktadır. Üst bölgede yer alan seçeneklerde sırasıyla Dizin İşlemleri, İşletim sistemi komut satırı, php eval fonksiyon ekranı, şifreleme çeviri ekranı, veritabanı bağlantı ekranı, sistem bilgi ekranı, sistem port açma bağlantı ekranı ve işletim sistemi anlık çalışan işlemler gibi menüler bulunmaktadır.

Resim 13: Hedef Dosya Erişim Bilgisi

Resim 13’de gösterildiği üzere belirtilen hedef doğrultusunda /root/flag.txt adlı dosyayı okuma yetkimizin olmadığı görülür.

İleri Sömürü Aşaması

Yeni erişim kazandığımız bsides2018 adlı makinede hedef dosyayı görebilmek için yetki erişim düzeyimizi arttırarak “root” kullanıcı hakkına sahip olmamız  gerekmektedir.

Resim 14: Mevcut kullanıcı bilgisi

Bu aşamada ileri sömürü aşaması için www-data adlı kullanıcı hakları ile yetki erişimi için sistem hakkında bilgi toplayıp seçenekler değerlendirilecektir.

Resim 15: Okuma Yetkisi Bulunan Sistem Dosyaları

Yukarıdaki dosyada sisteme dair bütün ayaraların bulunduğu /etc/ dizininde www-data kullanıcısının okuma yetkisi olduğu dosyalar listelenmiştir. Bizim için burada önemli olan dosyalar os-relase, passwd ve crontab adlı dosyalarıdır.

Resim 16: Sistem /etc/passwd Dosya İçeriği

Resim 16’da gösterilen passwd dosya içeriği, her kullanıcı hakkında ayrıntılı bilgilerin bulunduğu linux sistem dosyası içeriğidir.

Resim 17: Sistem /etc/crontab Dosya İçeriği

Crontab dosyasına tanımlanan içeriklerin hangi zamanda hangi komutu çalıştıracağını belirten açıklamalar bulunur. Her kullanıcı kendi crontab dosyasına sahip olabilir. Bu kullanıcılara ait crontab dosyalarındaki zamanlanmış komutlar, crontab dosyasının sahibi hangi kullanıcı ise onun adı altında çalıştırılmaktadır. (.www.belgeler.org/man/man5/man5-crontab.html, Erişim Tarihi:25 Mayıs 2018)

Crontab içeriğinde ön tanımlı verilerin haricinde eklenmiş olan “cleanup” adlı dosya root kullanıcı yetkisi ile çalıştırıldığı dikkat çekmektedir.

Resim 18: /usr/local/bin/cleanup Dosya Bilgisi

Resim 18’de “file” komutu ile dosya türünün çalıştırılabilir bir betik içeriğine sahip olan “POSIX shell script” dosyası olduğunu görüyoruz. “Ls -l” komutu ile de cleanup adlı dosyanın sahip olduğu linux kullanıcı yetkileri listelenmiştir. Burada dikkatimizi çeken cleanup adlı dosyanın tüm grup ve kullanıcılarda okuma, yazma ve çalıştırma yetkilerine sahip olduğu görülmekte. Hedef dosyamıza ulaşabilmek için yetki yükseltmemiz gerektiğini root kullanıcı yetkilerine sahip olmamız gerektiğini vurgulamıştık. Dosya içeriğini okumak için crontab sayesinde her dakika root yetkisi ile çalışacak cleanup dosya içeriğine hedef makineden kendi ip adresimize açılacak bir tersine bağlantı ile veya dosya içeriğini okunabilir bir klasöre kopyalayıp, izinlerini değiştirerek hedef dosyayı elde edebiliriz.

Resim 19: Cleanup Dosyasının Sömürülmesi

Posix betik dosyası içeriğine saldırı yapan 192.168.56.1 ip adresinin 1234 adlı port numarasına /bin/sh linux kabuk yetkileri ile tersine bağlantıyı kuracak python kodunu yerleştirerek kaydediyoruz.(pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet, Erişim Tarihi:25 Mayıs 2018)

Resim 20: /root/flag.txt İçeriği

Resim 20’de bulunan ilk satır ncat komutu ile 1234 adlı portumuzu dinlemeye başlıyoruz.Bu aşamadan sonra crontab hizmetinin istismar ettiğimiz cleanup adlı dosyayı tekrar çalıştırmasını bekliyoruz. Dosya çalıştırıldıktan sonra hedef makinen 51284 port numarası ile bize istek gelir ve artık sunucunun komut satırına erişmiş bulunmaktayız. id ve whoami komutları ile hangi kullanıcı yetkisine sahip olduğumuzu listeledikten sonra cat komutu ile hedef dosya içeriği okunmuştur.

Dosya içeriğinden yola çıkarak başka bir yöntem ile hedef dosyaya ulaşmak için yeniden elimizdeki bilgileri değerlendiriyoruz.

Resim 2’de yer alan nmap port-hizmet çıktımızda ssh servisinin açık olduğu görülmektedir. Ssh servisi için kaba kuvvet saldırısına başvurabilir fakat bunun için sistemde ssh bağlantısına sahip kullanıcıların tesbiti gerekmektedir.

Resim 16’da bulunan /etc/passwd dosyası tekrar incelenecek olursa /bin/bash işletim sistemi kabuğuna sahip kullanıcılar belirlenir.

Bu kullanıcılar: root, abatchy, john, mai, anne, doomguy olarak listelenir.

Resim 21: Ssh Kullanıcı Tespiti

Belirlenen kullanıcılar için giriş yapmayı denediğimizde anne adlı kullanıcı hariç diğer kullanıcılar parola ile değil public,private key ile giriş yaptıkları görülmektedir. Bu bilgiler doğrultusunda kaba kuvvet saldırısı “anne” adlı kullanıcı üzerinde yapılacaktır.

Resim 22: Ssh ile Hedef Dosyaya Ulaşmak

Resim 22’te hydra aracı ile kaba kuvvet saldırımızın sonucunu görmekteyiz. “anne” adlı kullanıcının parolası princess olarak bulunmuştur. Ssh bilgilerini teyit ederek bağlantı kurulmuştur. İd komutu ile anne adlı kullanıcıya root yetkisinde işlem yapabilmesi için sudo komut izni verildiğini görmekteyiz sudo su – komutu ile root kullanıcısına şifresiz geçiş yapıp hedef dosyamıza erişim kazanabiliriz.

Raporlama

Aşağıdaki bölümlerde, test süresince tespit edilen güvenlik açıkları ve uygulama sorunları listelenmiştir. Bulgular, risk dereceleri ve etkilerine göre sıralanmıştır.

– Kapsam:

Test edilen ip adresi : 192.168.56.101

Test Kapsam Türü: Kara Kutu Testi

Test Yaklaşım Türü: İç Ağ, Aktif Saldırı

Test Yapılacak Süre: 3 gün 

– Metodoloji: Sızma Testi sırasında PTES Metodolojisi kullanılarak bulgular toplanarak değerlendirilmiştir. İlgi Teknik Rapor 8.1 Linux Tabanlı Zaafiyetli Sanal Makina adlı başlık altında listelenmiştir.

– Risk Derecelendirme:

  • Robots.txt Dosyasının Tesbiti

Etki: Düşük

Açıklama: Arama motorlarının sitede erişilmesini istenmediği yerleri gösteren bu dosya site altında dizinlenen hassas bilgiler içerebilir. Sızma Testi sırasında “backup_wordpress” adlı bir dizin tesbit edilerek hedef alanı genişletilmiştir.

İyileştirme: Hassas verilerin bulunduğu dizinler sunucu üzerinde erişime kısıtlı bölgelerde tutulabilir.Belirli bir kitlenin ulaşımı gerekiyor ise dosya veya dizinler güvenlik doğrulaması panellerine yönlendirilebilir.

  • Varsayılan WordPress Dosyaları

Etki: Düşük

Açıklama: 192.168.56.101 adlı hedef adresinde tesbit edilen WordPress sitesinde ana varsayılan WordPress  dosyaları bulunmuştur. Saldırgan, varsayılan dosyaların içeriğini inceleyerek çalışan WordPress sitesinin “readme.html” dosyası ile tam sürümünü elde etmiştir. 

İyileştirme: Tüm varsayılan dosyalar sunucu üzerinden kaldırılmalıdır.

  • Varsayılan veya Zayıf Kimlik Bilgileri

Etki: Yüksek

Açıklama: 192.168.56.101 adresinde tespit edilen WordPress hazır sitesinde yönetim paneline ve hedef ip adresinde tespit edilen Ssh hizmetinde “anne” adlı kullanıcılara yapılan kaba kuvvet saldırıları herhangi bir ek kimlik doğrulama mekanizmasının olmaması nedeniyle başarılı olmuştur. Bu sayede saldırgan hedef alanını genişletmiştir.

İyileştirme: Tüm yönetimsel arayüzlerin karmaşık şifreler veya parolalarla korunması gerekmektedir. Bir sözlük yardımıyla kolayca bulunabilecek parolalardan kaçınılmalıdır.

  • WordPress İstenmeyen Dosya Türü Yüklemesi

Etki: Çok Yüksek

Açıklama: WordPress sistemine yönetimsel erişim sağlandıktan sonra, girdi alanları incelenmiştir. Tema ve Eklenti  düzenleme sayfalarında doğrudan sistem içinde çalıştırılabilinen php dosyalarının değiştirilebilinir olduğu görülmektedir.Test için phpinfo() komutu girilmiş sonuç alınınca sisteme kötücül kodlar enjekte edilmiştir.

İyileştirme: Sunucu tarafında waf, ips/ids gibi güvenlik yazılım ve donanım cihazı kullanılabilir. Belirli komut ve fonksiyonlar sunucu tarafından engellenebilinir.

  • Dosya İzni Yanlış Yapılandırma

Etki: Çok Yüksek

Açıklama: 192.168.56.101 adresinde web kötücül betik kodu ile yapılan araştırmada zamanlanmış görevlerin bulunduğu /etc/crontab dosyasında tesbit edilen /usr/local/bin/cleanup dosyası izinlerinin tüm kullanıcı ve gruplar için okuma, yazma ve çalıştırma yetkilerinin varlığı tesbit edilmiştir. Yanlış yapılandırılan bu dosya içeriği sömürülerek sistem üstünde süper yetkili kullanıcı olarak işlem yapılmasına neden olmuştur

İyileştirme: Zamanlanmış görevlerde bulunan dosyaların izin yapılandırılması kullanıcı bazlı yeniden yapılandırılmalıdır.

– Sonuç: Penetrasyon testinin sonucu olarak 192.168.56.101 adlı hedefte belirlenen genel risk yüksektir. Harici saldırgandan tam sistem uzlaşmasına giden doğrudan ulaşabileceği iki yol keşfedilmiştir. Kötü niyetli kişiler veya gruplar tarafından 192.168.56.101 adresine  karşı yürütülecek bir saldırı başarılı bir şekilde sonuçlanacağı teyit edilmiştir.

Tarih:Siber Güvenlik

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir