Pentest (Sızma Testi) Araçlarının Kapağını Açtığımızda Ne Görürüz?
Pentest Nedir
En kısa tanımıyla pentest (sızma testi) test kapsamındaki sistem veya sistemleri ele geçirmeye yönelik test aktiviteleridir. Pentest “penetration test“ ifadesinin kısaltılmış halidir. Türkçe karşılığı olarak “sızma testi” kullanılır.
Testi gerçekleştiren kişiler belirli saldırgan profillerini simüle ederler. Tehdit olarak anonim, yani sistemlere herhangi bir yetkili erişim hakkı bulunmayan bir profil genellikle tüm pentestlerde kullanılır. Bazı durumlarda sistemlere kullanıcı olarak erişen müşteri ve/veya sistem yönetim haklarına sahip olmayan personel profilleri de testlerde kullanılır.
Pentest aktiviteleri bir ağ erişimi ile başlar, ancak pentest süreçleri içinde sistemlere adım atıldıkça sistemler üzerindeki saldırı aktiviteleri ile devam edebilir. Bazı durumlarda sistemlere düşük haklara sahip bir kullanıcının hakları ile erişim sağlanabilir. Bu durumda pentestçi (pentester) bu erişim sayesinde edindiği bilgileri veya sağladığı erişim sayesinde kullanabileceği bir lokal açıklığı (yani sadece sisteme erişildiğinde kullanılabilecek bir açıklığı) kullanarak haklarını yükseltmeyi hedefler. Çünkü hedef her zaman sistemin tam olarak (yani yönetici hakları ile) ele geçirilmesidir.
Teknik olarak pentest projelerinin sistem veya sistemlerin ele geçirildiğinde sonlanması gerekir. Bu durumda pentesti yaptıran taraf başka ciddi açıklıklar bulunup bulunmadığından emin olamayabilir. Bu nedenle genellikle pentest projelerinde belli bir kapsamdaki sistemlerin açıklık denetimlerinin de (vulnerability assessment) yapılmasını içerir. Bu iki hedef çoğu durumda çelişebilir, çünkü pentest projesi belli bir alana odaklanmayı ve pekçok durumda ek araştırmayı gerektirir. Projenin zaman kısıtı ve açıklık denetiminin de tüketeceği zaman nedeniyle pentest faaliyetleri olabileceği kadar ilerletilemeyebilir.
Penetration test aktiviteleri ele geçirilen sistemlere saldırı amaçlı araçların yüklenmesini, sistemlere karşı sistem bütünlüğünü bozabilecek ve hatta sistemlerde hizmet kesintine yol açabilecek müdahalelerin yapılmasını içerir. Bu durum sistem bütünlüğü ve hizmet sürekliliği açısından risk doğurur. Bu risk kaçınılmazdır, ancak test zamanlaması, sistem yöneticileri ile koordinasyon, kimi durumlarda test öncesinde yedek alınması ve testi yapan kişilerin yetkinlik düzeylerinin yüksek olması gibi faktörlerle risk azaltılmaya çalışılmalıdır. Varolduğundan şüphelenilen açıklıkların sömürülmesinin (exploit edilmesinin) riskli olduğu durumlarda mutlaka kurum yönetiminin onayı alınmalıdır.
4. TEMEL SİSTEM SIZMA TESTİ METODU
Canlı
Sistem
Tespiti
Sistem
Analizi
Açıklık
Analizi
İstismar ve
Ele
Geçirme Hak
Yükseltme
ve KalıcılıkAğır İş
Cerrahi
Müdahale
5. TEMEL UYGULAMA SIZMA TESTİ METODU
Uygulama
Haritasının
Çıkarılması
Fonksiyo-
nalite
Analizi
Fuzzing
Testleri
Saldırı
İyileştirme
Mantık
Testleri
Ağır İş
Cerrahi
Müdahale
6. FRAMEWORK KULLANIMININ FAYDALARI
• Enumeration, protokol kullanımı, v.b. için ortak
fonksiyonların kullanım imkanı
• Veritabanı yapısı sayesinde sızma testi metodunun
önceki adımlarında edinilen bilgilerin sonraki
adımlarda kullanılabilmesi
• Destekleyici modüller
• Yönetim paneli imkanı, zamanlı iş planlama, kullanıcı
yönetimi, v.b.
13. ÖRNEKLER
İHTİYAÇ
Raporda DAV desteğinin bulunduğu ve dizin listesinin elde
edilbildiği bulgu olarak belirtilen web sunucusunun DAV
desteğinin bulunmadığı ve bulgunun hatalı olduğu iddia ediliyor.
SORU
Tarama aracımız bu desteğin bulunduğunu nasıl tespit etmiş,
aynı durumu manuel olarak nasıl oluşturabilirim ve tespiti detaylı
olarak açıklayabilirim?
14. ÖRNEKLER
Diyelim ki tarama aracı olarak W3AF aracını kullanıyoruz.
w3afpluginsaudit dizini içindeki dav.py Python script’ini
açalım.
16. ÖRNEKLER
İHTİYAÇ
Raporda DAV desteğinin bulunduğu ve dizin listesinin elde
edilbildiği bulgu olarak belirtilen web sunucusunun DAV
desteğinin bulunmadığı ve bulgunun hatalı olduğu iddia ediliyor.
AKSİYON
Artık tarama aracımızın DAV desteğini ve bu destek sayesinde
dizin listeleme fonksiyonunu nasıl kullandığını gördüğümüze
göre bu isteği manuel olarak oluşturup (ör: Burp Suite ile)
sonucunu da net biçimde gösterme imkanına kavuşabiliriz.
17. ÖRNEKLER
İHTİYAÇ
Denetim yaptığımız kurum Oracle TNS listener servisini farklı bir
port’a bind ediyor ve kuruma özgü ancak tahmin edilebilir bir
veritabanı SID değeri kullanıyor olabilir.
SORU
Öntanımlı Oracle SID’lerini testpit eden plugin Oracle TNS
listener servisini hangi portlarda arıyor ve hangi SID’ler için kaba
kuvvet testi uyguluyor?
18. ÖRNEKLER
Diyelim ki tarama aracı olarak OpenVAS kullanıyoruz.
http://komma-nix.de/index.php adresinden adında Oracle geçen
plugin’leri arayalım.
24. ÖRNEKLER
Oracle servisini tespit etmek ve SID değerlerini brute
force etmek için nmap’in kullanıldığını ve nmap
script’ine port aralığı parametresi olarak 1521-1560
değerlerinin öntanımlı olarak verildiğini öğrendik.
Şimdi Nmapnselib dizini içindeki oracle-sids
dosyasını bularak inceleyelim.
26. ÖRNEKLER
İHTİYAÇ
Denetim yaptığımız kurum Oracle TNS listener servisini farklı bir
port’a bind ediyor ve kuruma özgü ancak tahmin edilebilir bir
veritabanı SID değeri kullanıyor olabilir.
AKSİYON
Port aralığı parametresinin belirlendiği noktayı ve SID listesi
olarak kullanılan dosyanın hangi dosya olduğunu öğrendiğimize
göre bu bölümlerde kendi ihtiyaçlarımıza özel düzenlemeler
yapabiliriz.
27. ÖRNEKLER
İHTİYAÇ
Yeni bir hafıza taşma açıklığı keşfettim ve bu açıklığın başkaları
tarafından ve istedikleri payload’lar ile kullanılabilmesini
istiyorum.
SORU
İstismar (exploit) framework’lerine bulduğum açıklık için nasıl
modül ekleyebilirim?
28. ÖRNEKLER
Metasploit framework’ünün mimarisini anlayarak ve bu
mimarinin kurallarına uyarak açıklığı kolayca
kullanılabilir hale getirebilirim.
Bunun için http://www.offensive-
security.com/metasploit-unleashed/Exploit_Format
adresinden faydalanabilirim.