Bu yazıda bazı network test araçlarını inceleyeceğiz.

ipconfig

Bir komut satırı açarak ipconfig komutunu girdiğimizde öğreneceğimiz  en temel şey IP adresimiz, Subnet Maskemiz ve Gateway’imizdir. Eğer /all parametresini de girersek daha fazla bilgiyi örneğin MAC adresimizi görebiliriz. Tüm network kartlarını gösterdiği için liste biraz uzun olabilir. ipconfig /release adresi serbest bırakır. ipconfig /renew tekrar yeni bir adres sorar. ipconfig /flushdns dns’i temizler.

ping

Ping komutu ile network’e bağlı bir cihazdan gelen geri dönüşü görebilmemize olanak sağlar. Örneğin Gateway adresimizi pingleyerek router’ın bize verdiği cevabı görebiliriz. Ping ICMP protokolünü kullanır. Bir echo isteği yapar. Paketler geri gelir ve echo cevap vermiş olur. Bir sorun veya engel varsa cevap alamazsınız. Ping ile ilgili bir diğer özellik de domain isimlerine de ping atabilmenizdir. Domain adları bir DNS aracılığıyla çözülerek IP adresleri bulunur. Örneğin google.com adresine ping attığımızda yalnızca kendi router’ımızı değil internet üzerinde tüm yol üzerindeki bütün routerları test etmiş oluyoruz.

traceroute/tracert

Traceroute tıpkı ping gibi hareket eder fakat daha detaylıdır. İnternet üzerinde her bir router’ın bize bir cevap döndürmesini sağlar. Böylece yol üzerindeki bütün routerları görebiliriz. Örneğin birden fazla router’ın olduğu bir networkte hangisinin iletişimi blokladığını böylece görebiliriz.

nslookup

DNS bilgisini görmemizi sağlar. Domain adını ve denk gelen IP adresini bu şekilde görebiliriz. Örneğin example.com yazdığımızda DNS server’ının IP adresini ve adını ardından cevabın adını ve IP adresini veriyor. DNS’in içerde ve dışarda olduğu veya sürekli değiştiği durumlarda DNS sunucusunu doğrulamak önemli olabilir.

netstat

netstat, TCP için ağ bağlantılarını, routing tablolarını, network interface sayısını ve ağ protokolü istatistiklerini görüntüleyen bir komut satırı ağ yardımcı programıdır. (utility)

Netstat Windows bir çık portları gösterir. “-a” ile tüm portları görebiliriz. 

Bir servisi çalıştırdığımızda ekstra LISTENING bağlantıların açıldığını görürüz.

nmap :

ip scanner

arp

ARP protokolü ile IP adresinden MAC adresi çözümlemesi yapılır. Cihazlar arp protokolüne Layer-2 iletişimi kurmak için ihtiyaç duyarlar. Örneğin bir router paketi frame’den çıkarttığında ethernet frame’ini tekrar oluşturabilmek için bu sefer hedef cihazın MAC adresine ihtiyaç duyar. MAC adresini kendi ARP tablosundan alır. Bu nedenle daha önceden ARP protokolü ile diğer cihazların IP-MAC eşleşmelerini öğrenmiş olmalıdır.  

Windows içerisinde işletim sistemimizin tuttuğu arp tablosunu arp -a ile görebiliriz.

Komut satırını yönetici olarak çalıştırıp arp -d * komutu ile arp tablosunu silebiliriz. Böyle bir durumda bilgisayarımız arp mesajları yollayarak tablosunu tekrar dolduracaktır.

telnet

Telnet aracı kullanılarak IP adresi ile bağlantı yapılabilir. Telnet’in protokol olarak kullanılması pek tavsiye edilmez. Aradaki bağlantı şifrelenmediğinden güvenliksizdir. Network trafiği kaydedilirse içerik cleartext olarak görülebilir.

Windows’da telnet aracı default da açık değildir kullanmak için aktif edilmesi gerekir. Port un açık olup olmadığını test etmekte kullanılabilir.

Telnet üzerinde çeşitli denemeler yapabiliriz. Örneğin telnet google.com 80 komutunu girdiğimizde komut satırırnın bir tepki vermediğini görüyoruz. Bu durumda geçerli bir bağlantı sağlandığını anlayabiliriz. Bunun anlamı karşıdaki sunucu (Google) ve aradaki bütün cihazlar TCP 80 bağlantısına izin veriyor demektir. GET yazdığımızda http kullanarak bir cevap almamız da mümkün olur. 

Benzer şekilde kapalı bir porta ping attığımızda direk red alıyoruz fakat olmayan rastgele bir cihaza telnet attığımızda bekletiyor.

putty

SSH kullanmamıza izin verir. SSH encripted bir protokol olduğundan güvenlidir. Putty SSH ile iletişim kurmamızı sağlar. Putty’nin daha gelişmiş bir versiyonu olarak SecureCRT kullanılabilir. Tablar halinde görüntüleyebilme, history management, automated, scripting gibi ekstra özellikler sağlamaktadır.

Putty’i benzer şekilde cihazlara konsoldan bağlandığımızda da kullanabiliriz. Konsol portu seçilerek buradan da RS232 ile bağlantı kurulabilir.

Wireshark İle Örnek Bir ARP Frame’i

Wireshark’ı ile örneğin aşağıdaki gibi bir ARP frame’ini inceliyor olalım.
Wireshark’ın Ethernet II başlığının içerisinde hedef ve kaynak MAC adreslerini bizim için listelediğini görüyoruz.

Kaynak MAC adresininin ilk üç hanesini kendi veritabanından isme çevirmiş böylece vendor’u görebiliyoruz. Hedef MAC adresi Broadcast MAC adresi olan ff:ff:ff:ff:ff:ff‘e gitmiş.

Wireshark yine mesajı basit İngilizce şekline çeviriyor. Bu mesajda Shuttle’ın Broadcast ile 10.255.1.234 ile 10.255.1.234’ün MAC adresini sorduğunu görüyoruz.

İstersek aşağıdaki gibi ARP mesajının içeriğini de görebiliriz. ARP, “x.x.x.x kimdir?” sorusunun cevabını bulmak için anahtarlanmış (switched) bir ağ üzerinde Ethernet protokolünü kullanıyor. ARP’nin OSI modeline tam olarak uymadığını görüyoruz.

28 byte’lık ARP paketi 60 byte’lık ethernet frame’inin içerisine yerleştiğini görüyoruz. 32 byte’lık geri kalan kısım 14 byte’ını ethernet başlığı, 18’i byte’ını ethernet padding oluşturuyor. Ethernet frame’de CRC checksum ve preamble kısımlarını ise göremiyoruz.

Şimdi tarayıcıyı açıp bir websitesine girerek wireshark’ın kaydettiği trafiği inceleyelim. The Very Last Page Of Internet gibi basit bir websitesine gireceğiz olacak çünkü çok fazla veri gelmesini istemiyoruz . DNS sorgusunu görebilmek için öncelikli olarak bilgisayarımızdaki DNS önbelleğini temizleyelim.

Bilgisayarlar DNS response’larını önbelleğe alırlar. (cache) DNS server’a example.com’un IP adresini sorduğunda aldığı cevabı belirli bir süre saklar.

Yukarıdaki komutla önbelleği temizledikten sonra Wireshark ile kaydetmeye başlıyoruz. Ardından aşağıdaki adresi tarayıcımıza kopyalıyoruz.

Daha sonra tarama işlemini durdurup ne olduğuna bakıyoruz. Büyüteçe tıklayarak veya CTRL F ile string araması yaptıralım. page’i aratalım.

Aşağıda DNS sorgusunda gördüğümüz üzere 10.255.1.132’den DNS Server 10.255.1.252’ye sorgu gitmiş. Bu bilgisayarda tanımlanmış olan DNS server.

A diyerek Address record’u soruyor. Cevaba baktığımızda iki tane cevap olduğunu görüyoruz. www ile başlayan adres için cevap bir Canonical Name yani CNAME bir alias ve theverylastpageontheinternet.com’a işaret ediyor. www yok.

Bu şekilde istediğimiz gibi alias oluşturabiliriz. woo.example.com, 123.example.com gibi. Bunların hepsini CNAME kaydı olarak oluşturup example.com’a gönderebilirim. DNS Server aynı zamanda theverylastpageontheinternet.com’un IP adresini de göndererek zaman kazandırıyor. Bu bir A kaydı ve 81.17.241.142’ye gidiyor. Böylece bilgisayarımız IP adresini öğrenmiş oldu.

Şimdi dikkat edersek bir sonraki şey TCP SYN mesajı. Senkronizasyon mesajı. TCP Three-Way Handshake’in ilk mesajı. Sıra no 408 de devam ediyor.

Sıra no [402-407] de bilgisayarın başka şeyler yaptığını görüyoruz. Başka DNS mesajları yolluyor IPv6 kayıtlarını kontrol ediyor vs. Bu kısımlar önemli değil.

Bu noktada filtreleme yaparak paketleri daha net görmek isteyebiliriz. Sağ tıklayıp Conversation Filter > IPv4 dersek yalnızca iki IP adresi arasındaki iletişimi göreceğiz. Client : 10.255.1.132 , Server: 81.17.241.142

  • 401 TCP Session Three Way Handshake İlk Mesajı (Client’dan Server’a)
  • 408 TCP Session Three Way Handshake İkinci Mesajı (Server’dan Client’a)
  • 409 TCP Session Three Way Handshake Üçüncü Mesajı (Client’dan Server’a)
  • 410 HTTP GET Mesajı (Client’dan Server’a)
  • 414 TCP SEQ 1 – 312 ack ile yolluyorum. (Client’dan Server’a)
  • 415 HTTP OK Mesajı (Server’dan Client’a)
  • 416 TCP FIN (Server’dan Client’a)

80 -> 63820 , 63820 -> 80 numaralarını görüyoruz. Bunlar tahmin edebileceğimiz gibi hangi session’un nereye gideceğinin bilgisayar ve server tarafından ayırt edilmesini sağlayan port numaraları. TCP 65536 adet port numarasına sahip.

netstat bilgisayarımıza gelen ve giden bütün bağlantıları gösteriyor. Hostname’lerin isimlerini çözdüğünden. Yüklenmesi biraz zaman alıyor.

Açtığımız tab 63820 TCP kaynak portunu atamış. Server ise TCP 80 portunu kullanıyor. Başka port numaraları kullanarak başka uygulamalar da çalıştırması olası.

Ping’in Wireshark İle Analizi

Ping, cihazlar arasındaki bağlantıyı test eder. Aynı zamanda bir cihaza bağlanmadan önceki aşama denilebilir. Ping paketlerinin cihazın güvenlik duvarı tarafından engellenmiş olma ihtimali olsa da genellikle izin verilir çünkü cihazın çevrimiçi olup olmadığını görmek için etkili bir araçtır.

Aşağıdaki gibi 4.2.2.2 adresine ping atıp Wireshark ile paketleri kaydedelim.

Wireshark kaydına icmp filter koyduğumuzda ping paketlerini daha rahat görebilir hale geliyoruz. Ping ICMP protokolü kullanıyor. TCP veya UDP kullanmıyor. Yani bir cihazı pingliyor olmamız TCP veya UDP protokollerin çalıştığı anlamına gelmez. Yalnızca cihazın online olup olmadığı ile ilgili bilgi verir.

Bir paket içerisine alfabeyi koyuyor ve birkaç kere loop yaptırıyor. Paketin 32 byte ı bu oluyor. ve bunu öteki tarafa yolluyor. Bir şeyi pinglediğinizde aslında alfabeyi yolluyorum diyebilirsiniz. ve o da size aslında alfabeyi yolluyor.

İki mesaj tipi Echo ve echo reply ping i oluşturuyor.