DNS Spoofing (DNS Zehirlemesi – DNS Önbellek Zehirlemesi) Ve Önlemler

DNS(Domain Name Server) NEDİR ?

Türkçe karşılığı Alan İsimlendirme Sistemi olarak bilinir.DNS, 256 karaktere kadar büyüyebilen host isimlerini IP’ye çevirmek için kullanılan bir sistemdir.Yani tarayıcımıza girilen bir web sayfasının IP Adresinin karşılığı olarak belirlenen alan ismidir.

Basit bir şekilde DNS’in çalışma prensibinin akış diyagramı bu şekildedir.

 

DNS SPOOFİNG NEDİR ?

Aynı ağda yetkisi olmayan bir ana makinenin tüm istekleri DNS sunucusu kendisi gibi gösterip kendine yönlendirme saldırısıdır.Diğer adıyla MITM(Ortadaki Adam Saldırısı) saldırıları konusu başlığı altında incelenebilir.Temel mantık ise saldırgan kurbanın bütün DNS isteklerini yetkisi olmayan bir makine üzerinden geçirip manipülasyonlara uğratarak kandırma(Spoofing),yalanlama işlemidir.Yukarıdaki akış diyagramında Yerel DNS Sunucularında Arama ve Önbellek olarak gösterilen aritmetik,mantıksal kısmına müdahale olayıdır.

Kali Linux üzerinden konfigürasyonlarımızı ve hazırlığımızı yaparak başlayalım.Kendi makinemizi DNS sunucusu gibi göstermemiz için ilk önce Apache HTTP Sunucusunu kurmamız gerekiyor.Eğer kurulu ise karşılaşacağımız HTTP Server Error hatalarına karşı yinede terminalde girmemiz gereken komutlar

apt-get purge apache2
apt-get update && apt-get dist-upgrade
sudo apt-get install apache2 apache2-doc apache2-utils

ve Apache sunucumuzu başlatalım

DNS zehirlemesi yapacağımız kurbana sahte olarak göstereceğimiz site(Bilgilerini edinmek istediğimiz web sayfası) sayfasının login veya başka form kaynak kodlarını /var/www/html/index.html dosyasına yapıştırıyoruz.Örnek facebook.com

Görüldüğü gibi inet kısmında beliren 192.168.1.105 bizim Local Ip adresimizdir.Eğer saldırgan, kurbanın girmek istediği sitenin DNS sorgusunu orjinal site IP adresine değil de kendi Apache sunucusu üzerinden geçirebilirse işlem tamamlanmış demektir.

Bu işlemide gerçekleştirdikten sonra en önemli kısım olan kurbanın kurduğumuz local apache http sunucusu üzerinden bizim yaptığımız sahte web sayfasına yönlendirmek olacaktır.Bunun için DNS konfigürasyon dosyamızda birkaç değişiklik yapmamız gerekiyor.Açılan konfigürasyon dosyamızdaki facebook.com *.facebook.com karşısındaki Ip adreslerini değiştirerek kendi Local ip adresimizi yazıp kaydedip konfigürasyon işlemini bitiriyoz.

Şimdi Ettercap uygulamasıyla ARP(Adres Çözümleme Protokolü) tablosunu zehirleyerek bir MITM saldırısı başlatalım.Sniff seçeneğinden Unified sniffing‘i seçiyoruz ve geçerli ağ kartımızı belirliyoruz.

Host seçeneğinden Scan for host‘a tıklayarak ağdaki Local Ip’leri buluyoruz.Spoofing yapacağımız kurban cihazı seçerek Add to Target ile ekliyoruz.

MİTM > ARP poisoning ile Sniff remote connections işaretliyoruz sonra Start sniffing  ile MİTM Saldırısını başlatıyoruz

ve kurban facebook.com’a bağlanmaya çalıştığında DNS Spoofing işlemimiz gerçekleşecektir.Facebook.com kendi IP adresine yönlendirilmeden bizim local ip apache sunucumuzdaki phising sayfasına yönlendirilecektir.(Kurban olarak VirtualBox sanal Windows 7 kullanılmıştır.)

Sonuç olarak kullanıcı adı ve şifre saldırgan tarafından elde edilmiş olur.

 

DNS Spoofing Önlem Nasıl Alınır ?

DNS Spoofing için kurumsal ve yazılımsal önlemlerden çok kolayca bu duruma düşülmemesi için yapılması gereken en basit yöntemlerden sadece biri belirli aralıklarla DNS cache’leri temizlemek olacaktır.Diğer yöntemler genellikle MITM Saldırısı önlemleri olarak da bilinir.

Windows için cache temizleme işlemi

ipconfig /flushdns
ipconfig /release
ipconfig /renew

 

Linux için cache temizleme işlemi

Linux’da genellikle DNS ile ilgili cacheleri sildikten sonra sorumlu servislere restart atmamız yeterli olacaktır.

systemd-resolve --flush-caches
sudo systemctl restart systemd-resolved

Diğer DNS servislerinden olan Nscd, libc tarafından gönderilen isteklerdeki alan adını önbelleğe alır. Sadece nscd’yi yeniden başlatmak yeterli olacaktır dnsmasq ise DNS sunucu olarak üzerinde çözümlenen domain’ler için IP adresine dönüşüm sağlar.

service nscd restart
service dnsmasq restart

 

Linux sever, python yazar,güvenlik meraklısı biri.