Metasploit Framework Tanıyalım
Metasploit Framework’ü etkin ve tam kapasiteli kullanabilmek için ihtiyaç duyabileceğiniz temel bilgilere ve komutlara birlikte bakalım istedim. Acele edip hızlı gitmektense, önce işimizi kolaylaştıracak temel bilgileri görelim.
Mimari ve Kütüphaneler
Metasploit, kısaca yukarıda gördüğünüz mimari diyagramında gösterilen elemanlardan oluşmaktadır. Bu temel elemanları kısaca tanıyalım
Rex
Metasploit için en temel başlangıç kütüphanesidir. Soket, protokol, SSL, SMB, HTTP, XOR, Base64, Unicode işlemlerinin yapıldığı merkezdir.
Msf::Core
Rex kütüphanesi üzerine bina edilen Core katmanı, dışarıdan modül ve eklentilerin de eklenmesini sağlayan ayarların yönetildiği kısımdır. Temel API sağlar. Çerçeve dediğimiz Framework burasıdır.
Msf::Base
Bu katman, temel API lerin daha da basitleştirildiği kısımdır.
Msf::GUI
Kullanıcının gördüğü kısımdır. Arayüz ve komutların girişinin yapıldığı kısımlar burada bulunur.
Dosya sistemi
MSF dosya sistemi, kullanıcının işini kolaylaştıracak şekilde oluşturulmuştur ve klasörler anlamlıdır. Bir programı kullanacaksanız, dosya sistemini ve hangi klasörde neyin bulunduğunu bilmek başlangıç için çok önemlidir. Linux işletim sisteminize Metasploit Framework yazılımını, dağıtımınızın yazılım merkezi aracılığı ile yüklemiş iseniz gerekli klasörleri /usr/share
içerisinde bulabilirsin. Debian paketi olarak indirip yüklediyseniz /opt/metasploit-framework/
klasörü içerisinde bulabilirsiniz.
Bazı ana klasörlerin hangi bilgileri ihtiva ettiğine bakalım.
data
: Metasploit tarafından kullanılan ve değiştirilebilir dosyalar bu klasördedir.
documentation
: MSF hakkında yardım ve açıklama dokümanları bulunur
external
: Kaynak kodlar ve 3. taraf kütüphaneleri bu klasördedir.
lib
: MSF kullandığı ana kütüphaneler bulunur.
modules
: MSF yüklendiğinde indeksinde bulunan modüller bu klasördedir.
plugins
: Program başlarken yüklenecek eklentiler buradadır.
scripts
: Meterpreter ve diğer script kodları bulunur.
tools
: Çeşitli komut satırı araçları bulunur.
Modüller ve Yerleri
Modüller
Metasploit Framework, modüllerden oluşturulmuştur. Bu modüller kısaca nelerdir?
Payload : Karşı sistemde çalışmak üzere tasarlanan script kodlarına Payload adı verilmektedir.
Exploits : Payload kullanan modüllere exploit adı verilmektedir.
Auxiliary : Payload kullanmayan modüllere Auxiliary modülleri adı verilir.
Encoders : Payload scriptlerinin karşı tarafa gitmesini, ulaştırılmasını sağlayan modüllerdir.
Nops : Payload scriptlerinin sürekli ve sağlıklı çalışmasını sağlayan modüllerdir.
Modüller Nerededir?
Temel modüller ve kullanıcı modülleri olarak ikiye ayırabileceğimiz modüllerin hangi klasörde bulunduğuna bakalım.
Temel Modüller
MSF her yüklendiğinde kurulup hazır hale gelen modüller, yukarıda belirttiğimiz /usr/share/metasploit-framework/modules/
klasöründe veya /opt/metasploit-framework/modules/
içerisinde bulunurlar. Windows kullanıcıları da Program Files klasörü içerisine bakabilirler.
Kullanıcı Modülleri
Metasploit’in kullanıcıya tanıdığı en büyük imkan, kendi modülünü çerçeveye dahil edebilmesidir. Bir script yazdınız veya indirdiniz kullanmak istiyorsunuz. Bu kodlara kullanıcı modülleri denir ve kullanıcının ev klasörünün içerisinde başında nokta olan gizli bir klasörde tutulurlar. Tam olarak adresi
bu şekildedir. /.msf4/modules/ Ev klasörü anlamına gelmektedir. Klasörü dosya yöneticisinde görmek için “Gizli Dosyaları Göster” seçeneğini aktif hale getirebilirsiniz.
Kullanıcı modüllerini sisteme tanıtma
MSF, kullanıcıya başlarken veya başladıktan sonra kendi ilave modüllerini yükleme imkanı sunar. Bunun başlarken ve başladıktan sonra nasıl yapıldığını görelim.
Aşağıda anlatılan iki yöntemde de komutlara vereceğiniz klasör adreslerinin içerisinde, msf isimlendirme konvansiyonuna uygun klasörler bulunmalıdır. Örneğin,
klasöründen bir exploit yüklemek isterseniz, o exploitin /.msf4/modules//.msf4/modules/exploit/
klasöründe bulunuyor olması gerekir.
Tam olarak klasörlerin isimlerini ve isimlendirme şablonunun programınızın kurulu olduğu klasör içerisinden öğrenebilirsiniz. Benim bilgisayarım için örnek çıktı aşağıdaki klasör yapısındadır.
umut@umut-X550JX /opt/metasploit-framework/embedded/framework/modules $ ls -l
total 24
drwxr-xr-x 20 root root 4096 May 10 14:46 auxiliary
drwxr-xr-x 11 root root 4096 May 10 14:46 encoders
drwxr-xr-x 19 root root 4096 May 10 14:46 exploits
drwxr-xr-x 10 root root 4096 May 10 14:46 nops
drwxr-xr-x 5 root root 4096 May 10 14:46 payloads
drwxr-xr-x 12 root root 4096 May 10 14:46 post
Başlarken kullanıcı modüllerini yükleme
Yukarıda belirttiğimiz gibi kullanıcı modülleri ~/.msf4/modules/
klasöründeydi. Bu klasörü msfconsole
komutuna söylediğimizde, ilave modüllerde yüklenir ve sistem öyle başlar. Bunu aşağıdaki komutta görüldüğü gibi -m
parametresi ile yapabiliriz.
umut@umut-X550JX ~ $ msfconsole -m ~/.msf4/modules/
Found a database at /home/umut/.msf4/db, checking to see ***if *** it is started
Starting database at /home/umut/.msf4/db...success
%%%%%%%%%%%%%%%%%%%%%%%%%%% Hacked: All the things %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Press SPACE BAR to ***continue***
***=[*** metasploit v4.14.17-dev- ***]***
+ -- --***=[*** 1648 exploits - 946 auxiliary - 291 post ***]***
+ -- --***=[*** 486 payloads - 40 encoders - 9 nops ***]***
+ -- --***=[*** Free Metasploit Pro trial: http://r-7.co/trymsp ***]***
msf ***>***
Başladıktan sonra modül tanıtma
MSF programını msfconsole
komutuyla başlattınız ve bir takım işlemleriniz devam ediyor. Sisteme yeni bir modül tanıtmak için, programı kapatmanıza gerek yok. loadpath
komutuyla modülün olduğu yolu tarif ettiğinizde, yükleme gerçekleşecektir.
msf ***>*** loadpath /home/umut/.msf4/modules
Loaded 0 modules:
msf ***>***
Video Anlatım