Python Forensics - Dshell e Scapy

DShell

Dshellè un toolkit di analisi forense di rete basato su Python. Questo toolkit è stato sviluppato dallo US Army Research Laboratory. Il rilascio di questo toolkit open source è stato nel 2014. L'obiettivo principale di questo toolkit è quello di effettuare facilmente le indagini forensi.

Il toolkit è costituito da un gran numero di decoder elencati nella tabella seguente.

Sr.No. Nome e descrizione del decodificatore
1

dns

Viene utilizzato per estrarre le query relative al DNS

2

reservedips

Identifica le soluzioni per i problemi DNS

3

large-flows

Elenco dei netflow

4

rip-http

Viene utilizzato per estrarre i file dal traffico HTTP

5

Protocols

Utilizzato per l'identificazione di protocolli non standard

L'US Army Laboratory ha mantenuto il repository di cloni in GitHub nel seguente link:

https://github.com/USArmyResearchLab/Dshell

Il clone è costituito da uno script install-ubuntu.py () utilizzato per l'installazione di questo toolkit.

Una volta completata l'installazione, creerà automaticamente gli eseguibili e le dipendenze che verranno utilizzate in seguito.

Le dipendenze sono le seguenti:

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

Questo toolkit può essere utilizzato contro i file pcap (packet capture), che di solito vengono registrati durante gli incidenti o durante l'avviso. Questi file pcap vengono creati da libpcap su piattaforma Linux o WinPcap su piattaforma Windows.

Scapy

Scapy è uno strumento basato su Python utilizzato per analizzare e manipolare il traffico di rete. Di seguito è riportato il link per Scapy toolkit -

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

Questo toolkit viene utilizzato per analizzare la manipolazione dei pacchetti. È molto capace di decodificare i pacchetti di un ampio numero di protocolli e catturarli. Scapy differisce dal toolkit Dshell poiché fornisce una descrizione dettagliata all'investigatore sul traffico di rete. Queste descrizioni sono state registrate in tempo reale.

Scapy ha la capacità di tracciare utilizzando strumenti di terze parti o impronte digitali del sistema operativo.

Considera il seguente esempio.

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"

Questo script fornisce la descrizione dettagliata dei dettagli del paese nel pacchetto di rete, che stanno comunicando tra loro.

Lo script precedente produrrà il seguente output.