Metasploit Framework, sistemlerdeki güvenlik zafiyetlerini yetkili şekilde test etmek için kullanılan açık kaynaklı bir sızma testi (penetration testing) platformudur. Kısaca Metasploit; exploit'leri, payload'ları ve yardımcı modülleri tek bir konsolda toplayarak, bir zafiyetin gerçekten sömürülebilir olup olmadığını kanıtlamayı standart ve tekrarlanabilir hale getiren bir araçtır.
Yasal ve etik uyarı: Metasploit güçlü bir araçtır ve yalnızca kendi laboratuvarında, yazılı izin verilmiş yetkili testlerde veya eğitim ortamında kullanılmalıdır. İzinsiz olarak başkasının sistemine karşı kullanmak birçok ülkede olduğu gibi Türkiye'de de suçtur. Bu yazı tamamen savunma ve eğitim amaçlıdır; üçüncü şahıslara saldırı talimatı içermez.
Metasploit nedir ve ne işe yarar?
Metasploit, bir güvenlik uzmanının "bu açık gerçekten istismar edilebilir mi?" sorusunu güvenli biçimde yanıtlamasını sağlayan bir çerçevedir. 2003'te HD Moore tarafından başlatılan proje bugün Rapid7 tarafından geliştiriliyor ve büyük ölçüde Ruby ile yazılmıştır. İçinde binlerce hazır modül bulunur; bu sayede bir zafiyeti sıfırdan kodlamak yerine mevcut modülleri kullanarak testi hızlıca yapabilir, sonucu rapora dökebilirsiniz.
Metasploit'in bileşenleri (modülleri) nelerdir?
Metasploit'i anlamanın en kolay yolu modül türlerini tanımaktır. Her modül belirli bir işi yapar ve bunları msfconsole içinde birleştirerek bir test akışı kurarsınız. Aşağıdaki tablo yeni başlayanların en çok karşılaşacağı modül türlerini özetliyor:
| Modül türü | Ne işe yarar | Örnek |
|---|---|---|
| Exploit | Bir zafiyeti tetikleyip hedefe erişim açar | vsftpd backdoor |
| Payload | Erişim sağlandıktan sonra hedefte çalışan kod | reverse shell, Meterpreter |
| Auxiliary | Tarama, brute-force, fuzzing gibi destek işleri | port tarayıcı |
| Post | Erişim sonrası bilgi toplama ve yetki inceleme | sistem bilgisi toplama |
| Encoder | Payload'ı farklı biçimlere kodlar | shikata_ga_nai |
| Nop | Yük hizalaması için "boş işlem" üretir | nop generator |
Exploit ve payload arasındaki fark nedir?
Exploit, kapıyı açan anahtardır: hedefteki bir zafiyeti kullanarak kod çalıştırma imkânı elde eder. Payload ise kapı açıldıktan sonra içeri gönderdiğiniz "yük"tür; asıl işi o yapar. Örneğin exploit bir zafiyeti tetikler, payload da size bir komut kabuğu (shell) döndürür. Bir exploit'i farklı payload'larla eşleştirebilirsiniz; bu esneklik Metasploit'in gücünün temelidir.
Metasploit'i nasıl kurarsınız?
En kolay yol, Metasploit'in önceden yüklü geldiği bir dağıtım kullanmaktır. Kali Linux ve Parrot OS gibi güvenlik odaklı dağıtımlarda araç zaten hazırdır. Kurulu olup olmadığını ve sürümünü kontrol etmek için terminalde şunu çalıştırabilirsiniz:
msfconsole --version
sudo msfdb init # veritabanını başlatır (arama ve oturum yönetimi için)
Veritabanını başlatmak arama ve oturum takibini hızlandırdığı için başlangıçta önerilir. Kali kurulumunun detayları bu yazının kapsamı dışında; onu ayrı bir başlangıç rehberinden takip edebilirsin.
msfconsole ile temel komutlar nasıl kullanılır?
msfconsole, Metasploit'in ana arayüzüdür. Aşağıdaki akış, kendi laboratuvarındaki Metasploitable gibi kasıtlı-zafiyetli bir test makinesine karşı çalışan tipik bir öğrenme senaryosudur. İnternette rastgele hedeflere değil, yalnızca sana ait test VM'ine yöneliktir:
msfconsole # konsolu başlat
msf6 > search type:exploit vsftpd # modül ara
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 exploit(...) > show options # gerekli ayarları gör
msf6 exploit(...) > set RHOSTS 192.168.56.101 # hedef = kendi test VM'in
msf6 exploit(...) > run # modülü çalıştır
msf6 > sessions # açılan oturumları listele
Buradaki mantık her modülde aynıdır: use ile modülü seç, show options ile eksik ayarları gör, set ile doldur, run (veya exploit) ile çalıştır. Bu dört adımı öğrendiğinde Metasploit'in genel mantığının büyük kısmını kavramış olursun.
Meterpreter nedir?
Meterpreter, Metasploit'in en bilinen payload'ıdır. Klasik bir komut kabuğundan farklı olarak diske yazmadan bellekte çalışır ve dosya gezme, ekran görüntüsü, süreç listeleme gibi işlemleri tek bir gelişmiş oturumda toplar. Bir laboratuvar oturumunda temel komutları şöyle görürsün:
meterpreter > sysinfo # hedef sistem bilgisi
meterpreter > getuid # hangi kullanıcı olarak çalışıyoruz
meterpreter > help # tüm komutlar
Güvenli bir Metasploit laboratuvarı nasıl kurulur?
Öğrenirken en kritik kural: asla gerçek/başkasına ait sistemlerde deneme yapma. Bunun yerine kendi bilgisayarında izole bir sanal lab kur. Klasik ve ücretsiz yol şudur:
- VirtualBox veya VMware ile bir sanal ağ oluştur (host-only ağ, internetten yalıtık).
- Saldırgan makine olarak Kali Linux VM'i kur.
- Hedef olarak Metasploitable 2/3 gibi kasıtlı-zafiyetli, eğitim için tasarlanmış bir VM kur.
- İki makineyi aynı yalıtık ağa bağla; böylece dış dünyaya zarar verme riski olmaz.
Bu yapı, hem yasal hem de teknik olarak güvenli bir "atış poligonu" sağlar. Tarayıcı içinde hazır laboratuvarlarla pratik yapmak istersen labs.altaysec.com.tr üzerinden kurulum derdi olmadan başlayabilir, bayrak yakalama (CTF) mantığını denemek için pratik.altaysec.com.tr'yi kullanabilirsin.
Metasploit'e karşı nasıl savunma yapılır?
Metasploit'i tanımak yalnızca saldırı için değil, savunma için de değerlidir. Mavi takımlar (blue team) bu aracı tam olarak "saldırgan ne görüyor?" sorusunu yanıtlamak için kullanır. Temel savunma önlemleri şunlardır:
- Yama yönetimi: Metasploit modüllerinin çoğu bilinen ve yamalı zafiyetleri hedefler; güncel sistemlerde birçok exploit çalışmaz.
- Ağ segmentasyonu: Servisleri birbirinden ayırmak, bir sisteme erişilse bile yayılmayı zorlaştırır.
- IDS/IPS ve EDR: Meterpreter ve yaygın payload'ların imza ve davranışları tespit çözümlerince izlenebilir.
- En az yetki ilkesi: Servisleri gereğinden fazla yetkiyle çalıştırmamak, post-exploitation etkisini sınırlar.
Kısacası Metasploit'i öğrenen bir savunmacı, kendi altyapısındaki tespit ve müdahale kabiliyetlerini doğrulayabilir. AI ve LLM sistemlerinin güvenliğine dair başlangıç konularına da ai.altaysec.com.tr üzerinden bakabilirsin.
Yeni başlayanlar için öğrenme yolu nasıl olmalı?
Metasploit tek başına bir hedef değil, bir araçtır. Onu verimli kullanmak için önce ağ temelleri, Linux komut satırı ve temel zafiyet mantığını öğrenmen gerekir. Önerilen sıralama: sanal lab kur, msfconsole'un dört temel adımını (use, show options, set, run) ezberle, Metasploitable üzerinde birkaç modül dene ve her denemeyi not al. Acele etme; her komutun ne yaptığını anlamak, komutu ezberlemekten çok daha değerlidir.
Sık Sorulan Sorular
Metasploit yasal mı?
Metasploit'in kendisi tamamen yasal, açık kaynaklı bir güvenlik aracıdır. Yasadışı olan, onu izinsiz sistemlere karşı kullanmaktır. Yalnızca kendi laboratuvarında, yazılı izinli yetkili testlerde veya eğitim ortamında kullandığın sürece bir sorun yoktur. İzinsiz kullanım Türkiye dahil birçok ülkede suç sayılır.
Metasploit ile Nmap arasındaki fark nedir?
Nmap bir ağ keşif ve port tarama aracıdır; "hangi sistemler açık, hangi servisler çalışıyor?" sorusunu yanıtlar. Metasploit ise bulunan bir zafiyeti test edip sömürülebilirliğini kanıtlamaya odaklanır. İkisi birbirini tamamlar: genellikle önce Nmap ile keşif yapılır, ardından Metasploit ile ilgili zafiyet doğrulanır.
Metasploit öğrenmek için önce ne bilmeliyim?
Temel ağ bilgisi (IP, port, TCP/IP), Linux komut satırı kullanımı ve zafiyetlerin genel mantığı iyi bir başlangıçtır. Bunlar olmadan komutları ezberlersin ama neden çalıştıklarını anlamazsın. Sanal bir laboratuvar kurup adım adım pratik yapmak, öğrenmenin en sağlıklı yoludur.
Metasploit ücretsiz mi?
Evet, Metasploit Framework açık kaynaklı ve ücretsizdir; Kali gibi dağıtımlarla hazır gelir. Rapid7'nin ayrıca ücretli, kurumsal özellikli Metasploit Pro sürümü de bulunur. Yeni başlayanların ve öğrencilerin ihtiyaç duyduğu her şey ücretsiz Framework sürümünde mevcuttur.