Metasploit-2 ile Uygulamalı Sızma Testi Eğitimi

GİRİŞ // Metasploit Nedir?

Metasploit Framework Nedir?

Sızma Testi ve Zafiyet Analizi Platformu

Metasploit Framework, siber güvenlik dünyasında kabul görmüş en güçlü açık kaynaklı sızma testi platformudur. Rapid7 tarafından geliştirilen bu araç; hedef sistemdeki zafiyetin tespitinden sömürü sonrası işlemlere kadar tüm süreci tek bir merkezden yönetmenizi sağlar.

Binlerce hazır modülü barındıran yapısı sayesinde, güvenlik uzmanlarının karmaşık saldırı vektörlerini simüle etmesine ve sistemlerin dayanıklılığını profesyonelce test etmesine olanak tanır.

Temel Özellikler

  • 2000+ Güncel Exploit Modülü
  • Gelişmiş Meterpreter Shell Desteği
  • Esnek Payload Yapılandırması
  • Otomatik Sömürü ve Post-Exploitation
EXPLOIT

Sistemdeki güvenlik açığını tetiklemek ve savunma hattını aşmak için kullanılan saldırı kodudur.

AUXILIARY

Bilgi toplama, tarama ve servis tespiti gibi doğrudan sömürü yapmayan yardımcı modüllerdir.

PAYLOAD

Exploit başarılı olduktan sonra hedefte koşturulan asıl koddur; saldırgana erişim sağlar.

SESSION

Sömürü sonrası hedef sistemle kurulan canlı ve interaktif iletişim bağlantısını temsil eder.

Metasploit Sızma Testi Metodolojisi
1. Keşif 2. Tarama 3. Analiz 4. Exploit 5. Post-Exploit

Yasal Uyarı: Bu teknikler yalnızca laboratuvar ortamlarında ve yasal izinli sızma testlerinde uygulanmalıdır. Yetkisiz sistemlere müdahale edilmesi TCK m.243-245 kapsamında suç teşkil eder.

BÖLÜM 01 // KEŞİF AŞAMASI

Port Tarama ve Servis Analizi

HEDEF IP: 10.0.2.3
ARAÇ: NMAP v7.9X

Hedef sistemin ağ üzerindeki varlığı doğrulandıktan sonra, saldırı yüzeyini haritalandırmak için servis keşfi yapılır.

kali@linux: ~/nmap-scans
kali@kali:~$
BÖLÜM 02 // AKTİF SALDIRI FAZI

FTP Servis Sömürüsü: Brute Force

HEDEF PORT: 21 (FTP)
MODÜL: ftp_login
1

Metasploit Framework'ü Başlatma

Framework'ü başlatmak için msfconsole komutunu kullanıyoruz.
kali@kali:~$
2

Modül Analizi

Modül parametrelerini incelemek için show options komutunu kullanıyoruz.
msf6 >
3

Saldırı İcrası

Konfigürasyon tamamlandıktan sonra saldırıyı başlatmak için run yazıyoruz.
msf6 auxiliary(ftp_login) >
BÖLÜM 03 // UZAKTAN ERİŞİM ANALİZİ

SSH Servis Sömürüsü ve Brute Force

HEDEF PORT: 22 (SSH)
PROTOCOL: TCP v2.0

SSH (Secure Shell), sistem yönetimi için tasarlanmış şifreli bir protokoldür. Ancak, zayıf kimlik doğrulama politikaları uygulandığında sızma testleri için doğrudan bir giriş noktası haline gelir. Bu bölümde, Metasploit'in tarama kabiliyetlerini kullanarak servis üzerindeki geçerli hesapları tespit edeceğiz.

Operasyonel Not: SSH saldırıları, FTP'ye göre daha güvenli şifreleme sunsa da, kaba kuvvet saldırılarıyla elde edilen oturumlar (session), saldırgana şifrelenmiş bir kanal üzerinden tam komut satırı erişimi sağlar.

1

Uygun Modülün Tespiti

Framework içerisinde SSH servisine yönelik brute force işlemleri için uygun modülü bulmak amacıyla search ssh_login komutunu kullanıyoruz.
msf6 >
2

Parametrelerin Belirlenmesi

Seçtiğimiz auxiliary/scanner/ssh/ssh_login modülünün gereksinimlerini görmek için show options komutu ile konfigürasyon tablosunu çağırıyoruz.
msf6 auxiliary(ssh_login) >
3

SSH Oturumunun Elde Edilmesi

Gerekli ayarlar (RHOSTS vb.) yapıldıktan sonra run komutunu işleterek hedef sistemdeki kullanıcıları test ediyoruz. Başarılı girişte doğrudan shell oturumu (session) kazanılır.
msf6 auxiliary(ssh_login) >
BÖLÜM 04 // POST-EXPLOITATION

Erişim Sağlama ve Yetki Yükseltme

YETKİ SEVİYESİ: ROOT
METHOD: SUDO ESCALATION

Sızma testinin en kritik aşaması, düşük yetkili bir kullanıcıdan root (tam yetkili) seviyesine geçiş yapmaktır. Bu bölümde, zayıf yapılandırılmış servisler ve sistem dosyaları üzerindeki izin hatalarını kullanarak yetki yükseltme (Privilege Escalation) sürecini tamamlayacağız.

Kritik Uyarı: Telnet gibi şifrelenmemiş protokoller, veriyi açık metin olarak ilettiği için ağ üzerindeki herkes tarafından dinlenebilir. Güncel sistemlerde bu servislerin yerini SSH almalıdır.

1

Telnet Protokolü ile Giriş

Hedef sistemin açık olan 23. portuna telnet 10.0.2.3 komutu ile bağlanarak elde ettiğimiz bilgileri (msfadmin) test ediyoruz.
kali@kali:~$
2

Sistem Analizi ve Bilgi Toplama

Sisteme başarıyla girdikten sonra, cat /etc/passwd komutunu çalıştırarak hedef sunucudaki kayıtlı kullanıcıları ve sistem hesaplarını görüntülüyoruz.
msfadmin@metasploitable:~$
3

Tam Yetki (Root) Elde Etme

Eriştiğimiz "msfadmin" kullanıcısının yüksek yetkilere sahip olduğunu (sudoers) varsayarak, sudo su komutuyla sistemdeki en yüksek yetki olan Root seviyesine çıkıyoruz.
msfadmin@metasploitable:~$
BÖLÜM 05 // EXPLOITATION FAZI

Samba Usermap Script (CVE-2007-2447)

HEDEF PORT: 139/445
VULN TYPE: RCE (ROOT)

Samba servisinin belirli sürümlerinde (3.0.20 - 3.0.25rc3) bulunan "Username Map Script" zafiyeti, kullanıcı adı alanına yerleştirilen özel karakterler aracılığıyla sistem üzerinde rastgele komut çalıştırılmasına (Remote Code Execution) olanak tanır. Bu yöntem, herhangi bir kimlik bilgisi gerektirmeden doğrudan root yetkisiyle sistem erişimi sağlar.

Stabilizasyon Notu: Elde edilen ilk "Reverse Shell" genellikle kısıtlıdır (non-interactive). Python'un pty kütüphanesini kullanarak bu oturumu tam interaktif bir Bash shell'e yükseltmek, sömürü sonrası işlemlerde kolaylık sağlar.

1

Zafiyet Analizi ve Modül Yükleme

Samba zafiyetini sömürmek üzere konsola geçiş yapmak için msfconsole komutunu kullanıyoruz.
kali@kali:~$
2

Konfigürasyon (Payload & Options)

Modül aktif olduktan sonra gereksinimleri görmek için show options komutunu çağırıyoruz.
msf6 exploit(usermap_script) >
3

Sömürü ve PTY Shell Yükseltme

Hedef IP tanımlaması sonrasında saldırıyı başlatmak ve yetkili shell'i elde etmek için run komutunu kullanıyoruz.
msf6 exploit(usermap_script) >
BÖLÜM 06 // POST-EXPLOITATION

MySQL Veritabanı Sızması ve Veri Madenciliği

HEDEF PORT: 3306 (MySQL)
HEDEF IP: 10.0.2.3

Nmap taramasında açık görülen 3306/TCP (MySQL) portuna, herhangi bir exploit modülüne ihtiyaç duymadan doğrudan Kali üzerinden bağlanılabilir. Metasploitable 2 üzerindeki MySQL servisi, "root" kullanıcısı için parola gerektirmeden uzak bağlantılara izin verecek şekilde yanlış yapılandırılmıştır.

Saldırı Geçiş Akışı

Kali (10.0.2.15) mysql -h 10.0.2.3 -u root DB Keşif + Dump

Operasyonel Strateji: Veritabanı katmanına sızmak, sistemdeki diğer web uygulamalarının kullanıcı verilerine ulaşmamızı sağlar. Elde edilen hash'ler kırılarak diğer servislerde sızma denemeleri (Credential Stuffing) için kullanılabilir.

1

Uzak MySQL Bağlantısı

Hedef sunucunun MySQL servisine şifresiz 'root' yetkisiyle bağlanmak için mysql -h 10.0.2.3 -u root komutunu kullanıyoruz.
root@kali:~#
2

Veritabanı Şema Analizi

Veritabanı sunucusunda bulunan tabloları ve şemaları listelemek için SHOW DATABASES; sorgusunu çalıştırıyoruz.
mysql>
3

Kritik Veri Sızdırma (Hash Dump)

Kullanıcı adı ve şifre hash'lerinin tutulduğu MySQL ana tablosundan veri çekmek için SELECT User, Host, Password FROM user; komutunu kullanıyoruz.
mysql [mysql]>
BÖLÜM 07 // DATABASE EXPLOITATION

PostgreSQL Servis Sızması ve Veri Keşfi

HEDEF PORT: 5432 (PostgreSQL)
VERSION: 8.3.X

Nmap taramasında tespit edilen 5432/TCP (PostgreSQL) portu, veritabanı katmanına sızmak için kritik bir vektördür. Bu aşamada, zayıf yapılandırmaları tespit etmek için kaba kuvvet saldırısı gerçekleştirecek ve ardından psql istemcisiyle doğrudan bağlantı kurarak veritabanı şemasını analiz edeceğiz.

Operasyonel Not: PostgreSQL 8.3.x sürümleri varsayılan yapılandırmada zayıf parolalar içerebilir. postgres:postgres gibi yaygın kimlik bilgileri, sisteme yetkisiz giriş yapmak için en sık başvurulan yöntemdir.

1

Modül Seçimi ve Hazırlık

PostgreSQL servisine yönelik brute-force (kaba kuvvet) saldırısını gerçekleştirecek uygun tarama modülünü seçiyoruz.
msf6 >
2

Kimlik Bilgisi Tespiti (Brute-Force)

Hedef IP adresi ayarlandıktan sonra (arka planda ayarlanmıştır), saldırıyı başlatmak için run komutunu gönderiyoruz.
msf6 aux(postgres_login) >
3

Kullanıcı Verilerini Sızdırma (pg_shadow)

Geçerli kimlik bilgisiyle veritabanına bağlandıktan sonra, şifrelenmiş kullanıcı parolalarını içeren ana tabloyu çekmek için SQL sorgumuzu yazıyoruz.
postgres=#
BÖLÜM 08 // PERSISTENCE & BACKDOOR

Ingreslock Arka Kapı Erişimi

HEDEF PORT: 1524 (Bindshell)
ACCESS LEVEL: ROOT (UNAUTHENTICATED)

Metasploitable 2 üzerinde çalışan Port 1524 (Ingreslock), sızma testi simülasyonları için kasıtlı olarak açık bırakılmış klasik bir "Bind Shell" örneğidir. Bu servis, kimlik doğrulama mekanizmasını tamamen devre dışı bırakarak kendisine gelen bağlantılara doğrudan bir root shell sunar.

Operasyonel Risk: Bind Shell'ler, sisteme sızan bir saldırganın kalıcılık (persistence) sağlamak için en çok başvurduğu yöntemlerden biridir. Port 1524 gibi standart dışı yüksek portlarda çalışan gizli servisler, sıkı firewall kuralları uygulanmayan iç ağlarda ciddi bir güvenlik açığı oluşturur.

1

Bind Shell Bağlantısı Başlatma

Açık olan 1524 numaralı porta herhangi bir exploit gerekmeksizin doğrudan netcat (nc) aracı ile bağlanıyoruz.
kali@kali:~$
BÖLÜM 09 // WEB APP EXPLOITATION

Apache Tomcat: Manager Authenticated RCE

HEDEF PORT: 8180
MODULE: tomcat_mgr_upload

Hedef sistemde yapılan Nmap taraması sonucunda, 8180/TCP portunun açık olduğu ve Apache Tomcat/Coyote JSP engine 1.1 servisinin çalıştığı tespit edilmiştir. Tomcat, web uygulamalarını çalıştırmak için kullanılan bir sunucudur ve genellikle bir yönetim arayüzü içerir. Eğitim amaçlı yapılandırılan bu sistemde, Tomcat yönetim panelinin varsayılan (default) kullanıcı adı ve parolası olan tomcat:tomcat değiştirilmemiştir.

Yönetim paneline erişim sağlandıktan sonraki amaç, hedef sisteme bağlanarak komutları çalıştırabileceğimiz bir "ters bağlantı" (reverse shell) elde etmektir. Paneldeki "Deploy" bölümü kullanılarak .war dosyaları sisteme yüklenebilmektedir.

Operasyonel Strateji: Saldırganın kendi makinesine bağlantı kuracak özel bir yazılım paketi hazırlamak için msfvenom aracı kullanılır. msfvenom, Metasploit Framework'ün bir parçası olup, farklı platformlar için özel zararlı yazılımlar (payload) oluşturmaya yarar.

1

Zararlı Yazılım (Payload) Hazırlığı

msfvenom aracını kullanarak, hedef Tomcat sunucusuna "Deploy" özelliği ile yükleyebileceğimiz ters bağlantı (reverse shell) sağlayan bir .war dosyası oluşturuyoruz.
kali@kali:~$
2

Metasploit Modül Seçimi

Oluşturduğumuz shell.war dosyasını sisteme manuel yüklemek yerine, bu işlemi otomatize eden tomcat_mgr_upload exploit modülünü çağırıyoruz.
msf6 >
3

Sömürü, Sisteme Sızma ve Oturum Elde Etme

Gerekli ayarlar (RHOSTS, HttpUsername vb.) yapıldıktan sonra run komutu ile exploit'i çalıştırıyor ve Meterpreter oturumumuzu elde ediyoruz.
msf6 exploit(tomcat_mgr_upload) >
BÖLÜM 10 // IRC SERVICE EXPLOITATION

UnrealIRCd 3.2.8.1 Backdoor Sömürüsü

HEDEF PORT: 6667 (IRC)
MODULE: unreal_ircd_3281_backdoor

UnrealIRCd 3.2.8.1 sürümünün orijinal kurulum dosyalarına, 2009 yılında siber saldırganlar tarafından kasıtlı olarak bir Arka Kapı (Backdoor) yerleştirilmiştir. Bu gizli kod, sunucuya gönderilen AB; karakter dizisini algıladığında, ardındaki metni doğrudan sistem komutu olarak root yetkisiyle çalıştırır.

Operasyonel Strateji: Önce Nmap ile hedef makinedeki 6667 portunun durumunu ve versiyonunu doğrulayacağız. Ardından Metasploit üzerinden ilgili modülü seçip, hedef (10.0.2.3) ve atak (10.0.2.15) IP yapılandırmalarını tamamlayarak zafiyeti sömüreceğiz.

1

Servis ve Versiyon Tespiti

Hedef makinede 6667 portunun açık olup olmadığını ve hangi servisin çalıştığını anlamak için derinlemesine bir Nmap taraması başlatıyoruz.
kali@kali:~$
2

Modül ve Payload Yapılandırması

Taramada tespit edilen "UnrealIRCd" bilgisi ışığında, msfconsole üzerinden ilgili exploit modülünü seçiyoruz. Arka planda hedef (RHOSTS) ve payload ayarları otomatik yüklenecektir.
msf6 >
3

Zafiyet Sömürüsü (Exploitation)

Exploit komutu çalıştırıldığında, hedefe bağlanılarak backdoor komutu gönderilecek ve sistem atak makinesine (10.0.2.15:4444) bir ters bağlantı açacaktır.
msf6 exploit(unreal_ircd_3281_backdoor) >
OPERASYON ÖZETİ

CTF İlerleme Durumu

Metasploitable 2 laboratuvarındaki operasyonel hedefleriniz aşağıda listelenmiştir. İlgili bölüme gitmek için kartların üzerine tıklayabilirsiniz. Tüm hedefler başarıyla aşıldığında sistemi tamamen ele geçirmiş olacaksınız.

TAMAMLANMA ORANI 0%