Python Forensics - Dshell und Scapy

DShell

Dshellist ein Python-basiertes Toolkit für die forensische Netzwerkanalyse. Dieses Toolkit wurde vom US Army Research Laboratory entwickelt. Die Veröffentlichung dieses Open-Source-Toolkits erfolgte im Jahr 2014. Der Schwerpunkt dieses Toolkits liegt auf der einfachen Durchführung forensischer Untersuchungen.

Das Toolkit besteht aus einer großen Anzahl von Decodern, die in der folgenden Tabelle aufgeführt sind.

Sr.Nr. Name und Beschreibung des Decoders
1

dns

Dies wird verwendet, um DNS-bezogene Abfragen zu extrahieren

2

reservedips

Identifiziert die Lösungen für DNS-Probleme

3

large-flows

Auflistung der Netflows

4

rip-http

Es wird verwendet, um die Dateien aus dem HTTP-Verkehr zu extrahieren

5

Protocols

Wird zur Identifizierung von nicht standardmäßigen Protokollen verwendet

Das US Army Laboratory hat das Klon-Repository in GitHub unter folgendem Link gepflegt:

https://github.com/USArmyResearchLab/Dshell

Der Klon besteht aus einem Skript install-ubuntu.py () wird für die Installation dieses Toolkits verwendet.

Nach erfolgreicher Installation werden automatisch die ausführbaren Dateien und Abhängigkeiten erstellt, die später verwendet werden.

Die Abhängigkeiten sind wie folgt:

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

Dieses Toolkit kann für die PCAP-Dateien (Packet Capture) verwendet werden, die normalerweise während der Vorfälle oder während der Warnung aufgezeichnet werden. Diese pcap-Dateien werden entweder von libpcap auf der Linux-Plattform oder von WinPcap auf der Windows-Plattform erstellt.

Scapy

Scapy ist ein Python-basiertes Tool zur Analyse und Bearbeitung des Netzwerkverkehrs. Es folgt der Link zum Scapy-Toolkit -

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

Dieses Toolkit wird zur Analyse der Paketmanipulation verwendet. Es ist sehr gut in der Lage, Pakete einer großen Anzahl von Protokollen zu dekodieren und zu erfassen. Scapy unterscheidet sich vom Dshell-Toolkit dadurch, dass dem Prüfer eine detaillierte Beschreibung des Netzwerkverkehrs bereitgestellt wird. Diese Beschreibungen wurden in Echtzeit aufgezeichnet.

Scapy kann mithilfe von Tools von Drittanbietern oder Fingerabdrücken von Betriebssystemen geplottet werden.

Betrachten Sie das folgende Beispiel.

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"

Dieses Skript enthält eine detaillierte Beschreibung der Länderdetails im Netzwerkpaket, die miteinander kommunizieren.

Das obige Skript erzeugt die folgende Ausgabe.