Rehber Pcapy'e Kısa Bir Giriş

Katılım
16 Mayıs 2022
Mesajlar
324
Makaleler
3
Kaynak ===> Amazon

PYTHON İLE AĞ TRAFİĞİNİ ANALİZ ETME

Bu bölümde, sizi Python'da pcapy ve scapy modüllerini kullanarak ağ trafiğini analiz etmenin temelleriyle tanıştıracağız. Bu metodlar, ağ trafiğini analiz edebilen küçük python kabukları yazma olanağıyla size bir kâşif sunar. Böyle bir kaşif ya da tarayıcı; ya rastgele bir ağ arayüzünü koklayarak gerçek zamanlı trafiği ya da önceden yakalanmış pcap dosyalarını yükleyerek o anki trafiği araştıracak scapy kabukları yazabilir.

Aşağıdaki başlıklar bu bölümde ele alınmış olacak:

* pcapy paketiyle, ağ üzerinde paketler oluşturma ve bunları injektleme,

* scapy paketiyle ağ paketleri oluşturma, analiz etme, manipüle etme ve injektleme,

* scapy paketiyle bir ağda port tarama ve traceroute işlemi,

* scapy paketiyle bir pcap dosyasını okuma

TEKNİK GEREKSİNİMLER

Bu bölümdeki örnekler ve kaynak kodları, GitHub deposunda Chapter 5 adlı dosya içerisinde mevcuttur: GitHub - PacktPublishing/Mastering-Python-for-Networking-and-Security: Mastering Python for Networking and Security published by Packt

Yerel makinenize bir python dağıtımı kurmanız ve Wireshark gibi araçlarla paketler, paket yakalama ve ağları koklama gibi bazı temel bilgilere sahip olmanız gerekecektir. Ayrıca komutların yürütülmesi, scapy'nin kullanımı ve kuruluma olanak sağlamak için de, bir Unix dağıtımı kullanmanız önerilir.

PCAPY PAKETİYLE PAKETLER OLUŞTURMAK VE İNJEKTLEMEK

Bu bölümde, pcapy'nin temellerini ve paketlerdeki başlıkların nasıl yakalanıp okunacağını öğreneceğiz.

I. PCAPY'A GİRİŞ

Pcapy: libpcap paket yakalama kitaplığıyla bağlantı kuran bir python uzantı modülüdür. Pcapy, python kabuklarının ağdaki paketleri yakalamasına olanak sağlar. Pcapy yapılandırma ve paket işlemede, diğer bir dizi python sınıflarıyla birlikte kullanıldığında son derece etkilidir.

Kaynak kodu ve en son stabil ve geliştirme sürünlerini buradan indirebilirsiniz: GitHub - helpsystems/pcapy: Pcapy is a Python extension module that interfaces with the libpcap packet capture library.

Ubuntu linux dağıtımında python-pcapy paketini kurmak için, aşağıdaki komutları çalıştırın:

sudo apt-get update
sudo apt-get install python-pcapy

II. PCAPY İLE PAKETLERİ YAKALAMA

Belirli bir cihazdaki paketleri yakalamak için pcapy arayüzü içindeki open_live metodunu kullanabiliriz ve paket başına bit sayısını ve karma mod ve zaman aşımı gibi diğer parametreleri de belirtebiliriz.

Aşağıdaki örnekte, eth0 ağ arayüzünde yakalayacağımız paketleri sayacağız. Aşağıdaki kodu capturing_packets.py dosyasında bulabilirsiniz:

#!/usr/bin/python
import pcapy
devs = pcapy.findalldevs()
print(devs)
cap = pcapy.open_live("eth0", 65536 , 1 , 0)
count = 1
while count:
(header, payload) = cap.next()
print(count)
count = count + 1

III. PAKETLERDEN BAŞLIKLARI OKUMA

Aşağıdaki örnekte, belirli bir cihazdaki(eth0) MAC adresleri, IP başlıkları ve Protokol hakkında bilgi almak amacıyla başlık ve payload'ını elde ettiğimiz her paket için paketleri yakalıyoruz.

Aşağıdaki kodu reading_headers.py dosyasında bulabilirsiniz:

#!/usr/bin/python
import pcapy
from struct import *
cap = pcapy.open_live("eth0", 65536, 1, 0)
while 1:
(header,payload) = cap.next()
l2hdr = payload[:14]
l2data = unpack("!6s6sH", l2hdr)
srcmac = "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x" % (ord(l2hdr[0]), ord(l2hdr[1]), ord(l2hdr[2]), ord(l2hdr[3]), ord(l2hdr[4]), ord(l2hdr[5]))
dstmac = "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x" % (ord(l2hdr[6]), ord(l2hdr[7]), ord(l2hdr[8]), ord(l2hdr[9]), ord(l2hdr[10]), ord(l2hdr[11]))
print("Source MAC: ", srcmac, " Destination MAC: ", dstmac)
# get IP header from bytes 14 to 34 in payload
ipheader = unpack('!BBHHHBBH4s4s' , payload[14:34])
timetolive = ipheader[5]
protocol = ipheader[6]
print("Protocol ", str(protocol), " Time To Live: ", str(timetolive))
 
Son düzenleyen: Moderatör:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…