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.