Yerel Aglarda Snifferlarin Tespiti

Yerel aglarda sniffer amacli çalıştırılan hostları bulmak için çeşitli araçlar kullanılabilir hatta python, ruby gibi programlama dillerine hakimseniz bir kac satirda

bu isi yapabilirsiniz(Python ve Scapy kullanarak tek satirda halledilebilir).

İşin biraz detayına inip Sniffer calistiran makinelerin nasil belirlenebilir sorusunu cevaplayalım.

Agda sniffer olarak çalışan makinelerin bulunması demek ağda promiscious modda çalışan ethernet kartlarına sahip sistemlerin bulunması demektir.

Kısaca hatırlayacak olursak ethernet kartları üzerlerinde gömülü olarak gelen ve MAC adresi olarak adlandırılan 6 bytelik adrese sahiptir ve yerel ağlardaki tüm işlemler

için bu adresler kullanılır. İki host arasında IP üzerinden haberleşmek istiyorlarsa öncelikle birbirlerinin MAC adreslerini bilmeleri/öğrenmeleri gerekir.

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

filtreleme etkindir.

Unicast-> Kendi adresine gelen paketler
Broadcast -> Broadcast adresine gelen paketler
Multicast-> uye olunan multicast gruba ait paketler.
Promiscious -> Gelen paketin ne olduğuna bakmadan kabul edildiği durum.

bizim burada test edeceğimiz mod Promiscious -yani gelen paketin kontrol edilmeden kabul edildiği durum-.

Promiscious modda çalışan(Snifferlar) sistemler nasıl belirlenir?

Suphelenilen makineye kendisinin sorgulandığı bozuk broadcast paketleri gönderilir.
Normalde host promiscious modda değilse bu paketleri önemsemeyecektir.
Ama eğer promiscious modda ise paketin destination’i neresi kontrol etmeden paketi kabul edecektir ve paketin içerisinde de kendisinin sorgulandığını gördüğü için
cevaplayacaktır. Böylece biz de o hostta sniffer çalışı çalışmadığını anlamış olacağız.

Basit mantık ama etkili..

Örnek araç olarak scapy kullanalım.

>>> is_promisc(“100.100.100.100”, fake_bcast=’ff:ff:00:00:00:00′)
True

Bu arada ağdaki trafiği izlersek aşağıdaki çıktıyı alırız.

# tcpdump -i eth0 -e -tttnn

000000 00:11:25:44:e8:95 > ff:ff:00:00:00:00, ethertype ARP (0x0806), length 42: arp

who-has 100.100.100.100 tell 100.100.100.101

003151 00:04:61:47:da:74 > 00:11:25:44:e8:95, ethertype ARP (0x0806), length 60: arp

reply 100.100.100.100 is-at 00:04:61:47:da:74

bu ne manaya geliyor?

iki paket var:

ilki bizim bulunduğumuz host broadcastten bozma bir adrese 100.100.100.100 adresinin kim olduğunu sorgulayan ARP paketi gönderiyor.

Diğer pakette ağda promiscious modda çalışan ve 100.100.100.100 adresine sahip adres. Kefal gibi atlayıp bozuk adreslenmiş paketimize cevap vermeye çalışıyor ve yakalanıyor.

tüm ağı teker teker değilde tek seferde sniffer için taramak istersek Scapy’nin

promiscping fonksiyonunu deneyebilirsiniz.

>>> a=promiscping(“100.100.100.0/24”, timeout=2, fake_bcast=’ff:ff:ff:ff:ff:fe’)
Begin emission:
*Finished to send 256 packets.

Received 1 packets, got 1 answers, remaining 255 packets
00:04:61:47:da:74 100.100.100.100

***Guncelleme
Windows ortaminda daha rahat, kullanisli bir urun ariyorsaniz http://www.securityfriday.com/ adresinden Promiscan aracini(free ve commercial surumleri var)indirip kullanabilirsiniz.

This entry was posted in Network Security. Bookmark the permalink.

1 Response to Yerel Aglarda Snifferlarin Tespiti

  1. alper says:

    çok güzel yazi teşekkürler

Leave a Reply

Your email address will not be published. Required fields are marked *

4 × one =