L2 seviyesinde paket işlemleri(arping)

By | June 6, 2009

pentest

 Network güvenlik testlerinde bazen bulunduğunuz ağın yapısını çıkarmak için ip katmanı yeterli olmaz ya da bu katmana doğrudan ulaşımınız olmayabilir. Bu durumda L2 seviyesinde çeşitli paketler göndererek ağın yapısını çıkarabiliriz. L2 seviyesinde gönderebileceğimiz paketler ARP’a dayalıdır. L2′deki protokoller kullanılarak basitce ağdaki  ip adreslerinin hangi mac adresine sahip olduğunu, bir mac adresinin ip adresi vs gibi bilgiler edinilebilir.

Layer2′de bu tip işlemleri yapmak için sık kullandığım bir araç var: arping, kısaca bu araç kullanılarak neler yapılabilir bir bakalım.

 

Arping  aracı  ne işe yarar?

Arping adından da anlaşılacağı gibi Layer 2 seviyesinde ping atmaya yarayan bir araçtır. Arping kullanarak Layer 2 seviyesinde bir makinenin açık olup olmadığı, ağdaki ip çakışmaları, bir ipnin ağda kullanılıp kullanılmadığı gibi bilgiler edinilebilir. Aynı zamanda arping kullanılarak gratious arp paketleri üretilebilir. Gratious paketlerle bir ip adresine ait mac adresi tüm yerel ağdaki sistemlerde  güncellenebilir.

Arping ARP Request ve Reply paketleri kullanır.

Not: arping’i diğer l3 ping araçlarından ayıran önemli özelliği ağ arabirimi üzerinde ip adresi olmasa dahi ping işlemlerini gerçekleştirebilir(yani L2 de çalışabilir).

Basit arping kullanımı
 arping’in en basit kullanımı ağdaki bir ip adresinin L2 seviyesinde MAC adresinin alınmasıdır. Bunu aşağıdaki komutla gerçekleyebiliriz.

 

root@home-labs:~# arping 192.168.2.1 -c 1
ARPING 192.168.2.1 from 192.168.2.23 eth0
Unicast reply from 192.168.2.1 [00:1A:2A:A7:22:5C]  1.860ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)

Yukardaki komuta ait tcpdump çıktısı;

root@home-labs:~# tcpdump -i eth1 -tttnn   arp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
000000 arp who-has 192.168.2.1 (ff:ff:ff:ff:ff:ff) tell 192.168.2.23
000918 arp reply 192.168.2.1 is-at 00:1a:2a:a7:22:5c

 

Kısaca yukardaki arp paketi brodcast paket olarak 192.168.2.1 ip adresinin kim olduğunu sorguladı. Bu ip adresini üzerinde barındıran sistem cevap olarak MAC adresini döndü.

Ağdaki IP Çakışmalarının Bulunması

Ağınızda IP çakışmasından şüpheleniyorsanız arping kullanarak emin olabilirsiniz.

arping -D IP_Adresi

root@home-labs:~# arping  -I eth1  -D 192.168.2.20

000000 arp who-has 192.168.2.20 (ff:ff:ff:ff:ff:ff) tell 0.0.0.0
000140 arp reply 192.168.2.20 is-at 00:0c:29:06:df:e4
001738 arp reply 192.168.2.20 is-at 00:1b:77:9b:cb:e2

Yukarıdaki çıktıda 192.168.2.20 ip adresi için yapılan sorguya iki farklı mac adresi cevap veriyor. Bu da ağda IP çakışmasının olduğu manasına gelir.

Güvenlik duvarı aktif edilmiş yerel sistemlerin arping ile bulunması

Eğitimlerimde Port Tarama kısmında katılımcılara sorduğum meşhur soru şudur: Bir ağda açık olduğunu bildiğiniz fakat güvenlik duvarı ile tamamen korunmuş bir sistemin  açık olduğunu teknik olarka nasıl ispatlarsınız?

Bu sorunun cevabı genellikle  ilgili makineye ulaşmaya çalışırız(ping vs) ya da port tarama yaparız oluyor. Fakat hostun üzerinde üzerinde bulunan güvenlik duvarı herhangi bir protokole izin vermediği için bu yöntemlerle hostun açık olup olmadığını anlaşılmaz.

Bunun tek yöntemi 2. katmanda(OSI katmanları) ilgili sistemin açık olup olmadığını öğrenmektir. L2(Ikinci katman) denildiğinde ise akla ilk gelen MAC adresleri ve ARP oluyor. L2 seviyesinde bir sistemin canlı olup olmadığını anlamak için arping komutu kullanılabilir.(Normal ping ve arp komutlarıyla da aynı iş yapılabilir)

#arping 192.168.2.1

komutu eğer hedef sistem canlı ise aşağıdaki gibi çıktı verecektir.

root@home-labs:~# arping 192.168.2.1
ARPING 192.168.2.1 from 192.168.2.23 eth0
Unicast reply from 192.168.2.1 [00:1A:2A:A7:22:5C]  1.343ms
^CSent 1 probes (1 broadcast(s))
Received 1 response(s)

Eğer hedef sistem kapalı ise aşağıdaki gibi çıktı verecektir.

root@home-labs:~# arping 192.168.2.111 -c1
ARPING 192.168.2.111 from 192.168.2.23 eth0
Sent 1 probes (1 broadcast(s))
Received 0 response(s)

Be Sociable, Share!

Related posts:

  1. OpenBSD Trunk ile donanim seviyesinde yuksek bulunurluk
  2. Thsark ile TCP/IP Paket Analizi
  3. Agda Kullanilmayan IP Adreslerini Bulma
  4. Scapy Calismalari -IV
  5. Paket analizi, protokol analizi kavramları

6 Comments

  • By Ali Kapucu, June 7, 2009 @ 12:24 am

    Çok iyi olmuş hocam ellerinize sağlık.

  • By Ayhan Arda, March 21, 2010 @ 3:39 am

    Bilgiler için teşekkürler , bir sorum olacaktı,
    anladığım kadarıyla arping için localde olmak mı gerekiyor , sonuçta ip konuşmuyor , layer 2 konuşuyor , ayrıca bu işlem için bir windows tool var mı , ya da linuxten scan edeceksek ve local ip değilde bir network ise ve çıktısını raporlayacak isek nasıl bir yol izlemeliyiz , teşekkürler..

  • By Huzeyfe ONAL, March 21, 2010 @ 2:50 pm

    Windows için bir araç bilmiyorum. Linux’da Layer 3 e çıktığınızda uzaktan Windows makinelere ait bu tip bilgileri nbtstat gibi bir komutla alabilirsiniz.

  • By Ayhan Arda, March 22, 2010 @ 12:48 am

    Cevabınız için çok teşekkürler Sayın Önal , Saygılarımla

  • By acemi, June 26, 2011 @ 11:01 am

    Debian Squeeze’de yer alan arping’de IP cakismalari icin -D degil, -d kullaniliyor.

Links to this Post

  1. Arping - Link Layer (L2) Pinging - IP Çakışmalarının Tespiti | Syslogs — June 25, 2011 @ 6:59 pm

RSS feed for comments on this post. TrackBack URI

Leave a comment