DHCP Nedir? DHCP Spoofing ve Korunma Yöntemleri

m3t3hn
5 min readSep 13, 2023

1.0 DHCP Nedir?

Basitçe DHCP yani “Dynamic Host Configuration Protocol” bir network içerisinde bulunan her cihazın IP adresi, subnet maskesi, default gateway gibi ayarlarının otomatik olarak kendi havuzundan atanmasını sağlayan bir protokoldür. DHCP protokolü IP dağıtım gibi işleri otomatik olarak yaptığından hem zaman tasarrufu sağlanır hem de IP çakışması gibi durumların önüne geçilir.

DHCP sunucusunun IP ataması 4-way handshake ile sağlanır. Normal akışında ilerleyen DHCP server ve client arasındaki iletişim şu şekildedir:

DHCP 4-way handshake

DHCP discover: Ağa yeni dahil olan client’ın ilk gönderdiği paket DHCP discover paketidir ve bu paketi broadcast olarak tüm ağa gönderir. Broadcast olarak yayınlanan paketin source IP kısmında 0.0.0.0 destination kısmında ise 255.255.255.255 yazmaktadır. Bunun sebebi client üzerinde henüz bir IP tanımlaması yapılmamış olmasıdır. Yayınlanan paketin source MAC adresinde ise client’ın MAC adresi bulunur.

DHCP discover

DHCP offer: DHCP server’ın Broadcast olarak yayınlanmış DHCP discover paketini almasının ardından kendi havuzundan seçmiş olduğu daha önce kullanılmamış bir IP adresini, subnet maskesini ve default gateway bilgilerini gönderdiği paketin adıdır. Bu paketin içerisinde bulunan source IP adresi DHCP server’ının IP adresi olmasına karşın destination IP adresi 255.255.255.255 şeklindedir ve broadcast olarak yayınlanır.

DHCP offer

DHCP request: Client’ın sunucu tarafından yayınlanan offer paketini aldıktan sonra yapılandırmaları kabul ettiğini gösteren mesajdır. Yine broadcast olarak yayınlanır. Yayınlanan paketin source IP kısmı en başta olduğu gibi 0.0.0.0 şeklindedir çünkü henüz 4-way handshake tamamlanmadığından IP ataması gerçekleşmemiştir.

DHCP request

DHCP ack: DHCP server’dan IP atamasını kabul eden client’a gönderilir. Source IP kısmında DHCP server’ın IP adresi bulunur. Bu paket ile artık client üzerinde IP ataması yapılmış olur. Ayrıca dinamik olarak atanan IP adreslerinin belli bir kullanıma süresi bulunur. Bu süre dolduğunda son iki paket(DHCP request — DHCP ack) tekrar gönderilir.

DHCP ack

DHCP nedir anladıysak gelelim DHCP Spoofing’e…

2.0 DHCP Spoofing

Basitçe DHCP Spoofing bir saldırganın dahil olduğu ağa DHCP offer paketleri yayınlayarak kendini DHCP server gibi göstermeye çalışması denebilir.

IP ataması almak isteyen client DHCP discover paketi yayınlar ve DHCP offer paketlerini bekler. Saldırganın ağda yayınladığı DHCP offer paketini alan client DHCP request paketini yayınlar ve saldırgan bunun üzerine DHCP ack paketi yollayarak 4-way handshake’i tamamlamış olur. Böylece artık client’ın default gateway’inde saldırganın IP adresi olduğundan client’ın tüm trafiğini saldırganımız kendi üzerinden geçirir.

DHCP Spoofing

DHCP Spoofing’i daha iyi anlamak için test ortamında gözlemleyelim.

Test ortamında iki main component var. Bunlardan biri saldırgan diğeri ise client. Ben test için saldırgan olarak kali linux client olarak windows 10 makine kullanıyorum. Bu cihazların sanal ortamda iletişimleri DHCP enable edilmiş şekilde NatNetwork ile sağlanıyor(Zaten default böyle(-_-)).

NatNetwork

Senaryo ise şu şekilde:

0 — Saldırgan cihazımızda ettercap’in DHCP Spoofing özelliği ile bulunduğumuz network’e DHCP offer paketleri yollayarak ağı dinlemeye alacağız. Yapılandırmamız ise şu şekilde;

ettercap DHCP Spoofing yapılandırması

IP Pool kısmına içerisinde bulunduğumuz uzayı belirtiyoruz benim için 10.0.2.0/24. Daha sonra netmask ve DNS Server verdikten sonra OK’e tıklayarak atağı başlatıyoruz.

1 —Client’ımıza gücü verip açacağız ve IP almak için DHCP paketlerimizi yakalamasını bekleyeceğiz.

victim

2 — Cihazımı açtık ve ettercap arayüzünü kontrol ederek DHCP ack paketinin gönderildiğini görebiliriz.

fake ACK paketleri

3 — Victim client’ımız ile ipconfig komutunu çalıştırıp IP adresimizi sorguladığımızda default gateway olarak saldırgan cihazımızın IP adresinin olduğunu görüyoruz.

victim ip
attacker ip

4 — Client cihazımız ile instagram.com’a gittiğimizde tcpdump ile trafiğin üzerimizden geçtiğini gözlemleyebiliyoruz.

victim
tcpdump

Bu noktada DHCP Spoofing saldırımız başarıyla gerçekleşti. Gerisini saldırganımızın hayal gücüne bırakarak gelelim DHCP Spoofing’den nasıl korunabiliriz?

3.0 Korunma Yöntemleri

DHCP spoofing atağından korunmak için;

0— Port Security Aktif edilmeli

1 — DHCP Snooping Aktif edilmeli

3.1 Port Security

Port Security Layer 2'de MAC adresleri ile sağlanan bir güvenlik önlemidir. Burada switch’in portlarına kaç adet cihaz bağlanacağı ve bu cihazların hangi MAC adreslerine sahip olacağı belirlenir. Belirlenen cihazlar dışındaki tüm trafik eğer Port Security aktif edildiyse Layer 2 switch tarafından drop edilir.

3.2 DHCP Snooping

Bir diğer korunma yöntemi ise Layer 2 switch üzerinde DHCP Snooping özelliğini aktif hale getirmektir. DHCP Snooping basitçe switch’in tüm portlarını untrusted moda geçirir. Sadece DHCP server’ın kullanacağı port trusted hale getirilir ve diğer portlardan broadcast edilen tüm DHCP paketleri drop edilir.

DHCP Snooping aktif edilmiş örnek topoloji aşağıdaki gibidir;

--

--