
Bir sızma testi (penetrasyon testi) veya etik hackleme saldırısı gerçekleştirmek, organizasyonların zayıflıklarını keşfetmek ve güvenlik önlemlerini güçlendirmek için kritik bir adımdır. Aşağıda örnek bir saldırı planı adım adım açıklanmıştır. Bu plan, güvenlik uzmanlarının ağ, web uygulamaları, sistemler ve diğer kaynaklar üzerinde bir sızma testi yaparken izleyebileceği genel bir yol haritasıdır.
Örnek Saldırı Planı
1. Planlama ve İzinler
Herhangi bir etik hackleme veya sızma testi gerçekleştirmeden önce izin almak, yasal ve etik açıdan son derece önemlidir. İzinlerin yazılı olarak alınması gerektiği unutulmamalıdır.
- Hedef Belirleme: Hangi hedeflerin test edileceği belirlenmeli (örneğin, ağ altyapısı, web uygulamaları, iç sistemler vs.).
- Test Kapsamı: Testin kapsamı belirlenmeli. Test edilecek sistemler, uygulamalar, ağ altyapıları vb.
- İzinler: Hedef organizasyondan yazılı izin alınmalıdır.
- Zaman Çizelgesi: Saldırının ne zaman yapılacağı belirlenmeli.
- Risk Analizi: Potansiyel riskler ve test sırasında oluşabilecek olası zararlar göz önünde bulundurulmalı.
2. Hedef Bilgisi Toplama (Reconnaissance)
Bu aşama, hedef hakkında mümkün olan her türlü bilgiyi toplamayı içerir. Bu süreç, doğrudan saldırıya geçmeden önce hedefin zayıf noktalarını bulmak için önemlidir.
- Hedef Bilgileri Edinme:
- Alan adı, IP adresi, kullanılan yazılımlar, donanım ve diğer ağ bilgileri.
- Whois sorgulamaları, DNS aramaları, port taramaları vb.
- Whois: Hedefin alan adı hakkında bilgi edinme.
- Nslookup/Dig: DNS bilgilerini inceleme.
- Nmap: Hedefin açık portlarını, servislerini ve sürümlerini belirleme.
- Toplam Bilgiler:
- IP Adresleri: Hedefin genel IP adresleri.
- Subdomain Aramaları: Hedefin alt alan adlarını keşfetmek.
- Açık Portlar: Hedefin açık olan portlarını öğrenmek (HTTP, HTTPS, FTP, SSH vb.).
- Servis ve Yazılım Sürümü Tespiti: Hedefin kullandığı yazılım sürümleri (Web server, database server vb.).
- Kimlik Bilgileri: İleri seviye sızma testlerinde, eğer izin verilirse, şirket çalışanlarına ait e-posta adresleri ve diğer bilgilere ulaşılabilir.
3. Servis ve Sistem Tespiti
Bu adımda, hedefteki aktif servislerin ve sistemlerin daha derinlemesine incelenmesi yapılır.
- Port Tarama ve Servis Tespiti:
- Nmap kullanarak hedefin açık portları tespit edilir.
- Portlarda hangi servislerin çalıştığı belirlenir (HTTP, SSH, FTP, SMB vb.).
- OS Fingerprinting: Hedefin işletim sistemi hakkında bilgi edinilir.
- Web Uygulama Tarama:
- Web sunucusunun güvenlik testleri yapılır (örneğin, Nikto veya OWASP ZAP kullanarak).
- SQL Injection, Cross-Site Scripting (XSS), Directory Traversal gibi yaygın web güvenlik açıkları tespit edilir.
4. Zayıf Nokta ve Açıkların Keşfi (Vulnerability Scanning)
Burada, hedef sistemdeki yazılımsal zayıflıklar ve potansiyel güvenlik açıkları taranır.
- Otomatik Tarayıcılar:
- Nessus, OpenVAS veya Qualys gibi otomatik güvenlik tarayıcıları kullanılarak zayıf noktalar aranır.
- Manuel Testler:
- Manuel olarak, hedefin web uygulamalarında daha karmaşık zafiyetler aranır.
- Burp Suite kullanarak web uygulamaları üzerinde SQL Injection, XSS gibi açıklar test edilir.
- Şifre Brute Force Saldırıları:
- Hydra kullanarak servisler üzerindeki zayıf şifreler test edilir (örneğin, SSH veya RDP).
- John the Ripper veya Hashcat ile hash’ler üzerinde brute force saldırıları yapılır.
5. Exploit (Zafiyetlerin Kullanılması)
Bu aşamada, keşfedilen açıklar kullanılarak sızma gerçekleştirilir.
- Metasploit Framework: Keşfedilen zayıflıklara uygun exploitler kullanılarak hedef sistemlere sızılır.
- Metasploit kullanarak hedef IP’deki açıklar üzerinden exploit yapılabilir.
- Payloadlar: Hedefe uygun bir payload (örneğin, reverse shell veya meterpreter) kullanılır.
- Açıkların Manipülasyonu:
- Web uygulamalarındaki zayıflıklar manipüle edilerek, admin paneline erişim sağlanabilir.
- Eğer hedef bir veritabanı ise, SQL Injection yöntemiyle veritabanına erişilebilir.
6. Yükseltilmiş Yetkiler ve Erişim Sağlama (Privilege Escalation)
Bu adımda, hedef sistemde elde edilen kullanıcı hesabı ile daha yüksek yetkiler elde edilmeye çalışılır.
- İşletim Sistemi ve Servis Zayıflıkları:
- Linux veya Windows üzerinde, varsayılan parolalar, güvenlik açıkları veya izin hataları kullanılarak root/admin hakları elde edilir.
- Sosyal Mühendislik:
- Eğer hedef şirkette çalışan personel varsa, phishing (oltalama) saldırıları ile oturum açma bilgileri elde edilebilir.
7. İzler ve Logları Temizleme
Sızma gerçekleştikten sonra, genellikle izlerin silinmesi önemlidir. Bu adım, etik hacklemede genellikle testin son kısmıdır.
- Log Temizleme: Elde edilen erişimden sonra sistem logları silinir veya düzenlenir.
- Backdoor (Arka Kapı) Kurulumu:
- Netcat veya Meterpreter gibi araçlarla arka kapılar kurulur.
- Böylece daha sonra sisteme yeniden erişim sağlanabilir.
8. Raporlama ve Öneriler
Saldırının ardından, yapılan testlerin sonuçları ve bulgular detaylı bir şekilde raporlanır.
- Raporda Yer Alacaklar:
- Keşfedilen açıklar ve zafiyetler.
- Uygulanan exploitler ve teknikler.
- Sistemlere yapılan erişimler.
- Elde edilen veriler.
- Şirketin güvenlik açığını gidermek için öneriler.
- İyileştirme Önerileri:
- Güçlü parolaların kullanılması, firewall yapılandırmalarının gözden geçirilmesi, yazılım güncellemelerinin yapılması gibi önlemler.
9. Test Sonrası Takip
Test tamamlandıktan sonra, organizasyona zafiyetlerin giderilmesi için takip yapılır.
Sonuç
Bir sızma testi veya etik hackleme saldırısı, organizasyonların güvenlik açıklarını tespit etmelerini ve bu açıkları nasıl iyileştirebileceklerini anlamalarına yardımcı olur. Yukarıdaki adımlar, bir saldırı planının temel unsurlarını içermektedir ve her adımda dikkat edilmesi gereken birçok teknik detay vardır. Bu adımların etik ve yasal sınırlar içinde gerçekleştirilmesi gerektiği unutulmamalıdır.
Aşağıda, sizler için sızma testi (penetrasyon testi) sırasında kullanılabilecek bazı temel komutları ve araçları listeleyeceğim. Bu komutlar, çeşitli test aşamalarında, ağ taramadan güvenlik açıklarını tespit etmeye kadar geniş bir yelpazede kullanılabilir.
1. Bilgi Toplama (Reconnaissance) Komutları
- Whois (Alan Adı Bilgisi):
Alan adı ve IP bilgilerini elde etmek için kullanılır. cssKopyalaDüzenlewhois [hedef_alan_adı]
- Nslookup/Dig (DNS Bilgisi):
DNS sorguları yaparak hedef hakkında bilgi edinilir. cssKopyalaDüzenlenslookup [hedef_alan_adı] dig [hedef_alan_adı]
- Nmap (Ağ Tarama):
Hedef ağdaki açık portları, servisleri ve işletim sistemlerini tespit etmek için kullanılır. cssKopyalaDüzenlenmap -sS [hedef_IP] nmap -O [hedef_IP] # İşletim Sistemi Tespiti nmap -sV [hedef_IP] # Servis ve Sürüm Tespiti
- Sublist3r (Alt Alan Adı Arama):
Hedef alan adının alt alan adlarını keşfetmek için kullanılır. cssKopyalaDüzenlepython sublist3r.py -d [hedef_alan_adı]
- Dirb (Web Dizini ve Dosya Taraması):
Web sunucusunda gizli dizinler veya dosyalar aramak için kullanılır. rubyKopyalaDüzenledirb http://[hedef_IP] /path/to/wordlist.txt
2. Güvenlik Açıkları ve Zafiyet Tespiti
- Nikto (Web Uygulama Tarama):
Web sunucusunda yaygın güvenlik açıklarını tespit etmek için kullanılır. nginxKopyalaDüzenlenikto -h http://[hedef_IP]
- OpenVAS (Zafiyet Taraması):
Hedef sistemdeki güvenlik açıklarını tespit etmek için kullanılır. sqlKopyalaDüzenleopenvas-start openvas-check-setup
- Wpscan (WordPress Zafiyet Taraması):
WordPress tabanlı web sitelerinde güvenlik açıklarını taramak için kullanılır. cssKopyalaDüzenlewpscan --url [hedef_alan_adı] --enumerate u
- SQLmap (SQL Injection Testi):
Web uygulamalarında SQL injection güvenlik açıklarını tespit etmek için kullanılır. luaKopyalaDüzenlesqlmap -u "http://[hedef_alan_adı]/page?id=1" --dbs
3. Exploit (Zafiyet Kullanma)
- Metasploit Framework (Exploit Kullanma):
Belirli bir zafiyet için exploit aramak ve kullanmak için kullanılır. cssKopyalaDüzenlemsfconsole search [exploit_ismi] use exploit/[exploit_adı] set RHOSTS [hedef_IP] set LHOST [saldırgan_IP] exploit
- Hydra (Kaba Kuvvet Saldırıları):
Zayıf şifreleri test etmek için kullanılır. cssKopyalaDüzenlehydra -l [kullanıcı_adı] -P [wordlist] ssh://[hedef_IP]
- John the Ripper (Şifre Kırma):
Kriptolu şifreleri kırmak için kullanılır. pythonKopyalaDüzenlejohn --wordlist=[wordlist.txt] --format=raw-md5 [hash.txt]
4. Ağ Dinleme ve Manipülasyon
- Netcat (Ağ İletişimi):
Hedef makine ile bağlantı kurmak için kullanılır. cssKopyalaDüzenlenc -lvp [port] # Dinleyici açma nc [hedef_IP] [port] # Bağlantı kurma
- Wireshark (Ağ Trafiği Analizi):
Ağ trafiğini analiz etmek ve verileri yakalamak için kullanılır. nginxKopyalaDüzenlewireshark
- Ettercap (ARP Spoofing ve Ağ Manipülasyonu):
Man-in-the-Middle saldırıları yapmak için kullanılır. lessKopyalaDüzenleettercap -T -M arp:remote /[hedef_IP]/ /[hedef_IP]/
5. Şifreleme ve Kimlik Doğrulama
- Aircrack-ng (Wi-Fi Güvenlik Testi):
Kablosuz ağlarda WEP veya WPA şifrelemelerini kırmak için kullanılır. cssKopyalaDüzenleairodump-ng [arayüz] # Hedef ağları tarar aircrack-ng [capture_file] -w [wordlist]
- Burp Suite (Web Uygulama Proxy ve Saldırı):
Web uygulama güvenliği testlerini yaparken proxy olarak kullanılabilir. nginxKopyalaDüzenleburpsuite
6. Yetki Yükseltme ve İzin Manipülasyonu
- LinPEAS (Linux Yetki Yükseltme Araçları):
Linux sistemlerinde yetki yükseltme zafiyetlerini keşfetmek için kullanılır. bashKopyalaDüzenle./linpeas.sh
- Windows Exploit Suggester (Windows Yetki Yükseltme):
Windows sistemlerinde yükseltilebilecek zafiyetleri tespit eder. cssKopyalaDüzenlepython windows-exploit-suggester.py --update python windows-exploit-suggester.py --database [sürüm_veritabanı] --system [hedef_sistem]
7. Sonuçları Temizleme ve İz Sürme
- Clearev (Windows Event Log Temizleme):
Windows sistemlerinde logları temizler. nginxKopyalaDüzenleclearev
- Wipe (Dosya Temizleme):
Dosya sisteminden iz bırakmamak için silme işlemi yapar. cssKopyalaDüzenlewipe -f [dosya_adı]
8. Raporlama
Sızma testi sonunda elde edilen bulgular ve zafiyetler raporlanır. Bu, genellikle yazılı rapor veya dosya biçiminde bir çıktı olabilir, ancak her test için özel bir araç komutu yoktur. Raporlama için aşağıdaki öğelere dikkat edilmelidir:
- Keşfedilen açıklar
- Kullanılan teknikler ve araçlar
- Önerilen güvenlik önlemleri
- Şirket için önerilen iyileştirme adımları
Sonuç
Yukarıdaki komutlar, bir etik hackleme sürecinin çeşitli aşamalarında kullanılabilir. Komutların doğru ve dikkatli bir şekilde uygulanması, testin etkinliğini ve yasal sınırlar içinde gerçekleştirilmesini sağlar.