Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | Scapy ile PCAP Dosyasını Parse Etme

Bu yazıda amacımız monitör mode ile yakalanmış pcap dosyasını analiz etmektir. Bu analiz sonucunda bir erişim noktasına ait

  • Kablosuz ağın ismi – SSID
  • Kablosuz ağın mac adres bilgisi
  • Kaç tane probe paketi
  • Kaç tane beacon paketi

gibi bilgileri çıkaracağız. Bu işlemi yaparken python ile entegre kullanabileceğimiz scapy modülünü tercih edeceğim.

İşlem için gerekli algoritma aşağıdaki gibidir :

  • Örnek teşkil etmesi açısından kablosuz ağ adaptörümüzü monitör moda alıp wireshark ile etrafı belli bir süre dinleyeceğiz. Elde Edilen trafiği kayıt edip ilk aşamayı tamamlayacağız.
  • Daha sonra Scapy ile elde ettiğimiz pcap dosyasını okuyup analiz adımlarını yerine getireceğiz.

 

  • Gerekli modüller tanımlanır
import os
from scapy.all import *
from termcolor import colored
conf.verb = 0

 

  • Değişkenler ve kullanacağımız listeler tanımlanır.
toplam, beacon, probereq, proberes = 0, 0, 0, 0
ssidlist   = []
bssidlist  = []
  • Beacon paketleri analiz edilir.
def Parser(pkt):
	global beacon, probereq, proberes, hidden, toplam
	toplam += 1
	if pkt.haslayer(Dot11Beacon):
		ssid = pkt.info
		mac  = pkt.addr2
		beacon += 1
		if mac not in bssidlist:
			bssidlist.append(mac)
			ssidlist.append(ssid)

  • Probe istekleri analiz edilir.
	
	elif pkt.haslayer(Dot11ProbeReq):
		ssid = pkt.info
		mac  = pkt.addr2
		probereq += 1
		if mac not in bssidlist:
			bssidlist.append(mac)
			ssidlist.append(ssid)

  • Probe cevapları analiz edilir.
	elif pkt.haslayer(Dot11ProbeResp):
		ssid = pkt.info
		mac  = pkt.addr2
		proberes += 1
		if mac not in bssidlist:
			bssidlist.append(mac)
			ssidlist.append(ssid)	

Kodun başlaması ile beraber sniff() fonksiyonu yardımı ile pcap dosyası okunur ve her paket Parser fonksiyonuna gönderilir.
Bu aşamadan sonra fonksiyonun sonuçları ekrana basılır.

if __name__ == "__main__":
	os.system("reset")
	sniff(offline="/home/rootx/Dosyalar/scapy_e.pcap", prn=Parser)
	print colored("Toplam paket sayisi : ", "green"), toplam
	print colored("Beacon      : ", "green"), beacon
	print colored("ProbeR      : ", "green"), probereq
	print colored("ProbeResp   : ", "green"), proberes
	print colored("\nSSIDList    : ", "green"), ssidlist
	print colored("\nBSSIDList   : ", "green"), bssidlist

 

İşlemin çıktısı aşağıdaki gibidir :

parser

Uygulamanın kaynak koduna aşağıdaki linkten erişebilirsiniz :