Metasploit güvenlik araştırmacıları tarafından en çok tercih edilen framework’lerin başında gelmektedir. Ruby dili ile geliştirilmiş ve açık kaynak kodlu olan metasploit’in github hesabı son derece aktif durumdadır. Örneğin bir güvenlik araştırmacısı bulduğu zafiyeti exploit edecek metasploit modülünü geliştirdikten sonra github üzerinden bu modülün metasploit’e eklenmesi talebinde bulunabilir. Veya bilinen ama metasploit modülü olmayan bir güvenlik açığı için modul geliştirilip tekrar aynı mantıkla metasploit yapısına entegre edilmesi talebinde bulunulabilir.
Yukarıda bahsedilen yapı aslında son güvenlik açıklıkları hakkında neler olduğu, hangi zafiyetler üzerine exploitlerin geliştirildiği veya metasploit yapısında ne gibi değişikliklerin gerçekleştiği anlamına gelmektedir. Güvenlik araştırmalacıları olarak rapid7 github hesabına yapılan tüm merge ve pull requestleri takip ederek yaşanan gelişmelerden haberdar olabiliriz.
Ayrıca Kali ile default olarka gelen metasploit, update’ler yapılsa bile son eklenen modulleri içermemektedir. Yani şu anda bir metasploit modülü master branch’e eklenmişse, bunu kali üzerinde göremeyiz. Bu nedenle metasploit’in github entegreli versiyonunu Kali’ye kurarak, pentest’ler den önce yapılacak git update’i ile son sürüm tüm modüllere erişim sağlamalıyız.
Kali Paketlerinin Kurulumu
Metasploit github versiyonunu kurabilmek için öncelikle bağımlılıkları kurmamız gerekmektedir.
# Update sudo apt-get update sudo apt-get upgrade # Bagımlılıklar sudo apt-get install build-essential libreadline-dev libssl-dev libpq5 libpq-dev libreadline5 libsqlite3-dev libpcap-dev openjdk-7-jre subversion git-core autoconf postgresql pgadmin3 curl zlib1g-dev libxml2-dev libxslt1-dev vncviewer libyaml-dev ruby1.9.3 ruby-dev
Şimdi github rapid7 hesabı üzerinden metasploit’i clone etmeliyiz.
# git adından dizin oluşturuldu. Tercihen oluşturmayabilirsiniz. mkdir ~/git/ mkdir ~/git/metasploit-github/ cd ~/git/metasploit-github/ # Metasploit clone'u al git clone https://github.com/rapid7/metasploit-framework.git
Bu işlem biraz zaman alacaktır. Şimdi ise metasploitin ihtiyaç duyduğu bundle’ları indirmeliyiz.
gem install bundle cd ~/git/metasploit-github/ bundle install
Metasploit ve PostgreSQL Entegrasyonu
Kali’de default olarka gelen metasploit’in postgresql veri tabanını kullanmaktadır. Bu nedenle tekrardan postgresql kurulumu yapmamıza gerek yok. Doğrudan postgresql’i kullanarak metasploit-github versiyonumuz için veri tabanı işlemlerini gerçekleştirebiliriz.
Metasploit çalıştırıldığında home klasörü altında ki .msf4 klasörüne bakmaktadır. Eğer burada database.yml dosyası varsa, veri tabanı bağlantı bilgileri olarak bu dosyayı kullanacaktır. Aşağıdaki satırları database.yml olarak .msf4 klasörü altına ekleyiniz. Eğer .msf4 klasörü yoksa, metasploit-github klasörü altında ./msfconsole komutunu çalıştırarak metasploit’i veri tabanı olmadan çalıştırınız. Bu klasörü metasploit kendisi otomatik olarak oluşturacaktır.
production: adapter: postgresql database: msf username: msfgit password: msf host: 127.0.0.1 port: 5432 pool: 75 timeout: 5
Şimdi sıra metasploit-github için postgresql kullanıcısı oluşturmakta. Bunun için aşağıdaki komutları sırasıyla çalıştırınız.
su - postgres createuser msfgit -P -S -R -D # 2 adet soru gelecektir. Şifre ve role tanımlaması. # Her ikisine de msf yazınız. createdb -g msfgit msf
Her şey hazır. Artık metasploit-github klasörü altında ./msfconsole yazarak son versiyon metasploit’e erişebilirsininiz.
Github ile Güncelleştirme Takibi
Daha önce de belirttiğim gibi metasploit üstünde ki tüm yenilikler, iyileştirmeler ve bug fix’leri github üzerinde görebilirsiniz. Bu nedenle her pentest öncesi tüm yenilikleri metasploit’e yansıtmak akıllıca olacaktır. Çünkü XYZ uygulaması exploit eden modülü üzerinde bir iyileştirme yapılmış olabilir. Eğer bunun farkında değilsek pentest sırasında başarısız olunacaktır, daha da kötüsü exploit edilebilecek bir yazılım gözünüzden kaçmış olacaktır.
cd ~/git/metasploit-github/ git checkout master git fetch git merge origin/master
İşlem sonucunda aşağıdakine benzer bir çıktı gözükecektir. Bu çıktıda hangi dosyada kaç satır değişiklik yapıldığı, hangi dosyaların ekklendiği veya kaldırıldığı görülmektedir.
Tig ile Metasploit Modül Analizi
tig, tahmin edebildiğiniz üzere git komutunun tersten yazılışıdır . İşlevide hemen hemen git’in tersidir.Ayrıca default olarak kali ile gelmemektedir. Bu nedenle aşağıdaki komut ile kurulumu yapılmalıdır.
apt-get install tig
metasploit-github klasörü altında tig komutu yazılıp enter’a basıldığında tüm github history’si gözükmektedir. Hangi kullanıcılar hangi modülleri yazdı? Hangi isimde yeni modüller geldi ? gibi soruların tamamına git comment’leri ile erişilebilmektedir. Bu sayede metasploit yakından takip edilerek pentester tecrübesi artmış olacaktır.