ARP Nedir? ARP Poisoning ile MITM ve Korunma Yöntemleri

m3t3hn
5 min readNov 9, 2023
https://www.ipxo.com/app/uploads/2022/01/How-ARP-works.jpg

1.0 ARP Nedir?

ARP yani “Address Resolution Protocol” bir LAN ortamında IP Adresi bilinen ama MAC adresi bilinmeyen cihazın MAC adresini öğrenmek için kullanılır. Cihazlar birbirleri arasında MAC adresi ile iletişim kurarlar . Örnek olarak diyelim ki “cüneyt-laptop” isimli cihazından bir paket yolluyoruz. Hedef cihazımız da “mücahit-pc” olsun. Bu paket hedef cihazın yani mücahit-pc’in MAC adresini bulmak istediğinde ağ katmanında ilk olarak ARP cache’inde veya ARP tablosunda MAC adresini arar. Eğer burada MAC adresi var ise kullanılır yok ise ARP protokolü çalışır.

windows arp tablosu

Yukarıda gördüğünüz ARP Tablosuna windows işletim sisteminde “arp -a” komutu ile erişebilirsiniz. Benim gibi arch linux kullanıyorsanız(i use arch btw(0–0)) “net-tools” paketini kurduktan sonra yine “arp -a” komutuyla ya da yok ben paket kurmam diyorsanız “ip neigh” komutuyla ARP tablonuza erişebilirsiniz.

linux arp tablosu

1 .1 Nasıl Çalışır?

ARP Tablosunda mücahit-pc’in MAC adresinin bulunmadığı senaryoya dönecek olursak;

Bu noktada cüneyt-laptop bir ARP Request paketi generate edip içinde bulunduğu LAN ortamına broadcast edecektir. Oluşturduğu paketin içeriğinde ise şunlar bulunacak:

Kaynak MAC adresi: 00–53–ff–ff–bb–bb
Kaynak IP adresi: 10.0.0.22

Hedef MAC adresi: 00–00–00–00–00–00
Hedef IP adresi: 10.0.4.44

Bu paket cüneyt-laptop’in içinde bulunduğu ortamdaki tüm cihazlara iletilecek. Hedef IP adresi kısmındaki cihaza iletildiğinde ise(ki bu mücahit-pc oluyor)cihaz bu paketi açıp hedef IP adresinde kendi IP adresini gördüğü için paketi alacak.

Wireshark ile bir ARP Request paketini incelediğimizde böyle gözüküyor:

https://www.practicalnetworking.net/series/arp/proxy-arp/

Paketin içeriğinde kendi IP adresini gören hedef cihazımız ise cevap olarak bir ARP Reply paketi generate edecektir.

Oluşturduğu paketin içeriğinde ise şunlar bulunacak:

Kaynak MAC adresi: 00–53–ff–ff–99–99
Kaynak IP adresi: 10.0.4.44

Hedef MAC adresi: 00–53–ff–ff–bb–bb
Hedef IP adresi: 10.0.0.22

Bu paket ise unicast olarak karşı tarafa iletilir. Böylece cüneyt-laptop ile mücahit-pc’in MAC adresi alışverişi sona erer.

Wireshark ile bir ARP Reply paketini incelediğimizde böyle gözüküyor:

https://www.practicalnetworking.net/series/arp/proxy-arp/

2.0 ARP Poisoning

ARP Poisoning senaryosunda ise saldırganımız içinde bulunduğu LAN ortamına sürekli olarak ARP Reply paketleri broadcast edecektir. Bu noktada aynı ortamdaki farklı bir cihaz ARP Request paketi yolladığı anda saldırgan tarafından broadcast edilen ARP Reply paketlerinden birini alacaktır. Böylece saldırganımız kendini gateway gibi gösterecek ve kurban cihazın tüm trafiğini üzerinden geçirebilecektir. ARP Poisoning saldırısı MITM yani Man in The Middle saldırıları kategorisi içerisinde yer almaktadır.

2.1 Örnek Uygulama

Gelelim bu atağı nasıl gerçekleştireceğimize. Bu senaryo için bir saldırgan (Kali) bir hedef cihaz’a(windows) ihtiyacımız var. Bu iki cihazı sanal makine olarak ayağa kaldırdıktan sonra yapmamız gereken ilk şey saldırgan cihazımızdan kendi MAC adresimize bakmak.

saldırgan kali ip ve mac adresi

Burada “ether” kısmından sonra gördüğümüz kısım saldırgan kalimizin MAC adresi. (08:00:27:cb:7e:f5) Amacımız bu MAC adresini hedef cihazın ARP tablosuna spoof edip kendimizi gateway gibi göstermek.

İlk olarak netdiscover aracı ile içinde bulunduğumuz aralığı ilgili interface’i belirterek tarıyoruz ve target olarak belirlediğimiz cihazı buluyoruz.

└─$ netdiscover -r 10.0.2.0/24 -i eth0

netdiscover çıktısı

Benim için 10.0.2.5 adresinde hedef cihazım var. Windows makinemizden IP adresini doğrulayalım.

hedef cihaz ip adresi

Edindiğimiz bilgiler ile tek yapmamız gereken ilgili araçlar ile atağı başlatmak. Ben bu senaryo için Ettercap’i grafik arayüzü ile kullanacağım.

Aracımız açıldığında zaten ilgili interface seçili şekilde geliyor. Burada olağan dışı bi senaryo olmadığı müddetçe bir şey değiştirmeye gerek yok.

Sağ üstte bulununan tik işaretine tıkladığımızda Ettercap bizim için içinde bulunduğumuz ortamdaki trafiği sniff ederek şimdiye kadar netdiscover ile öğrendiğimiz ve windows cihazımızdan doğruladığımız bilgileri getiriyor.

Sırada yapmamız gereken şey sniffing işlemi bittikten sonra host olarak eklenen cihazları target olarak eklemek olacak. Bunu sağ üstte bulunan 3 noktadan targets kısmına gittiğimizde yapabiliriz.

Target 1 kısmına hedef cihazımızı ve Target 2 kısmına Gateway’imizi ekledikten sonra ARP poisoning seçeneğini seçerek atağı başlatıyoruz.

ettercap targets

Atağı başlattıktan sonra Wireshark ile trafiği dinlemeye ve incelemeye başlayıp arkamıza yaslanabiliriz. ૮ ˶ᵔ ᵕ ᵔ˶ ა

Hedef cihazımızdan ARP tablomuza baktığımızda Gateway’imizin MAC adresinde saldırgan kali’nin MAC adresinin olduğunu görüyoruz.

(08:00:27:cb:7e:f5)

Wireshark ile incelediğimizde 10.0.2.5 adresinde bulunan hedef cihazımızın trafiğinin üzerimizden geçtiğini gözlemleyebiliyoruz.

10.0.2.5 http, tcp paketleri
10.0.2.5 dns sorgulari

Bu noktadan sonrası tamamen saldırganın hayal gücüne kalmış ki bizde öyle bırakalım ve geçelim bu saldırıdan nasıl korunacağımıza.

3.0 Korunma Yöntemleri

ARP Poisoning saldırısından korunmak için bir çok yöntem var ve bazılarını şu şekilde sıralayabiliriz:

3.0.1 — Dynamic ARP Inspection aktif hale getirilmeli

3.0.2 — ARP Security aktif hale getirilmeli

3.0.3— Vlan konfigurasyonları ile Network küçük parçalara ayrılarak izolasyon sağlanmalı.

3.0.4— Ağ içerisindeki trafik şifrelenmeli. Saldırgan saldırıyı gerçekleştirse bile trafik şifreli olduğundan hassas bilgilerin sızdırılması riski minimize edilmiş olur.

3.0.5 — IP/MAC eşleşmeleri port bazlı tutulmalı. Böylece hangi porttan hangi MAC adresinin çıkacağı belirlendiğinden spoofing saldırısının önüne geçilebilir.

--

--