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.
[email protected]:~# 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ı;
[email protected]:~# 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
[email protected]:~# 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.
[email protected]:~# 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.
[email protected]:~# 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)
Çok iyi olmuş hocam ellerinize sağlık.
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..
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.
Cevabınız için çok teşekkürler Sayın Önal , Saygılarımla
Pingback: Arping - Link Layer (L2) Pinging - IP Çakışmalarının Tespiti | Syslogs
Debian Squeeze’de yer alan arping’de IP cakismalari icin -D degil, -d kullaniliyor.
teşekkürler hocam