2. 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. 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. 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. 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. 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. 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. 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. 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.