DNS Spoofing (DNS Önbellek Zehirlemesi) Nedir ve Nasıl Korunabilirsiniz?

Osman Kandemir
5 min readJul 18, 2021

ÖNEMLİ : Bu blog yazısı, tamamen eğitim amacıyla yazılmıştır ve bilgi güvenliği farkındalığı oluşturmayı amaçlamaktadır. Önceliğimiz, GÜVENLİK ÖNERİLERİ bölümünün okunması ve herhangi bir yasa dışı faaliyet yerine yetkilendirilmiş yasal yöntemlerin kullanılması gerektiğinin vurgulanmasıdır. Bu bağlamda beyaz kutu testi ve gri kutu testi gibi yöntemlerin güvenlik değerlendirmelerinde kullanılmalıdır.

Kullanılan Araçlar

Ettercap: C programlama dilinde yazılmış, Network Sniff (Ağ Dinleme) ve Arp zehirleme işlemi için kullanılacak bir ağ güvenliği aracıdır.

Sistem : Kali Linux

Hedef Sistem : Windows 7 (VirtualBox)

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. Tarayıcıya girilen bir web uygulama sayfasının, IP adresinin karşılığı olarak belirlenen alan ismidir.

Şekil 1

Basit bir şekilde DNS’in çalışma prensibinin akış diyagramı bu şekildedir.(Şekil 1)

DNS SPOOFİNG NEDİR ?

Yerel ağlarda, yetkisi olmayan bir makinenin tüm istekleri DNS sunucusunu kendisi gibi gösterip, trafiği kendine yönlendirerek gerçekleştirilen bir saldırı yöntemidir. MITM(Man in The Middle) saldırıları, başlığı altında da incelenebilir. Temel mantığı ise saldırgan, hedefin bütün DNS isteklerini yetkisi olmayan bir makine üzerinden geçirip manipülasyona 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, kurulum ve konfigürasyon ayarları yapılarak başlanır. Yerel makineyi, DNS sunucusu gibi göstermek için ilk önce Apache2 web sunucusunun kurulması gerekiyor. Kurulmuş ise karşılaşılacak ‘Server Error’ hatalarına karşı yine de terminalde girilmesi gereken komutlar aşağıda belirtilmiştir.

  • apt-get purge apache2
  • apt-get update && apt-get dist-upgrade
  • sudo apt-get install apache2 apache2-doc apache2-utils
Şekil 2

Web sunucusu başlatılır. (Şekil 2)

Şekil 3

DNS Poisoning yapılacak hedefe, phising olarak gösterilecek web uygulama (Saldırganın bilgilerini edinmek istediği web uygulaması) sayfasının login form veya başka form kaynak kodları /var/www/html/index.html dosyasına yapıştırılır.(Şekil 3) Örnek: facebook.com

Şekil 4

inet kısmı olan 192.168.1.105 ip adresi saldırganın yerel makinesinin ip adresidir. (Şekil 4) Saldırgan, hedefin gitmek istediği sitenin IP adresinin DNS sorgusunu kendi sunucusu üzerinden geçirebilirse işlem tamamlanmış demektir.

Şekil 5

leafpad /etc/ettercap/etter.dns

Önemli olan kısım hedefin kurulan Apache2 web sunucusu üzerinden saldırganın yapmış olduğu sahte web sayfasına yönlendirmektir. Bunun için Ettercap DNS konfigürasyon dosyasında birkaç değişiklik yapılması gerekiyor. Konfigürasyon dosyasındaki facebook.com *.facebook.com’ un karşısında yer alan IP adresleri, saldırganın yerel makine IP adresi ile değiştirilerek konfigürasyon işlemi bitirilir. (Şekil 5)

Şekil 6

Saldırgan Ettercap uygulamasıyla ARP(Address Resolution Protocol) tablosunu zehirleyerek bir MITM saldırısı başlatır. ‘Sniff‘ seçeneğinden ‘Unified sniffing‘ seçilir ve kullanılan ağ kartı belirlenir. (Şekil 6)

Şekil 7

‘Host‘ seçeneğinden ‘Scan for host‘a tıklanarak, aynı ağdaki IP adresleri tespit edilir. Spoofing yapılacak hedef cihaz seçilerek ‘Add to Target‘ ile eklenir.(Şekil 7)

Şekil 8
Şekil 9

‘MITM > ARP poisoning‘ ile ‘Sniff remote connections‘ işaretlenir. Start sniffing ile MITM saldırısı başlatılır.(Şekil 8,Şekil 9)

Şekil 10

Hedef, facebook.com’a bağlanmaya çalıştığında DNS Spoofing işlemi gerçekleşecektir. Facebook.com kendi IP adresine yönlendirilmeden saldırganın IP’sine ait Apache2 web sunucusundaki phising sayfasına yönlendirilecektir.(Hedef olarak VirtualBox sanal Windows 7 kullanılmıştır.)(Şekil 10)

Şekil 11

Sonuç olarak, kullanıcı adı ve şifre saldırgan tarafından elde edilmiş olur.(Şekil 11)

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

DNS Spoofing saldırıları için yapılması gereken en basit yöntemlerden sadece biri belirli aralıklarla DNS önbelleği temizlemek ve yeni bir IP adresi atamaktır. Diğer yöntemler genellikle MITM Saldırısı önlemleri olarak bilinir.

Şekil 12

Aşağıdaki komutlar Windows için önbellek temizleme işleminden sonra tekrardan DHCPDISCOVER mesajı yayınlayarak yeni bir IPv4 adresi alınmasını sağlar. Sonrasında, manipüle edilmemiş doğru DNS sunucu adreslerinin alınmasına yardımcı olacaktır. (Şekil 12)

  • ipconfig /flushdns
  • ipconfig /release
  • ipconfig /renew
Şekil 13

Linux ve bazı dağıtım sürümleri için önbellek temizleme İşlemi.

Linux tabanlı işletim sistemlerinde genellikle DNS ile ilgili önbellekler silindikten sonra, sorumlu servislere restart atılması yeterli olacaktır.(Şekil 13)

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

DNS servislerinden olan Nscd için, sadece nscd’yi yeniden başlatmak yeterli olacaktır. Dnsmasq üzerinden çözümlenen domainler için IP adresine dönüşüm sağlayan servise de aralıklarla restart atmamız geçicide olsa bir önlem olarak getirebilir.

  • service nscd restart
  • service dnsmasq restart

Diğer DNS Saldırıları

DNS Tunneling : SSH, HTTP gibi trafiklerin, hedef üzerinde açılan sanal bir port üzerinden iletilmesidir. Ağ trafiğinin paket incelemesinde DNS dikkat çekmediği için yaygındır.

NXDomain Attack : DNS sağlayıcısına sürekli olarak olmayan kayıtlar göndererek gerçekleştirilen bir tür DDoS saldırısıdır.

DNS Flood Attack : Aşırı fazla sayıda istek göndererek gerçekleştirilen DDoS saldırısıdır.

DNS Amplification : Sahte IP adresleriyle gönderilen küçük boyuttaki istekler ile bant genişliğini tüketerek ağı yoran bir saldırı türüdür.

KAYNAKLAR:

1-https://en.wikipedia.org/wiki/Domain_Name_System
2-https://en.wikipedia.org/wiki/DNS_spoofing
3-https://en.wikipedia.org/wiki/Man-in-the-middle_attack
4-https://www.okta.com/identity-101/dns-poisoning/

--

--

Osman Kandemir

#CyberSecurity #InformationSecurity #Python — Computer Engineer