18 Aralık 2016

Kali Linux - Bölüm 11: Ağ Teşhis Araçları

Unix ve türevi işletim sistemlerinde (hemen hemen aynı adlarıyla Windows karşılıkları da bulunan) ağ bağlantıları ile ilgili teşhis ihtiyaçlarımızda yardımcı olan araçlar hazır bulunur. Bunlara örnek olarak aşağıdakiler verilebilir:

  • “ping” komutu: “ping” komutu güvenlikçilerin ve network uzmanlarının iyi bildiği gibi aslında ICMP echo request paketleri gönderen bunların yanıtlarını alan bir uygulama. Geri dönüş istatistiklerini de gösterdiği için genellikle sistemciler tarafından bağlantı hızında bir problem olup olmadığına ilişkin basit bir test amacıyla kullanılır. Doğaldır ki ICMP paketlerini göndermeye çalıştığımız sunucuya doğru veya yanıt olarak gönderilen paketin yolunun üzerinde ICMP paketleri ile ilgili bir filtreleme varsa bu komut pekte işimize yaramayacaktır. Bu gibi durumlarda eğer firewall kuralları izin veriyorsa TCP veya hatta UDP ping denen yöntemleri kullanabilir ve izin verilen protokol ve portları kullanarak erişilebilirliği test edebiliriz. Bunun için “hping3” gibi paket üretme araçları kullanılabilir ve ağ dinleme araçları ile yanıtlar izlenebilir.
  • “traceroute” komutu: En basit anlatımıyla “traceroute” komutu hedef parametre olarak verilen sunucu ile aramızdaki route’ların tespiti ve dolayısıyla gönderdiğimiz özel paketin geçtiği rotayı tespit edebilmek için kullanılır. “traceroute” IP başlığının TTL (Time-to-live) özelliğini kullanır, ancak rota üzerindeki router’ların herbirinden geriye dönen ICMP TTL exceeded in transit paketlerinin filtrelenmeden bize ulaşmasına dayanır. “traceroute” TTL exceeded yanıtlarını alamadığında belli bir zaman aşım süresini bekleyerek konsola “*” işaretini yazar. “traceroute” aracının nasıl çalıştığını anlamanın en iyi yolu iletilen ve dönen paketlerin bir paket dinleme aracı ile izlenmesidir. “traceroute” komutu bir IP başlık alanını kullandığından aslında IP başlığının altında ICMP, TCP, UDP veya başka bir paketin kullanılması filtrelenmemeleri koşuluyla pek farketmez. Bu nedenle Unix ve türevi sunucularda öntanımlı olarak UDP paketleri kullanılırken Windows’daki benzer araç olan “tracert” ICMP paketlerini kullanır. Önemli olan TTL alanlarının 1’den başlayarak sırayla artırılması ve TTL exceeded paketlerinin sırasıyla önümüzdeki router’lardan geri dönmesini sağlamaktır. “traceroute” aracının istediğiniz protokol ve port ile istek üretme imkanı da vardır.
  • “netstat” komutu: “netstat” komutu bilgisayarınızın yaptığı ve bilgisayarınıza yapılan bağlantıları, bilgisayarınızda çalışan ağ servislerini, bağlantıların statülerini, ağ servislerinizin arkasındaki uygulamaları görüntüleyebilen, sunucunuzla ilgili ağ problemlerinde teşhis amacıyla kullanabileceğiniz ilk araçlardan birisidir. Tahmin edilebileceği gibi bu araç aynı zamanda ağ üzerinden yapılan saldırılarda önde gelen canlı analiz forensic araçlarından birisidir.
  • “telnet” komutu: Telnet bir TCP protokolüdür, bu nedenle ve bir komut satırı aracı olduğu için “telnet” herhangi bir TCP servisine ağ erişimi olup olmadığını kontrol etmek için kullanılabilir. Tabi bunun için “netcat” gibi başka araçlar da var, ancak “telnet”i herhangi bir işletim sistemi üzerinde bulabilirsiniz.


“ping” komutu ve yanıtları hakkında özet bilgi.


“traceroute” komutu ile belli bir noktaya kadar ICMP TTL exceeded paketleri alınabildiği için rotayı tespit edebildik. Daha sonrası için “traceroute” uygulaması TTL değerini artırarak paket göndermeye devam ediyor, ancak son noktanın hangi hop noktası olduğunu anlayabilmesi mümkün değil.


“netstat” komutunu “-a” opsiyonuyla hem dinleyen hem de bağlantı kuran soketleri gösterecek biçimde kullandık. Normal kullanımda dinleyen soketler listelenmiyor. “-n” opsiyonu “netstat”ın IP adresleri için sunucu adları ve portlar için de sembolik isimler kullanmamasını ve numerik olarak bu değerlerin listelenmesini sağlıyor. “-p” opsiyonu ise soketlerin arkasındaki uygulama isimlerinin listelenmesini sağlıyor.


“telnet” uygulaması ile www.btrisk.com sunucusunun TCP 80 portu ile bir oturum oluşturduk, bu oturum üzerinden bir HEAD HTTP isteği gönderdikten sonra (HTTP protokolü gereği) 2 defa Enter tuşuna bastık ve sunucudan yanıt alabildik. Bu işlem ile www.btrisk.com sunucusu üzerinden TCP 80 portuna ulaşabildiğimizi, sunucu üzerinde bu portta dinleyen bir TCP servisi olduğunu ve bu servisin bir HTTP servisi olduğunu anlamış olduk.

<<Önceki Bölüm                                                                                               Sonraki Bölüm>>