Metasploit Framework
Metasploit Framework: Bilgisayar Güvenliği ve Hacking'in Güçlü Aracı
Last updated
Metasploit Framework: Bilgisayar Güvenliği ve Hacking'in Güçlü Aracı
Last updated
Metasploit Framework, bilgisayar güvenliği ve penetrasyon testi alanında kullanılan bir açık kaynaklı yazılım platformudur. Bu etkileyici araç, siber güvenlik uzmanları ve etik hackerlar tarafından güvenlik zafiyetlerini tespit etmek, açıkları kapatmak ve savunma stratejilerini değerlendirmek için kullanılmaktadır.
Metasploit Framework Ruby programlama dilinde yazılmıştır . Metasploit Framework motorunun temelindeki çerçeve, öncelikli olarak Ruby ile yazılmış açık kaynaklı bir projedir .
Metasploit Framework'ün temel avantajlarından biri, geniş bir veritabanına sahip olmasıdır. Kullanıcılar, çeşitli saldırı modüllerini kullanarak hedef sistemler üzerinde çeşitli testler gerçekleştirebilirler. Bu modüler yapı, kullanıcıların ihtiyaçlarına uygun saldırıları seçip uygulamalarına olanak tanır, bu da özelleştirilebilir ve etkili bir test süreci sunar.
Siber güvenlik alanında hızla değişen tehdit ortamına ayak uydurabilmek için, Metasploit Framework sürekli olarak güncellenir ve geliştirilir. Bu, kullanıcıların en son güvenlik zafiyetlerini ve saldırı tekniklerini test etmelerini sağlar. Ayrıca, açık kaynak topluluğu tarafından desteklenmesi, kullanıcıların deneyimlerini paylaşmalarına ve birbirlerinden öğrenmelerine olanak tanır.
Metasploitin kendine özgü dosya sisteminden bahsedecek olursak ; 1- Data: Datalar Metasploit tarafından kullanılır ve değiştirilebilir. 2- Lib: Metasploit Framework’ü oluşturan sistemin ana yapısı, kütüphanesidir. 3- Plugins: Otomatik olarak çalışabilen ve Metasploit Framework’ün tüm özelliklerini kullanarak işlev gören eklentilerdir. İşlem esnasında çalışırlar. 4- Tools: Yerine ve çalışmasına göre işlemleri halleden ve komut satırlarında çalışan araçlardır. 5- External: Harici kaynaklar 3. parti yazılımlar ve kaynak kodlardır. 6- Documentation: Metasploit Framework hakkında bilgilendirmek için kullanılan belgelerdir. 7- Modules: Normal modüllerdir. 8- Scripts: Meterpreter gibi gelişmiş script’lerdir.
Öncelikle, Metasploit Framework kurulu bir makinada çalıştırılır ve konsol açılır.
Daha sonra, hedef sisteme bir açıklık aranır. Bu, search adımlarını kullanarak yapılabilir. Örneğin, “search cve:2022” komutu 2022 yılında yayınlanan tüm açıklıkları arar.
Bir açıklık bulunduğunda, o açıklığı kullanacak bir saldırı modülü seçilir. Örneğin, “use exploit/windows/smb/ms08_067_netapi” komutu MS08-067 açıklığını kullanan bir saldırı modülünü seçer.
Saldırı modülünün parametreleri ayarlanır. Örneğin, hedef IP adresi ve hedef sistemdeki kullanıcı adı ve parolası belirtilir.
Saldırı, “exploit” komutu ile başlatılır. Eğer başarılı olursa, hedef sisteme erişim sağlanmış olacaktır.
Kurulumu için terminal ekranımıza “apt-get install metasploit-framework” yazıyoruz. Daha sonra kurulumumuz tamamlandıktan sonra “msfconsole” komutu ile çalıştırabiliriz.
Metasploit Framework, güvenlik mühendisleri tarafından bir sızma testi sistemi ve güvenlik araçları ve istismarlar oluşturmaya izin veren bir geliştirme platformu olarak kullanılan dünyanın önde gelen açık kaynaklı sızma çerçevesidir. Çerçeve, hem saldırganlar hem de savunmacılar için bilgisayar korsanlığını basitleştirir.
Bir Metasploit sızma testi, Metasploit'in sisteminizdeki savunmasız noktayı bulmak için Nmap , SNMP taraması , Windows yama numaralandırma ve Nessus gibi çeşitli keşif araçlarıyla entegre olduğu bilgi toplama aşamasıyla başlar. Zayıflık belirlendikten sonra, zırhtaki çatlağa nüfuz etmek için bir exploit ve payload seçilir. Exploit başarılı olursa, payload hedefte çalıştırılır ve kullanıcı görev yükü ile etkileşim kurmak için bir kabuk alır. Windows sistemlerine saldırmak için kullanılan en popüler payloadlardan biri Meterpreter'dır (yalnızca bellek içi etkileşimli bir kabuk). Hedef makineye girdikten sonra Metasploit, yetki yükseltme, paket yakalama, hash geçme, keylogger, ekran yakalama ve pivotlama araçları için çeşitli istismar araçları sunar. Kullanıcılar ayrıca hedef makine yeniden başlatılırsa kalıcı bir arka kapı da kurabilirler.
Metasploit Frameworkte bulunan kapsamlı özellikler modüler ve genişletilebilirdir, bu da her kullanıcı gereksinimine göre yapılandırmayı kolaylaştırır.
Hedefler, exploitler ve güvenlik testi süreciyle ilgili daha fazlası hakkındaki bilgiler Metasploit Framework PostgreSQL veritabanında depolanır.
Kali Linux üzerinde bulunan Metasploit Framework terminal üzerinde çalıştırmak için msfconsole komutu kullanılır.
db_status: Veritabanı bağlantısını kontrol eder.
version: Sürüm kontrolü sağlar.
search: Exploit, payload vb. unsurları arayabiliriz. search -h parametresi ile arama için uygun kriterleri seçebilirsiniz.
show: İstediğimiz bileşenleri listeleyebiliriz.
use: Listeden kullanmak istediğiniz exploit, payload vb. seçilir.
info: Seçilen exploit ile ilgili gerekli ayarları, versiyon vb. bilgileri gösterir.
set: Exploit, payload için gerekli düzenlemeler yapılmasını sağlar.
unset: Yapılan değişiklikleri geri alır.
sessions: Aktif oturumları ve ID bilgilerini listeler.
exploit: Seçilen hedefe saldırı başlatır.
Metasploit veritabanını başlatmak için "service postgresql start" komutunu, veritabanını durdurmak için ise "service postgresql stop" komutunu kullanabilirsiniz. Bu komutları uzun uzun yazmak yerine kendi alias'larınızı oluşturarak daha kısa komutlar kullanabilirsiniz.
alias posstart=’service postgresql start’ alias posstop=’service postgresql stop’
help: Komut, parametre ve araçlar hakkında tüm bilgilere erişim için kullanılır.
"msfconsole" komutu ile Metasploit Framework’ü çalıştıralım.
Program başladığında msf > bizi karşılar.
Metasploit Framework’ün sağlıklı başlayıp başlamadığını ve gerekli veri tabanı bağlantısını kontrol etmek için "db_status" komutunu yazıyoruz. Eğer "postgresql connected to msf" şeklinde bir çıktı aldıysak sorun yok demektir. Ayrıca "msfupdate" komutu ile Metasploit Framework’ü güncelleyebiliriz.
Bu yazımızda VSFTPD Backdoor zafiyetini örnek olarak kullanacağız.
"search vsft" komutu ile exploiti arayalım.
Araştırmamız sonucunda Metasploit Framework bize 1 tane exploit buldu.
"use" komutu ile exploitimizin adını girerek exploitimizi seçelim.
Bir sistemde exploit’i çalıştırmak için elbette önceden hedef sistem ve hedef sisteme ait bazı bilgiler exploit’e girilmelidir. Bu parametreleri görmek için “show options” komutu kullanılmaktadır.
Üst kısımda modül, alt kısımda ise payload’ın parametreleri görülmektedir:
Name: Parametrenin ismidir.
Current Setting: Parametreye ait girilen değer.
Required: Girilmesinin zorunlu olup olmadığını belirten yer. “No” ise gerekli değil, “Yes” ise girilmesi zorunludur.
Description: Parametreye ait açıklamadır.
Bu bilgilere dayanarak parametreler girilmelidir.
LHOST: LocalHost’un kısaltılmasıdır ve bize ait local ip adresinin girilmesi istenir. Bağlantı bize geri geleceği için bizim local ip adresimiz yazılmalıdır ki çoğunlukla payloadlarda bizim local ip’miz istenir.
RHOST: RemoteHost’un kısaltılmasıdır. Hedefin ip adresi girilmedilir.
LPORT: LocalPort’un kısaltılmasıdır genellikle default olarak 4444 kullanılmaktadır.
RPORT: RemotePort'un kısaltmasıdır. Hedef servisin çalıştığı port girilmelidir.
Ardından hangi parametreyi düzenleyeceksek "set x" şeklinde düzenleyebiliriz.
Son olarak "exploit" veya "run" komutu ile seçilen exploit veya payload uygulanır.
Metasploit Framework bilinenin aksine sadece exploitleri barındırmaz. İçerisinde auxiliary, post, payload, encoder, nop gibi işlevleri de barındırır.
Auxiliary: Exploitleme işleminden önce bilgi toplamamıza olanak sağlar. Payload: Exploitleme işlemi sonrası sistemde işlem yapmamızı sağlayan modüllerdir. Encoder: Antivirüsler gibi güvenlik cihazlarını atlatmak için kullanılır. Nop: ”Not Operation” bellek yeri öğrenme amaçlı bellek dolduran bitler. Genellikle saldırı tespit ve engelleme sistemlerini aşmak için kullanılır.