ARP Protokolü ve ARP Spoofing




ARP (Address Resolution Protocol):   Adres Çözümleme Protokolü anlamına gelir. ARP söz konusu olduğunda kelime anlamından çok bu protokol network trafiğinde hangi anlarda karşımıza çıkar bunu düşünmeliyiz. ARP protokolünü ilk gördüğümüz an bilgisayara ilk Static IP’yi atadığımız andır. Örneğin; Biz var olan bir IP adresini başka bir bilgisayara atamaya çalıştığımızda işletim sistemi bize hata verir. “Bu IP kullanılıyor” diyerek IP adresini bilgisayara atama işlemini gerçekleştiremez. İşte işletim sisteminin arka planda referans aldığı bilgi ARP Broadcast mesajında gizlidir.


Nasıl oluyor da işletim sistemi arka planda bu ARP broadcast mesajını kullanarak  IP adreslerinin “unique (benzersiz)” olmasını sağlıyor? Bu istek/mesaj yada paketin içeriği FFFF.FFFF.FFFF olduğu için broadcast bir mesajlaşma türüdür. Aşağıdaki görselde mesajın anlamı; bilgisayarların hepsine tek tek “sen 192.168.1.100 müsün?” diye tüm uç cihazları sormaktır. Bu mesajı alan bilgisayarlar hedef IP’yi okuduklarında “benim IP’m 192.168.1.100 değil, bu mesaj bana ait değil deyip drop edecekler” ancak network’te 192.168.1.100’lü bir IP adresi var ise bu mesaja cevap verecek “işletim sisteminde böyle bir IP var” şeklinde bir cevap dönecektir. Mesajın sırrı işte bu cevapta gizli. Bu ARP Broadcast mesajı eşine nadir rastlanan mesaj türlerinden biridir.


ARP Anları;

1- IP ataması yaptığımız an

2- MAC adresi öğrenme anı

3- Bu APIPA adresi var mı? dediği anda devreye girer. - DHCP server’dan IP talep ettiğim anda – Verilen DHCP adresinin unique olmasını sağlamak içindir.


ARP Paket İçeriği



PC0 bilgisayarına static olarak IP atamaya çalıştığımızda direkt olarak ARP mesajının PC0 bilgisayarının üzerind, diğer bilgisayarlara gönderilmeye hazır olarak beklediğini görmekteyiz;



Paket gönderildiğinde diğer bilgisayarlar 192.168.1.100 IP adresine sahip olmadığı için paketi drop ettiklerini aşağıdaki resimde görebiliriz;




Diğer bir ARP kullanımı anı ise bilgisayarların birbirleriyle haberleşmek için birbirlerinin MAC adresini öğrendikleri andır. Örneğin PC0,  PC1 ile ICMP protokolü kullanarak haberleşmek istesin. Paketi gönderecek olan bilgisayar (PC0), hedef bilgisayarın (PC1) MAC adresini bilmiyorsa, öğrenmek için ARP Brodcast paketi gönderir ve MAC adresini öğrendikten sonra ICMP paketini hedefe gönderir. Ancak hedef MAC adresi zaten biliniyorsa PC0 bilgisayarının ARP tablosunda hedef MAC adresi kayıtlı olduğu için ARP paketi göndermeden direkt olarak ICMP mesajını PC1’e ulaştırır.


PC0,  PC1’e ARP mesajı gönderdiğinde, PC1 paketin içeriğine bakar ve bu paketin PC0 bilgisayarından geldiğini anlayarak. Paketin içerisindeki Source (Kaynak) IP adresine kendi adresini ve Destination (Hedef) IP adresine de PC0 bilgisayarının adresini yazarak ona tekrar geri iletir. Bunun sonucunda PC0 ARP cevabını aldığında PC1’in MAC adresini öğrenmiş olacaktır ve ARP tablosuna kayıt edecektir.

 

Bunu şöyle düşünebiliriz; “PC0, PC1’e ulaşmak için ilk önce kendi telefon numarasını vererek PC1’e telefon numarasını sordu. PC1’de PC0’ın telefon numarasını adres defterine kaydederek, PC0’a kendi telefon numarasını verdi. Birbirlerinin telefon numarasını adres defterine kaydettiler ve istedikleri zaman birbirlerini arayıp haberleşebilecekler.”



 PC0 ARP Mesajı (PING için MAC öğrenme isteği)        

        


PC1 ARP Reply Mesajı (MAC Adresi Cevabı)






              PC0 ARP Tablosu              





PC1 ARP Tablosu






PC0’ın,  PC1’e ping atma süreci. (Birbirlerinin MAC adreslerini bildikleri için Request-Reply mesajları gönderilir.)






ARP Spoofing, bir diğer adıyla ARP Zehirlenmesi. Saldırganlar ağ içerisinde IP ve MAC Adresleri eşleştirmelerine müdahale ederek ağ cihazı ile bilgisayarların arasına girmesi olarak tanımlanabilir. Eğer saldırgan ağ içerisinde hedefin ve ağ cihazının ARP tablolarını zehirleyebilirse, yani kendi MAC Adresini hedef bilgisayarın tablosuna “Ağ Cihazı MAC Adresi” olarak, ağ cihazı ARP tablosuna ise “Hedef Bilgisayar MAC Adresi” olarak yazdırırsa, araya girmiş olur. Bu durumda hedef bilgisayar ile ağ cihazı arasında bulunana trafik saldırganın üzerinden geçer. Saldırgan bu trafiği dinleyebilir ve değiştirebilir. Genel mantık bu yöndedir.

Aşağıdaki resim ARP Spoofing olayı simüle edilmiştir;






Bu işlemin gerçekleştirilmesi adına bilgi verilecek olursa;

IP Forwarding, Test için kullanacağımız işletim sistemi Kali Linux, yapısı gereği ağdaki başka bilgisayarlar için gelen paketleri düşürür. Bu durumda MITM testi gerçekleştirilemez, burada devreye IP Forwarding (IP Yönlendirme) girer. IP Yönlendirme ağ içerisinde IP paketlerinin bir ağ ara yüzünden bir diğerine yönlendirme işlemidir ve MITM testi için öncelikle IP Yönlendirmenin aktif edilmesi gerekmektedir. Linux çekirdeği IP Yönlendirme işlemi için tüm altyapı içerisinde barındırır ve aktif hale getirilmesi çok kolaydır.

IP Yönlendirme durumunu öğrenebilmek için terminalde aşağıdaki komut çalıştırılır.
“cat /proc/sys/net/ipv4/ip_forward”

*Eğer dönen değer 0 (sıfır) ise IP Yönlendirme aktif değildir. Aktif etmek için aşağıdaki komutu çalıştırılır.

“echo 1 > /proc/sys/net/ipv4/ip_forward”





ARP Spoofing İşlemi

Öncelikle hedefin ARP tablosunu zehirlenecektir, bunun için aşağıdaki komut kullanılmıştır.
“arpspoof -i [AĞ ARAYÜZÜ] -t [HEDEF IP] [AĞ CİHAZI IP]”

Yukarıdaki komut çalıştırıldığında hedef bilgisayarın ARP tablosunu zehirlemek için sürekli olarak ARP REPLY paketleri hedefe gönderilmektedir. Aşağıda ilgili ekran görüntüsü bulunmaktadır. Ardından ağ cihazının ARP tablosunu zehirlenir, bunun için aşağıdaki komut kullanılır.

“arpspoof -i [AĞ ARAYÜZÜ] -t [AĞ CİHAZI IP] [HEDEF IP]”

Yukarıdaki komut çalıştırıldığında ağ cihazının ARP tablosunu zehirlemek için sürekli olarak ARP REPLY paketleri hedefe gönderilmektedir. ARP REPLY paketleri gönderilerek ağ cihazı ile hedef bilgisayar arasına girilir. Yani, hedef bilgisayarın ARP tablosu zehirlenmiştir. Artık saldırgan hedef bilgisayar ile ağ cihazının arasına girmiş bulunmaktadır. Hedef ile ağ cihazı arasındaki trafik saldırganın üzerinden geçmektedir ve saldırgan bu akan trafiği dinleyebilir, değiştirebilir.

Urlsnarf İle Trafiği Dinleme
Kali Linux üzerinde kurulum ile beraber gelen “urlsnarf” aracı ile hedefin istekte bulunduğu trafik dinlenebilir. Bunun için kullanılacak olan komut aşağıda bulunmaktadır.

“urlsnarf –i [AĞ ARAYÜZÜ]”









Yorumlar