Ana sayfa » DHCP Protokolü Nedir? Nasıl Çalışır?
Protokoller

DHCP Protokolü Nedir? Nasıl Çalışır?

DHCP

DHCP günümüzde en çok kullanılan protokollerden birisidir ve network konusunda önemli bir yeri vardır. Peki bu kadar önemli bir yeri olan DHCP tam olarak nedir ve nasıl çalışır? İşte bu yazımızda detaylı bir şekilde DHCP protokolünün nasıl çalıştığından ve hangi amaçla kullanıldığından bahsedeceğiz. DHCP protokolünün çalışma yapısını anladıktan sonra, bu protokol üzerinden gerçekleştirilen saldırılara da yüzeysel olarak değineceğiz. İsterseniz lafı daha fazla uzatmadan bu protokolün hangi amaçla kullanıldığına bir göz atalım.

DHCP Nedir?

Öncelikle yukarıda da belirttiğim gibi DHCP, uygulama katmanında çalışan ve 67 port numaralı soket üzerinden hizmet veren bir protokoldür. Temel amacı, bağlı olduğu subnetteki istemcilere otomatik olarak ip adresi vermesidir. Mesela biz bir istemci olarak, herhangi bir networke bağlanmak istediğimiz zaman, o networke ait bir IP adresimiz edinmemiz gerekir. LAN içinde IP adresimiz olmadan hiç bir cihaz ile haberleşemeyiz. IP adresine ek olarak, o networkün subnet maskesi, default gateway adresi ve dns sunucusunun adresi gibi bilgilere de ihtiyacımız vardır.

DHCP’nin açılımı Dynamic Host Configuration Protocol‘dür

Eğer o networkde bir DHCP sunucusu yok ise, tüm bu bilgilerin istemciye bildirilmesi sistem yöneticisi veya bir başkası tarafından manuel olarak yapılır. Çok istemcili networklerde bu işlemin bir süre sonra ne kadar zahmetli olacağını tahmin edebilirsiniz. İşte bu zahmeti ortadan kaldırmak ve süreci dinamik hale getirmek için DHCP protokolü kullanılmaktadır.  O zaman özetleyecek olursak DHCP protokolünün görevlerini temel olarak şu şekilde sıralayabiliriz.

  • İstemcilere, otomatik olarak IP adresi vermek
  • İstemcilere, bağlanmak istedikleri networke ait olan subnet maskesi, default gateway adresi ve dns sunucusu gibi bilgileri bildirmek.

O zaman artık DHCP protokolünün amacının ne olduğununu ve ne için kullanıldığını biliyoruz. Peki DHCP protokolü tüm bu görevleri nasıl yerine getiriyor? İsterseniz şimdi de o kısıma bir değinelim.

DHCP Protokolü Nasıl Çalışır?

Bu protokolün 67 port numaralı soket üzerinden çalıştığını daha önceden belirtmiştim. Şimdi tüm bu bilgiler ışığında örnek bir senaryo üzerinden DHPC protokolünün nasıl çalıştığını inceleyelim. Senaryomuzda A networküne bağlanmak isteyen bir istemci ve bu networke bağlı bir de DHCP sunucusu olsun. Sırası ile süreç aşağıdaki gibi işler;

  1. İstemci broadcast olarak bir DHCP discover mesajı yollar. Bu mesajda source ip adresi: 0.0.0.0, destination ip adresi: 255.255.255.255 ve source mac adresi: istemcinin kendi mac adresi, destination mac adresi: ff:ff:ff:ff:ff:ff olarak girilidir. Aynı zamanda taşıma katmanı olarakta UDP protokolünü kullanır ve 68 port numaralı soket üzerinden bu mesajı yollar. En üst katman olan uygulama katmanın da ise DHCP protokolü kapsamında oluşuturulmuş, çeşitli bilgiler yer almaktadır. Bu mesajın amacı özetle; ben bu networkde yeniyim bana 1 adet ip adresi lazım, bunu nasıl edinebilirim? bilgisini yaymaktır.
  2. Broadcast olarak giden bu mesaj o ağdaki tüm cihazlara iletilir. Fakat sadece 1 cihaz tarafından işleme alınır, diğer tüm cihazlar bu paketi düşürür. Tahmin ettiğiniz üzere bu işleme alan cihaz DHCP sunucusudur. 67 port numaralı soketine gelen veriyi işleyen DHCP sunucusu, IP havuzundan boş bir IP adresi çeker ve bu IP’nin o networkte herhangi bir cihaza ait olmadığından emin olmak için bir ARP request paketi yollar. Bu şekilde çektiği IP adresinin gerçekten de boşta olduğunu anlar ve o networke broadcast olarak DHCP offer mesajı yollar. Bu mesajın amacı; bak yeni kişi, bende böyle bir IP adresi var almak ister misin? bilgisini yaymaktır.
  3. Broadcast olarak yayılan bu mesaj, ağdaki tüm cihazlara gider fakat sadece bir cihaz tarafından işleme alınır. O da tahmin ettiğiniz üzere ağa bağlanmak isteyen istemcimizdir. DHCP offer mesajını alan istemcimiz, bu paketten o networke ait olan subnet maskesi, default gateway adresi ve dns sunucusu gibi bilgileri çıkartır ve kaydeder. İşte tüm bu bilgiler DHCP offer mesajı ile istemciye bildirilmektedir. Özetle bu bilgileri alan istemci, yine broadcast olarak bir DHCP request paketi yollar. Bu paket bizim dilimizde şunu ifade eder; ben senin belirttiğin ip adresi önerini aldım ve beğendim, iznin olursa bu ip adresini kullanmak istiyorum.
  4. Broadcast olarak iletilen DHCP request paketi, sunucu tarafından alınır ve yine broadcast olarak bu mesaja karşılık mahiyetinde DHCP ACK mesajını yollar.
  5. En son olarak DHCP ACK mesajını alan istemci, ağa dahil olmuş olur.

Tüm bu süreci aşağıdaki görsel çok güzel bir şekilde özetlemektedir.

dhcp protokolü

Buraya kadar her şey gayet güzel isterseniz şimdi biraz daha detaya inerek, örnek bir pcap dosyası üzerinden DHCP trafiğini bir inceleyelim.

Wireshark ile DHCP Trafiğinin İncelenmesi

Yukarıdaki senaryoyu baz alarak, bir DHCP trafiğini wireshark programında incelemeye başlayalım. Öncelikli olarak inceleyeceğimiz kısım aşağıdaki görselde belirtilmiştir.

dhcp-wireshark

Yukarıdaki görselden de görüldüğü üzere 0.0.0.0 ip adresinden 255.255.255.255 olan ip adresine yani broadcast ip adresine bir paket yollanmış. Buradaki istemcinin ip adresinin 0.0.0.0 olmasının temel sebebi, daha henüz bir ip adresinin olmamasından kaynaklanmaktadır. Hedef ip adresinin ise hep 255.255.255.255 olmasının temel sebebi de, istemcinin o ağa ait bilgileri daha henüz kaydetmediğinden kaynaklanmaktadır.

DHCP trafiği broadcast ve unicast olarak farklılık gösterebilir

Lakin bu işlem değiştirilebilir. Bazen bazı paketlerde 255.255.255.255 ip adresi yerine o istemciye verilecek olan ip adresini görebilirisiniz. Böyle bir durumda şaşırmayın, çünkü DHCP sunucusu burada unicast olarak paketi iletmektedir. Hatta detaylı bir şekilde o paketi incelerseniz, destination mac adress kısmında istemcinin mac adresinin girilmiş olduğunu görebilirsiniz. Biz bu örnekte unicast değil broadcast olarak yayın yapılan bir senaryoyu inceliyoruz. Konumuza DHCP Discover mesajını inceleyerek devam edelim.

dhcp wireshark
DHCP Discover

Yukarıdaki görselde dikkat ettiyseniz bir çok kısım var. Bunların hepsi ayrı bir anlam ifade ediyor, fakat şimdilik bizim için önemli olan kısım kırmızı ile belirttiğim “Parameter Request List” kısmı. İşte bu kısımda o ağa ait bilgiler, DHCP sunucusundan istenmektedir. Daha sonra dikkat ettiyseniz, sunucu tarafından bir ARP sorgusu yapılmaktadır. Bunun amacını yazının önceki bölümlerinde söylemiştim. Tekrar edecek olursak amaç; verilecek ip adresinin hiç bir kimsede olmadığından emin olmak. Şimdi de isterseniz DHCP offer mesajını bir inceleyelim.

DHCP Offer

Burada da kırmızı ile belirttiğim alanlarda, o subnete ait subnet maskesi, router yani default gateway adresi, dns sunucusunun adresi ve o cliente teklif edilen IP adresini görmektesiniz. Daha sonra bu mesaja karşılık olarak bildiğiniz üzere DHCP request mesajı gönderilmektedir. Bu mesajın içeriği neredeyse DHCP discover mesajı ile aynıdır. DHCP Ack mesajı da DHCP offer mesajı ile neredeyse aynıdır. Bu sebepten dolayı bu son 2 paketi burada incelemeyeceğim.

DHCP Üzerinden Gerçekleştirilen Atak Türleri

Bu kısımda ise DHCP protokolü kullanılarak, bir saldırganın gerçekleştirebileceği saldırı türlerine yüzeysel olarak değineceğiz. DHCP sunucularına yapılan saldırılar genelde 2 alt başlıkta inclenebilir. Bunlar;

  • DHCP Starvation Attack
  • DHCP Spoofing Attack

DHCP protokolü üzerinden gerçekleştirilebilecek atak ve savunma vektörleri elbetteki bu kısımda bahsedilenlerden daha fazladır. Fakat buradaki amaç yüzeysel olarak bilgilendirme yapmaktır.

İlk saldırı türü olan DHCP Starvation atağının yapısına bakacak olursak, saldırının temeli, DHCP sunucusundaki IP adresi bloğunu sahte DHCP Request mesajları ile tüketmeye dayanmaktadır. Saldırgan yüzlerce, belki de binlerce DHCP Request mesajı yollayarak, sunucudaki IP bloklarını tüketebilir ve o networkteki diğer cihazların ip almasını engelleyerek sistemi belirli bir süre aksatabilir.

Devopsreactions GIF - Find & Share on GIPHY

Diğer bir saldırı türü olan DHCP spoofing atağında ise, saldırgan DHCP discovery paketi yollayan istemcilere, kendini bir DHCP sunucusu olarak tanıtarak sahte bir DHCP offer mesajı yollar. Bu sahte olan DHCP offer mesajında default gateway bölümüne, kendi IP adresini girer. Bu sahte DHCP offer mesajını alan istemciler ağa dahil olduktan sonra Internete saldırgan üzerinden çıkarlar. Bundan dolayı tüm trafik saldırganın üzerinden akmaktadır. Bu aşamadan sonra saldırgan istediği paketi inceleyecek gücü elde etmiş olur.

Yazar Hakkında

Hakan İlbiz

Ağ güvenliği başta olmak üzere çeşitli siber güvenlik konularında çalışmalar yapan ve bu yaptığı çalışmalardan elde ettiği tecrübeleri blog yazısı olarak takipçileri ile paylaşan Sakarya Üniversitesi öğrencisi, siber güvenlik meraklısı bir vatandaş.

Yorum Ekle

Yorum Yazmak İçin Tıkla