Metasploit-3 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.10.10.136
ARAÇ: NMAP v7.98

Hedef sistemin ağ üzerindeki varlığı doğrulandıktan sonra, saldırı yüzeyini haritalandırmak ve zafiyet barındıran servisleri tespit etmek için detaylı keşif yapılır.

kali@linux: ~/nmap-scans
kali@kali:~$
BÖLÜM 02 // VERİTABANI İSTİSMARI

MySQL SSL Bypass & Veri Keşfi

HEDEF PORT: 3306 (MySQL)
TEKNİK: SSL Config Bypass
1

İlk Bağlantı Denemesi (Hata)

Sıradan bir bağlantı isteği gönderiyoruz. Hedefin yapılandırması nedeniyle SSL hatası alacağız. Komut: mysql -u root -h 10.10.10.136
kali@kali:~$
2

SSL Engellemesini Aşma

Parametreye --ssl=FALSE ekleyerek konfigürasyon hatasını bypass edip içeri şifresiz sızıyoruz.
kali@kali:~$
3

Veritabanlarını Keşfetme

Sisteme root olarak sızdıktan sonra içerideki kritik tabloları görmek için show databases; komutunu kullanıyoruz.
MySQL [(none)]>
BÖLÜM 03 // KRİTİK ZAFİYET SÖMÜRÜSÜ

MS17-010 (EternalBlue) İstismarı

HEDEF PORT: 445 (SMB)
MODÜL: ms17_010_eternalblue

Keşif aşamasında tespit ettiğimiz Windows Server 2008 R2 sisteminde çalışan SMBv1 servisinde kritik bir zafiyet olan MS17-010 (EternalBlue) bulunduğunu öngörüyoruz. Bu bölümde Metasploit Framework kullanarak bu zafiyeti istismar edecek ve sistemde en üst yetkiyle (NT AUTHORITY\SYSTEM) Meterpreter oturumu elde edeceğiz.

Operasyonel Not: EternalBlue, Windows SMB protokolündeki bir bellek bozulması (buffer overflow) hatasını kullanarak uzaktan kod yürütülmesine (RCE) olanak tanır. Başarılı bir sömürü, hedef sisteme doğrudan müdahale imkanı veren ters bağlantı (reverse shell) sağlar.

1

Exploit Tespiti ve Seçimi

EternalBlue zafiyetine yönelik exploit modülünü bulmak için search ms17-010 komutunu kullanıyoruz.
msf6 >
2

Parametrelerin Belirlenmesi

Kullanacağımız exploit/windows/smb/ms17_010_eternalblue modülü için hedef (RHOSTS) ve saldırgan (LHOST) IP'lerini ayarladıktan sonra yapılandırmayı kontrol etmek için show options yazıyoruz.
msf6 exploit(ms17_010_eternalblue) >
3

Exploit İcrası ve Shell Alınması

Hedef yapılandırması tamamlandı. Zafiyeti tetikleyerek hedef sistemin belleğine sızmak ve ters bağlantı almak için exploit komutunu çalıştırıyoruz.
msf6 exploit(ms17_010_eternalblue) >
BÖLÜM 04 // WEB UYGULAMA İSTİSMARI

ManageEngine Zafiyeti ve RCE

HEDEF PORT: 8020 (HTTP)
TEKNİK: JSP Stager Upload

Nmap taramasında 8020 portunda çalışan ManageEngine Desktop Central 9 uygulamasını tespit etmiştik. Bu sürümde bilinen bir dosya yükleme (File Upload / Connection ID Write) zafiyeti bulunmaktadır. Amacımız, uygulamaya zararlı bir JSP (Java Server Page) stager dosyası yükleyerek uzaktan kod yürütme (RCE) elde etmektir.

1

Modül Tespiti

Hedefteki uygulamanın versiyonuna uygun exploit modülünü bulmak için Metasploit üzerinde search manageengine komutunu çalıştırıyoruz.
msf6 >
2

Parametre Analizi

Seçilen manageengine_connectionid_write modülünde hedefin bilgilerini (RHOSTS, RPORT) giriyoruz ve show options diyerek son kontrolleri yapıyoruz.
msf6 exploit(manageengine_connectionid_write) >
3

Zafiyetin Sömürülmesi

Hedef sunucuya zararlı bir JSP stager yüklemek ve bu dosyayı tetikleyerek shell oturumu elde etmek için exploit komutunu çalıştırıyoruz.
msf6 exploit(manageengine_connectionid_write) >
BÖLÜM 05 // VERİ MOTORU İSTİSMARI

Elasticsearch RCE (CVE-2014-3120)

HEDEF PORT: 9200 (HTTP)
MODÜL: script_mvel_rce

Elasticsearch Nedir ve Neden Zafiyetli?

Elasticsearch, Apache Lucene üzerine kurulu, dağıtık yapıda çalışan güçlü bir arama ve veri analizi motorudur. Genellikle büyük veriler içinde hızlı (full-text) metin aramaları yapmak, log analizleri (ELK Stack) ve operasyonel verileri görselleştirmek için kullanılır.

Nmap taramamızda hedef sistemde Elasticsearch'ün 1.1.1 sürümünün çalıştığını tespit ettik. Bu eski sürümde "Dinamik Scripting" (MVEL dili) varsayılan olarak açıktır. Bu yapılandırma hatası, yetkisiz bir saldırganın dışarıdan gönderdiği sorguların içine Java kodları gömerek bunları sunucuda çalıştırmasına (Uzaktan Kod Yürütme - RCE) olanak tanır.

1

Exploit Tespiti

Elasticsearch MVEL zafiyetine yönelik uygun exploit modülünü bulmak için search elasticsearch komutunu kullanıyoruz.
msf6 >
2

Parametre Konfigürasyonu

Modülü (exploit/multi/elasticsearch/script_mvel_rce) seçtikten sonra hedef IP, Port ve payload yapılandırmamızı kontrol etmek için show options komutunu giriyoruz.
msf6 exploit(script_mvel_rce) >
3

Zafiyetin Sömürülmesi

Her şey hazır. Elasticsearch'ün REST API'sine zararlı payload'umuzu ileterek sistemden erişim almak için exploit komutunu çalıştırıyoruz.
msf6 exploit(script_mvel_rce) >
BÖLÜM 06 // UYGULAMA SUNUCUSU İSTİSMARI

Java RMI / JMX Server Zafiyeti

HEDEF PORT: 1617 (Java RMI)
MODÜL: java_jmx_server

Java RMI ve JMX Nedir? Neden Tehlikelidir?

RMI (Remote Method Invocation): Java programlarının ağ üzerindeki başka bir makinede bulunan Java nesneleriyle haberleşmesini ve komut çalıştırmasını sağlayan bir API'dir.
JMX (Java Management Extensions): Java uygulamalarını (örneğin Tomcat, Glassfish) uzaktan izlemek ve yönetmek için kullanılan bir standarttır.

Nmap ile 1617 portunda çalışan bir Java RMI servisi tespit ettik. Eğer bir sistem yöneticisi JMX servisini kimlik doğrulama (authentication) olmadan dışarıya açık bırakırsa, saldırganlar uzaktan zararlı bir Java sınıfı (MBean) yükleyip bu nesneler üzerinden hedef sunucuda işletim sistemi seviyesinde komut çalıştırabilir (RCE).

1

Modül Seçimi

Güvenlik doğrulaması olmayan JMX servisini sömürmek için search java_jmx_server komutunu kullanıp ilgili modülü buluyoruz.
msf6 >
2

Yapılandırma Kontrolü

Hedef IP ve hedef port (1617) ayarlarını yapılandırdıktan sonra show options diyerek değerlerin doğru atandığından emin oluyoruz.
msf6 exploit(java_jmx_server) >
3

Son Darbe: Shell Oturumu

Hedefteki RMI Registry servisine bağlanıp zararlı Java sınıfımızı yüklemek için run (veya exploit) komutunu veriyoruz.
msf6 exploit(java_jmx_server) >

CTF operasyon ilerleme paneli

Operasyon Özeti
İlerleme Durumu

10.10.10.136 hedef sistemindeki operasyonel hedefleriniz aşağıda listelenmiştir. Kartlara tıklayarak ilgili göreve gidebilirsiniz.

Tamamlanma Oranı0%

Başlık Metninizi Buraya Ekleyin