dns amplification zafiyeti

9
DNS Amplification

Upload: mehmet-varol

Post on 14-Apr-2017

235 views

Category:

Internet


0 download

TRANSCRIPT

DNS Amplification

2

Nedir? DNS Amplification recursion adını verdiğimiz metot ile, saldırganın yolladığı küçük request’lere daha büyük cevap beklenir.

Dışarıya açık olan servislerin arka planda DNS gibi önemli servisi kullanması ve zorunlu olaraktan DNS’imizin de internete açık olduğu durumlar olur. Bu tür durumlarda DNS üzerindeki yapılandırma çok dikkatli yapılmalıdır. Böyle durumlarda DNS üzerinde yapılan hatalardan bir tanesi DNS recursion devre dışı bırakılmamasıdır. DNS recursion sorgusunu açık bırakarak kötü niyetli kişilerin yapımızda bulunan DNS'lerimizi kullanmasına izin vermiş oluyoruz. Profesyonel bir saldırı tekniği olan DNS Amplification saldırıları, yapımızda bulunan DNS serverı kullanarak yönlendirilmiş hedefe bizim üzerinden paketler göndererek saldırı düzenler (1 DNS paketi 50 byte ise bu pakete dönecek cevap 10x olacaktır yani 500byte). Böylece saldırgan bizim bantgenişliğimizi kullanmakla kalmaz aynı zamanda kendi gizliliğini de sağlamış olur, saldırgan bizmişsiniz gibi algı oluşturur.

Ayrıca saldırı sırasında tek bilgisayar yerine onlarca hatta yüzlerce bilgisayarın kullanılması daha etkili olur. Bu işlem için de Zombi yazılımlar devreye girecektir. Örnek olarak saldırganın xx.xx.x.x adlı bir yere saldırı yapacağını varsayalım. Saldırgan birden fazla bilgisayar ile, daha fazla etkili olmak maksadıyla, geneli şirket bilgisayarları, üniversite bilgisayarları olmak üzere hedef bilgisayar seçtikten sonra DNS DDOS Spy’ları bu bilgisayarlara enjekte edecektir.

3

Reflective DNS Amplification DDoS Saldırısı

Şekil.1

1.Adım: Saldırgan recursion sorguya açık DNS sunucu bulur ve daha önce hazırladığı özel alan adını sorgulatır.Bu isteğin boyutu 3 Mbps tutmaktadır.

2. Adım: Ara DNS sunucu kendi ön belleğinde olmayan bu isteği gidip ana DNS sunucuya sorar(3Mbps)

3.Adım: Ana DNS sunucu test.com.tr için gerekli cevabı döner (300Mbps)

4. Adım: Ara DNS sunucu cevabı ön belleğine alarak bir kopyasını Saldırgana döner. Burada amaç ARA DNS sunucunun dönen 300Mbps’lik cevabı ön belleğe almasını sağlamaktır.

4

5.Adım: Test kullanıcısı (saldırganın kontrolünde) test.com.tr alan adını sorgular ve cevabın cachede olup olmadığını anlamaya çalışır.

6.Adım: Ara DNS sunucu ön belleğinden 300Mbps cevap döner.

7.Adım: Saldırgan Kurban’ın IP adresinden geliyormuş gibi sahte DNS paketleri gönderir. DNS paketleri test.com.tr’i sorgulamaktadır (ortalama 100.000 dns q/s).

8.Adım: Ara DNS sunucu gelen her paket için 300Mbps’lik cevabı Kurban sistemlere dönmeye çalışacaktır. Böylece Ara DNS sunucu 100.000X300 Mbps trafik üreterek saldırganın kendi trafiğinin 10 katı kadar çoğaltarak Kurban’a saldırıyor gözükecektir.

DNS Recursion Sorgusu

DNS serverımızın recursion sorgusuna açık olup olmadığını 2 şekilde öğrenebiliriz.

1. DNS serverımızın ayarlarını kontrol edebiliriz. 2. DNS serverımıza DNS recursion sorgusu yapabiliriz.

1.si için Microsoft DNS Server kullanıyorsak DNS serverımızda sağ tıklayıp Advanced altında Server optionsta "Disable recursion" işaretli olup olmadığını kontrol ediyorsunuz. işaretli değilse bu Dns serverımızın recursion sorgularına açık ve saldırı amaçlı kullanılabilir olduğunu gösterir

5

Şekil.2

Eğer Bind DNS server kullanıyorsak global options içerisinde aşağıda belirtilen satırların olup olmadığını kontrol edebilirsiniz.

options {

allow-query-cache { none; };

recursion no;

};

2. Seçenek için ise bu sorguyu yapan siteler aracılığıyla DNS'inizi kontrol ettirebilir yada kendimiz bunu yapabiliriz.

6

Bu işlemi gerçekleştirmek için Nmap aracını kullancağız.

Aşağıdaki satırı terminal ekranına yazarak sorgumuzu gerçekleştirebiliriz.

nmap -sU -p 53 -sV -P0 --script "dns-recursion" 195.175.39.39 (DNS'inizin IP adresi)

Şekli.3

Yukarıda görüldüğü gibi DNS serverımızın DNS recursion sorgusu açık olduğunu görebiliriz.

DNS recursion sorgusunu kapatmak için terminale aşağıdaki komutu yazabiliriz.

dnscmd <ServerName> /Config /NoRecursion {1|0}

7

DNS Sunucusu Bulmak Bir IP aralığındaki tüm public DNS sunucularını bulmak Nmap aracını kullanabiliriz.

Aşağıdaki kod satırını terminale yazdığımızda bir IP aralığındaki DNS sunucuları bize gösterecektir.

nmap -PN -n -sU -p 53 –script=dns-recursion.nse xx.xx.x.x/28

Şekil.4

8

DNS Amplification Saldırı Aracı “Saddam” Saddam DNS Amplification saldırısı için geliştirilmiş bir araçtır.

Python dosyasını indirmek için aşağıdaki linke tıklayabiliriz.

https://github.com/OffensivePython/Saddam

Kurulum için “Pinject.py” dosyasını python kütüphanesine eklemeliyiz.

https://github.com/OffensivePython/Pinject

Dosyayı kütüphaneye ekledikten sonra terminale yazıp çalıştırabiliriz.

Şekil.5

9

Bu script ile neler yapabiliriz;

1. DNS Amplification (Alan Adı Sistemi) 2. NTP Amplification (Ağ Zaman Protokolü) 3. SNMP Amplification (Ağ Yönetimi Protokolü) 4. SSDP Amplification (Hizmet Algılama Protokolü)

Saldırı yapabiliriz.

Saldırıdan Korunmak Bu tip bir saldırıdan klasik yöntemleri çalıştırarak korunamayız. Saldırının amacı tamamen hedef sistemin trafik akış kapasitesini doldurmak olduğu için DNS sunucuları daha güçlü ve trafik akışı yüksek yerlerde host etmek veya çok daha zor ama %99 korunma sağlayacak DNS anycast altyapısını kullanmak olmalıdır.