Python ile Ağ Üzerinde İzleme Yapma

Merhaba. Bu yazıda Python ile basit bir şekilde ağ üzerinde nasıl izleme yapılırı anlatmaya çalışıcam. Yazıya giriş yapmadan önce bazı gereksinimler mevcut. Bunlardan birisi scapy

Teknik detaylara giriş yapmadan önce açıklamak gerekirse scapy, network tarafında özelleştirilmiş paketler üretmeye yarayan bir kütüphane. Kendisi açık kaynak kodlu bir yazılımdır. Scapy’nin diğerlerine göre farkı genişletilebilir oluşunda. Diğerleri demişken bunlardan benim bildikleri nmap ve hping var. İlla ki görmüşsünüzdür.

Ayrıca scapy interactive olarak ya da development kısmında da çalışabilir. Yani dilerseniz interactive shell ile çalışabilir ya da projenizde kütüphaneyi çağırabilirsiniz.

scapy ve scapy-http Kurulumu

Çok uzatmayalım. Ben işlemleri linux dağıtımı üzerinde gerçekleştirdim. Kurulum iki aşamadan oluşuyor. Dağıtımınızda pip olduğunu varsayarak şu işlemleri gerçekleştirelim: Bash

Kurulum bu kadar Burada scapy_http adında bir kütüphane kullandık. Kütüphane yazarı Luca Invernizzi isimli abimizdir.

scapy ile Ağ Trafiğinin İzlenmesi

Yazı iki kısımdan oluşacak. Bu bir adresi kim yani hangi IP ziyaret ediyor ona bakacağız.

Öncelikle scapy ve scapy_http kütüphanesini dahil edelim:

Şimdi gelen değerleri sniffleyeceğimiz bir metod yazalım. Bu methoddan dönen değerlere göre sniffing işlemi yapacağız.

Bu metodda TCP paketlerini ayıklayacağız. Ayıklama işlemi esnasında herhangi bir şekilde HTTP isteğine denk gelirsek ekrana yazdıracağız.

Çıktı olarak şöyle görüntüleriz:

images/posts/sniff_url.PNG

Buraya kadar olan kısım şu bağlantı üzerinden alıntılandı

scapy ile POST Verilerinin Alınması

Gelelim zurna mıdır nedir onun şey dediği yere. Ağ üzerinde herkesin merak ettiği bir diğer konu da internet sitelerine girişte parolaların alınıp alınamayacağıdır.

Yukarıdaki yapıya aşırı benzer bir şekilde POST değerlerini alabilirsiniz. Bu işlem SSL olan sistemlerde işe yaramıyor. Bunu belirtmem gerekir. Eğer SSL konusunda merakınız varsa tintinweb reposuna bakmalısınız.

Post edilen verileri saf haliyla görebilmemizi sağlayan kodun temeli yukarıdaki ile aynı. Geri kalan kısım biraz programlama becerisi istiyor olay o kadar yani.

Bu ikinci kodun sonrasında çalıştırdığımızda aşağıdaki gibi bir çıktı ile karşılaşacağız. Dikkat ettiyseniz formda bulunan inputların name’leri ve value’ları bu ekranda görüntülenebilmekte

Yukarıdaki kullanıcı adı ve parola saf haliyle karşımıza sunulmakta. Parola her ne kadar ben güvenliyim imajı verse de izlemek pek de zor olmuyor.

Bu işlemi bir üniversitenin Öğrenci Bilgi Sistemi üzerinde gerçekleştirdim. Umarım problem olmaz 🙂

images/posts/post_sniffing.png

Sanırım bir anlatımın daha sonuna geldik. Özetle: SSL kullanın