3-DHCP Attack
Last updated
Last updated
DHCP, ağda bulunan her bir bilgisayarın IP adresi, alt ağ maskesi, varsayılan ağ geçidi ve DNS sunucuları gibi ağ bağlantısı ayarlarının otomatik olarak atamasını sağlar.
DHCP paket alışverişi ve yapısı yukarı şekilde görülmektedir.
Bir istemcinin ve bir DHCP sunucusunun bir IP adresi ve diğer ağ parametrelerini alması için yalnızca dört mesaj gerekir. DHCP sunucularını keşfetmek için, bir IP adresi alacak şekilde yapılandırılmış bir istemci otomatik olarak DHCPDISCOVER
ağa mesaj (255.255.255.255) ve veri bağlantısı (FF: FF: FF: FF: FF) yayın adresleri. IP üstbilgisi, istemci henüz bu parametreyi almadığından IP paketinin kaynak adres alanında 0.0.0.0 değerini belirtir. İstemcinin MAC adresi, veri bağlantı katmanındaki ileti kaynağı alanında belirtilir.
Aldıktan sonra DHCPDISCOVER
potansiyel bir istemciden gelen mesaj olan DHCP sunucusu, kullanılabilir bir IP adresi sunar. Sunucu tarafından istemciye gönderilen bu mesaj çağrılır DHCPOFFER
. Teklif süresi boyunca, bu adres DHCP sunucusu tarafından saklanır ve diğer istemcilere sunulamaz.
Müşterinin bir DHCPOFFER
bir DHCP sunucusundan mesaj. Daha sonra bir DHCPREQUEST
teklifi veren sunucunun IP adresini içeren yayın mesajı. Bu yayın mesajı, diğer DHCP sunucularına istemcinin sunuculardan birinden bir teklifi kabul ettiğini bildirir. Bu durumda, kalan DHCP sunucuları ayrılmış IP adreslerini serbest bırakır ve bu adresler daha sonra diğer istemcilere sunulabilir.
Sunucu bir DHCPREQUEST
ileti, istemci tarafından seçilen IP adresini belirtir DHCPACK
iletin ve istemciye geri gönderir.
Bu noktada, istemci gerekli tüm ağ parametrelerini almıştır ve etkileşim sürecinin tamamlandığı düşünülmektedir. Ancak bu dört temel mesaja ek olarak, birkaç önemli mesaj daha var:
DHCPNACK
bir IP adresi vermeyi reddettiğini bildirmek için sunucu tarafından istemciye gönderilen bir mesajdır; ve
DHCPRELEASE
istemcinin artık geçerli IP adresini kullanmak istemediğini ve sunucunun bu adresi ‘ döndürebileceğini bildirmek için istemci tarafından sunucuya gönderilen bir mesajdır kullanılabilir IP adresleri havuzu.
Temel mesajlarla yapılır. Özetlemek gerekirse DHCPOFFER
, DHCPACK
, ve DHCPNAK
gönderiliyor sadece sunucu tarafından istemciye.
Şimdi UDP datagramlarında kapsüllenmiş DHCP başlığına kısa bir göz atalım. Bu arada, taşıma katmanından bahsetmeyi unuttum: DHCP'de, sunucu ve istemci sırasıyla UDP bağlantı noktalarını 67 ve 68 kullanıyor.
En önemli başlık alanlarından geçelim
op Code
– mesaj türünü belirtir. İstemci sunucuya istekte bulunursa, bu alan 0x01 olarak ayarlanır; aksi takdirde 0x02'ye;
htype
Veri bağlantı katmanında çalışan – adres türü. Ethernet için bu alan 0x01 olarak ayarlanmıştır;
hlen
– bağlantı katmanı adresinin uzunluğunu bayt cinsinden belirtir (Ethernet için 0x06);
xid
– istekleri ve yanıtları eşleştirmek için kullanılan işlem tanımlayıcısı;
sec
–, istemcinin IP adresini almaya veya güncellemeye başladığı andan bu yana geçen süreyi görüntüler (saniye cinsinden);
CIADDR
– İstemcinin IP adresi. Bu alan, istemciye önceden bir IP adresi atanmışsa kullanılır ve kiralaması yenilenmelidir;
YIADDR
– sunucu bu alanı istemciye sunulan IP adresiyle doldurur;
SIADDR
– DHCP sunucusunun yanıt mesajları gönderdiğinde IP adresi (ör. DHCPOFFER ve DHCPACK) istemciye;
GIADDR
İstemcinin ve DHCP sunucusunun bulunduğu ağları ayıran ağ geçidi aracısının (yönlendirici) IP adresi;
CHADDR
– istemcinin MAC adresini belirtir. Bu alan özel bir önem taşıyor, hatırlayın; ve
Options
– ek parametreleri belirten değişken uzunluklu bir alan (örn. Alt ağ maskesi, DNS sunucularının adresleri, varsayılan ağ geçidi adresi, adres kiralama süresi vb.).
Umarım, şimdiye kadar her şey açıktır. Şimdi yukarıda belirtilenlere geri dönelim CHADDR
alan. Kaynak MAC adresinin CHADDR
DHCP üstbilgisinin alanı ve Ethernet üstbilgisindeki kaynak MAC adresi (istemci tarafından sunucuya gönderilen iletilerde) aynı olmalıdır.
Burada temel paket bilgisini aldık ve saldırı yapınca paket yapısına detayına inicez.
DHCP, aşağıda açıklanan birkaç yaygın saldırıdan muzdariptir:
HCP Starvation Attack: Bu tür saldırı, bir saldırganın yeni IP adresleri için DHCP sunucusunun işleyebileceğinden daha fazla istek göndermesi durumunda ortaya çıkar. Sonuç olarak, kötü amaçlı isteklerin neden olduğu aşırı yükleme nedeniyle meşru istemcilere IP adresleri atanmayacaktır.
DHCP Flood Attack: Bu tür bir saldırı meydana geldiğinde, sunucu o kadar çok istekle boğulur ki, meşru isteklere yanıt veremez veya zamanında yanıt veremez hale gelir (bu, uzun bekleme süreleri anlamına gelir). Bu tür saldırılar son derece yıkıcı olduğundan hizmet reddi saldırıları (DoS) olarak kabul edilir.
Sel saldırısı, sunucuya kaldırabileceğinden daha fazla istek göndererek onu bunaltmaya çalışan bir saldırıdır. Flood saldırısının amacı, bilgisayar kaynaklarını işgal etmek ve hedeflenen sistemin amaçlanan işlevini yerine getirememesi için bunları kullanmaktır. Taşma, ICMP paketleri, UDP paketleri ve TCP SYN taşmaları dahil olmak üzere birçok yöntem kullanılarak gerçekleştirilebilir.
DHCP açlık saldırısı, DHCP sunucusuna yapılan bir saldırıdır. Meşru DHCP istemcilerine hizmeti reddetmek için kullanılır. Saldırgan, DHCP sunucusu tarafından henüz tahsis edilmemiş IP adresleri havuzunda kendi IP adresinin tahsis edildiğini iddia ederek müşterinin isteğine verilen yanıtı taklit eder. Bu, meşru istemcinin hizmetin reddedilmesine ve ağ erişimi için geçerli bir rotaya sahip olmamasına neden olur. Saldırgan daha sonra sahte kaynak adreslerine sahip paketler gönderir, böylece bunlar meşru istemcilerden geliyormuş gibi görünür ve böylece zaten IP adresleri almış olan istemciler için hizmet reddine neden olur.
Bu tür saldırıları azaltmanın en iyi yolu, IP adresleri isteyen istemciler için bir tür kimlik doğrulaması yapmaktır; böylece yalnızca kimliği doğrulanmış kullanıcılar yeni kiralamalar için istek gönderebilir veya mevcut kiralamaları yenileyebilir.
Sahte DHCP sunucusu, ağ yöneticisinin izni olmadan bir ağa kurulan kötü amaçlı bir DHCP sunucusudur. Bu, bir saldırganın ağdaki IP adreslerini kullanmaya yetkili olmayan ana bilgisayarlara IP adresleri atamasına olanak tanır ve aynı zamanda saldırganların DNS zehirlenmesi veya ortadaki adam saldırıları gibi diğer kötü niyetli eylemleri gerçekleştirmesine de olanak tanır.
Sahte DHCP sunucularına karşı önlem almak için atabileceğiniz birkaç adım vardır:
Yetkisiz DHCP sunucuları için ağları izleyin.
Yönlendiricileri erişim kontrol listeleriyle (ACL'ler) yapılandırın ve bunlar üzerinden yalnızca güvenilir trafiğe izin verin.
Yöneticilerin yönlendiricinize doğrudan erişmesini istemiyorsanız dhcpwatch veya DNShaper gibi yazılımları kullanın
Bir DHCP Açlık saldırısı gerçekleştirmeden önce prensibini açıklamalıyım. Bildiğiniz gibi, DHCP sunucusu istemcilere atanan IP adreslerini ve MAC adreslerini içeren bir yazışma tablosu tutar; sonuç olarak, zaten bir istemciye atanmış bir IP adresi başka bir istemciye sunulamaz. DHCP Açlık saldırısı fikri, sahte göndererek DHCP sunucusunu ‘ egzoz ’ yapmaktır DHCPDISCOVER
rastgele kaynak MAC adreslerine sahip paketler. Sunucu bu paketlere yanıt verecek ve havuzdan kullanılabilir IP adreslerini ayıracaktır; sonuç olarak, bir süre meşru kullanıcılara IP adresleri atayamaz (saldırı etkin aşamada olduğu sürece).
İlk olarak, bir router'da DHCP havuzu oluşturalım. Bu SERVER, switch üzerinde veya harici bir cihazda olabilir; mantık tamamen aynıdır.
Kali Linux ip adresi ataması ve doğrulası.
Kali Linux ile router arasında sorunsuz iletişim kurulmaktadır.
Router ile Kali Linux arasında herhangi bir iletişim sorunu bulunmamaktadır.
Burada olşuturulan havuz hakkında bilgi almak için bakılabilir.
Burada ise bir istemcinin ip adresini otomatik almasını istedik ve aldı.
Görüldüğü gibi ipş olduk.
adresini almış ve bunu doğrulamış olduk.
Router'da ise alınan ip adreslerini görüntüledik.
Görüldüğü gibi, paket DORA olarak kodladığımız DHCP alışverişi yapıldı ve istemci IP adresini almış gibi görünüyor.
1 => İstemcinin yayınladığı mesaj türü: Broadcast mesajı.
2 => İstemcinin MAC adresi.
1 => DHCP adresinin kullandığı IPv4 türü ve protokol: IPv4 üzerinde çalışan UDP protokolü.
2 => Yayın yapılırken hedef adresi belirten alan.
3 => Broadcast yayın adresini temsil eder. Bu, ağdaki tüm cihazlara yönlendirilen bir yayındır.
Unutmayın ki diğer başlıklar CCIE seviyesinde olduğundan, daha spesifik bir açıklama veya detaylandırma gerekebilir.
1 => Yayın yaparken 68 numaralı portu kullandığını belirtiyor. 67 numaralı port ise hedefe giderken kullanılan portu temsil eder.
2 => UDP mesaj paketinin içeriğinin boyutu.
✓ Dynamic Host Configuration Protocol (Discover) Ana Başlık: Bu bölüm, DHCP (Dynamic Host Configuration Protocol) Discover mesajını temsil eder.
1. Message type: Boot Request (1)
Mesaj türü: Boot Request (1)
Bu alan, mesajın bir Boot Request (Önyükleme İsteği) olduğunu belirtir.
2. Hardware type: Ethernet (0x01)
Donanım türü: Ethernet (0x01)
Bu alan, donanım türünün Ethernet olduğunu gösterir.
3. Hardware address length: 6
Donanım adres uzunluğu: 6
Bu alan, donanım adresinin uzunluğunu belirtir (Ethernet adres uzunluğu).
4. Hops: 0
Hops: 0
Bu alan, DHCP mesajının ağdaki hop sayısını belirtir.
5. Transaction ID: 0x61d5a611
İşlem Kimliği: 0x61d5a611
Bu alan, DHCP işlem kimliğini gösterir.
6. Seconds elapsed: 0
Geçen saniyeler: 0
Bu alan, DHCP isteğinin üzerinden geçen süreyi belirtir.
7. ✓ Bootp flags: 0x0000 (Unicast)
Bootp bayrakları: 0x0000 (Unicast)
Bu alan, Bootp bayraklarını belirtir ve Broadcast flag'in Unicast olduğunu gösterir.
8. Client IP address: 0.0.0.0
İstemci IP adresi: 0.0.0.0
Bu alan, istemcinin IP adresini belirtir.
9. Your (client) IP address: 0.0.0.0
Senin (istemci) IP adresin: 0.0.0.0
Bu alan, istemcinin IP adresini belirtir.
10. Next server IP address: 0.0.0.0
Bir sonraki sunucu IP adresi: 0.0.0.0
Bu alan, bir sonraki sunucu IP adresini belirtir.
11. Relay agent IP address: 0.0.0.0
Bağlantı aracı IP adresi: 0.0.0.0
Bu alan, bağlantı aracı IP adresini belirtir.
12. Client MAC address: 00:50:79:66:68:00 (00:50:79:66:68:00)
İstemci MAC adresi: 00:50:79:66:68:00 (00:50:79:66:68:00)
Bu alan, istemcinin MAC adresini belirtir.
13. Client hardware address padding: 00000000000000000000
İstemci donanım adresi dolgusu: 00000000000000000000
Bu alan, istemci donanım adresinin dolgusunu içerir.
14. Server host name not given
Sunucu ana bilgisayar adı verilmemiştir
Bu alan, sunucu ana bilgisayar adının verilmediğini belirtir.
15. Boot file name not given
Önyükleme dosya adı verilmemiştir
Bu alan, önyükleme dosya adının verilmediğini belirtir.
16. Magic cookie: DHCP
Sihirli çerez: DHCP
Bu alan, DHCP sihirli çerezini belirtir.
17. ✓ Option: (53) DHCP Message Type (Discover)
Seçenek: (53) DHCP Mesaj Türü (Discover)
Bu alan, DHCP mesaj türünü belirtir ve bu örnekte Discover (Keşfet) olarak ayarlanmıştır.
18. Length: 1
Uzunluk: 1
Bu alan, DHCP Mesaj Türü seçeneğinin uzunluğunu belirtir.
19. DHCP: Discover (1)
DHCP: Discover (1)
Bu alan, DHCP mesajının Discover (Keşfet) türünde olduğunu belirtir.
20. ✓ Option: (12) Host Name
Seçenek: (12) Ana Bilgisayar Adı
Bu alan, istemcinin ana bilgisayar adını belirtir.
21. Length: 4
Uzunluk: 4
Bu alan, Ana Bilgisayar Adı seçeneğinin uzunluğunu belirtir.
22. Host Name: PC11
Ana Bilgisayar Adı: PC11
Bu alan, istemcinin ana bilgisayar adını gösterir.
23. ✓ Option: (61) Client identifier
Seçenek: (61) İstemci Kimliği
Bu alan, istemcinin kimliğini belirtir.
24. Length: 7
Uzunluk: 7
Bu alan, İstemci Kimliği seçeneğinin uzunluğunu belirtir.
25. Hardware type: Ethernet (0x01)
Donanım türü: Ethernet (0x01)
Bu alan, donanım türünün Ethernet olduğunu gösterir.
26. Client MAC address: 00:50:79:66:68:00 (00:50:79:66:68:00)
İstemci MAC adresi: 00:50:79:66:68:00 (00:50:79:66:68:00)
Bu alan, istemcinin MAC adresini belirtir.
27. ✓ Option: (255) End
Seçenek: (255) Son
Bu alan, seçeneklerin sona erdiğini belirtir.
28. Option End: 255
Seçenek Sonu: 255
Bu alan, seçeneklerin sona erdiğini belirtir.
29. Padding: ...
Dolgu: ...
Bu alan, mesajın sonunu belirlemek için kullanılan dolguyu temsil eder.
Bu açıklamalar, verilen DHCP Discover mesajının farklı alanlarını detaylı bir şekilde anlatmaktadır.
Offer paketinde, DHCP Sunucu bilgisini taşıdığı ve bu bilginin açıkça görülebildiği şekilde belirtiliyor. Bu bilgiler İstemci tarafına gitmektedir.
Diğer açıklamalarla benzer olduğu için bir sonraki paket yapısına geçelim.
Request paket yapısında, istemci, DHCP sunucusuna belirli IP konfigürasyonunu kabul ettiğini bildirir ve bu onayı sunarak istediği konfigürasyonu talep eder.
Bu paket yapısında, DHCP SERVER onay verdiğinde, İstemci tarafına kiralanacak IP adresi ve kira süresi gibi bilgiler de iletilmiştir.
Burada DHCP seçeneğini seçip 'Enter' tuşuna basıyoruz.
Burda birazdan dolu paket atıp dolacak yer.
Gönderilecek olan paket bilgileri verilmiş.
Daha sonra "X" tuşuna tıklayarak bu menüye geliyoruz.
"1" tuşuna basıp DOS saldırısını başlatıyoruz.
Görüldüğü gibi, sağ tarafta saate dikkat edersek, saniyeler içinde ne kadar istek atıldığını görebiliriz.
Bu ise Wireshark çıktısı ve birçok paket görülmektedir.
Paket sayıda verilmiştir.
Router çıktısı, birçok istek gönderip DHCP sunucusunu meşgul etmiş durumda.
Istemci, IP almaya çalışıyor ancak başarılı olamıyor. Bu durumun sebebi, yaptığımız DOS saldırısı ile DHCP hizmetini meşgul etmemiz ve hafızasını doldurmamızdır.
İşlemciyi meşgul etmemek için, ** olanlar ise doluluk oranını temsil eder.
DHCP açlığı, ağda bulunan istemcilerin mevcut tüm IP adreslerini hızlı bir şekilde tüketmesi ve yeni istemcilerin IP adresi alamamasına neden olan bir saldırıdır. Bu tür saldırılara karşı Cisco cihazlarda alınabilecek önlemler şunlardır:
DHCP snooping, DHCP mesajlarını izler ve yalnızca güvenilir kaynaklardan gelen mesajlara izin verir.
Yapılandırma:
Bu komutlar, belirli VLAN'larda DHCP snooping'i etkinleştirir ve güvenilir arayüzleri belirler.
Port security, bir arayüz üzerinden belirli sayıda cihazın bağlantı kurmasını sağlar ve bu sayıyı aşan cihazları engeller.
Yapılandırma:
Bu komutlar, belirli bir arayüze maksimum cihaz sayısı sınırı koyar ve bu sınırı aşan cihazları kısıtlar.
IP Source Guard, belirli bir arayüzde sadece belirli IP adreslerinden gelen trafiğe izin verir.
Yapılandırma:
Bu komutlar, belirli arayüzlerde IP Source Guard'ı etkinleştirir.
Dynamic ARP Inspection, ağdaki ARP mesajlarını doğrular ve yalnızca geçerli ARP trafiğine izin verir.
Yapılandırma:
Bu komutlar, belirli VLAN'larda DAI'yi etkinleştirir ve güvenilir arayüzleri belirler.
DHCP rate limiting, belirli bir arayüzde DHCP isteklerinin sayısını sınırlar.
Yapılandırma:
Bu komutlar, belirli bir arayüzde DHCP isteklerinin sayısını belirlenen bir oranla sınırlar.
DHCP binding database, IP adresleri ve MAC adresleri arasındaki ilişkiyi korur ve doğrular. Bu, sahte DHCP isteklerini engellemeye yardımcı olabilir.
Yapılandırma:
Bu komutlar, DHCP binding database'in yerini ve yazma gecikmesini ayarlar.
Güvenilir DHCP sunucularını belirleyerek, yalnızca bu sunucuların IP adresi dağıtmasına izin verebilirsiniz.
Yapılandırma:
Bu komut, güvenilir DHCP sunucusunu tanımlar.
Bu önlemler, DHCP açlığına karşı Cisco cihazlarınızda etkin bir koruma sağlamaya yardımcı olacaktır. Her bir yapılandırmanın ağınızın gereksinimlerine uygun olduğundan emin olun ve gerekli ayarlamaları yaparak güvenliği maksimize edin.