Proje İncelemesi: Yerel Ağ Üzerinde Çalışan Paket Koklayıcıların (Sniffer) Tespit Edilmesi

Paket yakalayıcılar (Sniffer), belirtilen ağ arayüzüne gelen ve giden trafiğin detaylı olarak analizini gerçekleştirmek, mevcut trafiği kaydetmek gibi amaçlarla kullanılan araçlardır. Böylece, ağ trafiğinde oluşan bir sorunun kaynağı tespit edilebilmektedir. Ancak bu durum saldırganlar tarafından kötüye kullanılmakta ve MITM adı verilen saldırılar gerçekleştirilmektedir. Bu yazıda, yerel ağı aktif veya pasif olarak dinleyen paket koklayıcıları tespit eden detect_sniffer adlı betik incelenecektir.

Ethernet kartlarının çalışmasında donanım seviyesinde aşağıda belirtilen 4 tip filtreleme etkindir.

  1. Unicast: Kendi adresine gelen paketler kabul edilir.
  2. Broadcast: Yayın (Broadcast) adresine gelen paketler kabul edilir.
  3. Multicast: Üye olunan multicast gruba ait paketler kabul edilir.
  4. Promiscious: Gelen paketin ne olduğuna bakılmaksızın her paket kabul edilir.

Yerel ağda iletişime geçmek isteyen iki uç birim arasında iletişim MAC adresi aracılığı ile gerçekleştirilir. İletişime geçmek isteyen uç birim hedef IP adresinin MAC adresini biliyorsa, bu MAC adresli uç birimle iletişimi başlatabilir. Eğer hedef uç birimin MAC adres bilgisine sahip değilse, bütün ağa (broadcast) “XXX IP adresli uç birimin MAC adresi nedir?” manasına gelen bir mesaj (ARP mesajı) yayınlar. İlgili uç birim de, bu mesaja, Aradığın IP adresi bana ait” diyerek ilgili mesaja MAC adresini dönerek, iletişimin başlamasını sağlar. Bu arada diğer uç birimler ilgili mesaj kendileri ile ilgili olmadığı için bu mesajı dikkate almazlar. Normal trafik akışı bu şekilde işlerken, Promiscious Mod’da çalışan uç birimler (ve paket yakalayıcılar) ilgili mesajı (“XXX IP adresli uç birimin MAC adresi nedir?”) işleme alırlar.

Yerel ağ üzerindeki paket koklayıcıların tespiti için kullanılabilecek olan detect_sniffer adlı betik, yerel ağ üzerindeki uç birimlere kendisinin sorgulandığı bozuk broadcast paketleri gönderilir. Normalde uç birim Promiscious Mod’da çalışmıyorsa, uç birim kendisine gelen bu paketleri önemsemeyecektir. Ancak, bir uç birim Promiscious Mod’da çalışıyor ise paketin hedefinin neresi olduğunu kontrol etmedeği için, gelen paketi kabul edecektir. Paketin içerisinde de kendisinin sorgulandığını gördüğü için cevaplayacaktır. Hazırlanan detect_sniffer adlı betik de, o uç birimde paket yakalayıcı çalışıp çalışmadığını bu şekilde yorumlayabilmektedir.

Betiğe ait kaynak kod Github sayfasında bulunmaktadır.

https://github.com/galkan/tools/tree/master/detect_sniffer

detecting-packet-sniffers-on-the-same-subnet-by-using-detect-sniffer-script-01

Ağ üzerindeki paket koklayıcıları tespit edecek olan bilgisayara bu betik indirilir.

wget https://raw.githubusercontent.com/galkan/tools/master/detect_sniffer/detect_sniffer.py
ls

detecting-packet-sniffers-on-the-same-subnet-by-using-detect-sniffer-script-02

İndirilen betik, IP adresi veya ağ adresi kabul etmektedir.

ls -la detect_sniffer.py
chmod +x detect_sniffer.py
./detect_sniffer.py -h

detecting-packet-sniffers-on-the-same-subnet-by-using-detect-sniffer-script-03

Mevcut durumda, betiğin çalıştırılacağı bilgisayarın IP adresinin 192.168.234.131 olduğu ve ağdaki varsayılan ağ geçidinin ise 192.168.234.2 IP adresli bilgisayar olduğu görülmektedir.

detecting-packet-sniffers-on-the-same-subnet-by-using-detect-sniffer-script-04

Bulunulan ağda 192.168.234.129 IP adresli bir bilgisayarda Cain&Abel aracı ile aktif olarak ARP zehirleme saldırısı yapılmaktadır.

detecting-packet-sniffers-on-the-same-subnet-by-using-detect-sniffer-script-05

Bunun yanında, 192.168.234.134 IP adresli bilgisayarda ise Wireshark açılarak ağ pasif olarak dinlenmektedir.

detecting-packet-sniffers-on-the-same-subnet-by-using-detect-sniffer-script-06

Betiğin çalıştırılacağı ağda 7 adet bilgisayarın olduğu, ancak 3 tane bilgisayarın (varsayılan ağ geçidinin, Cain&Abel ile ARP zehirlemesi yapan bilgisayarın ve Wireshark ile pasif olarak ağı dinleyen bilgisayarın) ağdaki paketleri dinlediği (Promiscious modda çalıştıkları) tespit edilmiştir. Paketleri dinleyen IP adreslerine betik ile sorgu gerçekleştirildiğinde “OK” sonucunun alındığı, paketleri dinlemeyen bilgisayarlar için ise “NOT” sonucunun alındığı görülmektedir.

arp-scan -l
./detect_sniffer.py -net 192.168.234.0/24
./detect_sniffer.py -ip 192.168.234.128
./detect_sniffer.py -ip 192.168.234.134

detecting-packet-sniffers-on-the-same-subnet-by-using-detect-sniffer-script-07

 

http://www.galkan.net/2013/12/yerel-agdaki-paket-koklayicilarin-kesfedilmesi.html

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.