Python Forensics - Dshell ve Scapy

DShell

DshellPython tabanlı bir ağ adli analiz araç setidir. Bu araç seti, ABD Ordusu Araştırma Laboratuvarı tarafından geliştirilmiştir. Bu açık kaynak araç setinin piyasaya sürülmesi 2014 yılındaydı. Bu araç setinin ana odak noktası, adli soruşturmaları kolaylıkla yapmaktır.

Araç seti, aşağıdaki tabloda listelenen çok sayıda kod çözücüden oluşur.

Sr.No. Kod Çözücü Adı ve Açıklaması
1

dns

Bu, DNS ile ilgili sorguları çıkarmak için kullanılır

2

reservedips

DNS sorunlarının çözümlerini tanımlar

3

large-flows

Ağ akışlarının listesi

4

rip-http

Dosyaları HTTP trafiğinden çıkarmak için kullanılır.

5

Protocols

Standart olmayan protokollerin tanımlanması için kullanılır

ABD Ordusu Laboratuvarı, aşağıdaki bağlantıda GitHub'daki klon deposunu korumuştur -

https://github.com/USArmyResearchLab/Dshell

Klon bir komut dosyasından oluşur install-ubuntu.py () bu araç setinin yüklenmesi için kullanılır.

Kurulum başarılı olduktan sonra, daha sonra kullanılacak yürütülebilir dosyaları ve bağımlılıkları otomatik olarak oluşturacaktır.

Bağımlılıklar aşağıdaki gibidir -

dependencies = { 
   "Crypto": "crypto", 
   "dpkt": "dpkt", 
   "IPy": "ipy", 
   "pcap": "pypcap" 
}

Bu araç seti, genellikle olaylar sırasında veya uyarı sırasında kaydedilen pcap (paket yakalama) dosyalarına karşı kullanılabilir. Bu pcap dosyaları Linux platformunda libpcap veya Windows platformunda WinPcap tarafından oluşturulur.

Scapy

Scapy, ağ trafiğini analiz etmek ve işlemek için kullanılan Python tabanlı bir araçtır. Scapy araç setinin bağlantısı aşağıdadır -

http://www.secdev.org/projects/scapy/

Bu araç seti, paket manipülasyonunu analiz etmek için kullanılır. Çok sayıda protokolün paketlerini çözme ve bunları yakalama konusunda çok yeteneklidir. Scapy, araştırmacıya ağ trafiği hakkında ayrıntılı bir açıklama sağlayarak Dshell araç setinden farklıdır. Bu açıklamalar gerçek zamanlı olarak kaydedilmiştir.

Scapy, üçüncü taraf araçlarını veya işletim sistemi parmak izini kullanarak çizim yapma yeteneğine sahiptir.

Aşağıdaki örneği düşünün.

import scapy, GeoIP #Imports scapy and GeoIP toolkit 
from scapy import * 
geoIp = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE) #locates the Geo IP address 
def locatePackage(pkg): 
src = pkg.getlayer(IP).src #gets source IP address 
dst = pkg.getlayer(IP).dst #gets destination IP address 
srcCountry = geoIp.country_code_by_addr(src) #gets Country details of source 
dstCountry = geoIp.country_code_by_addr(dst) #gets country details of destination 
print src+"("+srcCountry+") >> "+dst+"("+dstCountry+")\n"

Bu komut dosyası, birbirleriyle iletişim halindeki ağ paketindeki ülke ayrıntılarının ayrıntılı açıklamasını verir.

Yukarıdaki komut dosyası aşağıdaki çıktıyı üretecektir.