Metasploit Github ile Güvenlik Açıklarını Takip Etmek

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.

metasploit git merge

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.

Metasploit tig output