Python Forensics - Dshell i Scapy

DShell

Dshellto oparty na Pythonie zestaw narzędzi do analizy kryminalistycznej sieci. Ten zestaw narzędzi został opracowany przez laboratorium badawcze armii amerykańskiej. Ten zestaw narzędzi typu open source został wydany w roku 2014. Głównym celem tego zestawu narzędzi jest ułatwienie prowadzenia dochodzeń kryminalistycznych.

Zestaw narzędzi składa się z dużej liczby dekoderów, które wymieniono w poniższej tabeli.

Sr.No. Nazwa i opis dekodera
1

dns

Służy do wyodrębniania zapytań związanych z DNS

2

reservedips

Identyfikuje rozwiązania problemów z DNS

3

large-flows

Lista przepływów netto

4

rip-http

Służy do wyodrębniania plików z ruchu HTTP

5

Protocols

Służy do identyfikacji niestandardowych protokołów

Laboratorium armii amerykańskiej utrzymywało repozytorium klonów w GitHub pod następującym linkiem -

https://github.com/USArmyResearchLab/Dshell

Klon składa się ze skryptu install-ubuntu.py () używany do instalacji tego zestawu narzędzi.

Po pomyślnym zakończeniu instalacji automatycznie utworzy pliki wykonywalne i zależności, które będą używane później.

Zależności są następujące -

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

Ten zestaw narzędzi może być używany przeciwko plikom pcap (przechwytywania pakietów), które są zwykle rejestrowane podczas incydentów lub podczas ostrzeżenia. Te pliki pcap są tworzone przez libpcap na platformie Linux lub przez WinPcap na platformie Windows.

Scapy

Scapy to oparte na Pythonie narzędzie służące do analizowania i manipulowania ruchem sieciowym. Poniżej znajduje się link do zestawu narzędzi Scapy -

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

Ten zestaw narzędzi jest używany do analizy manipulacji pakietami. Jest bardzo zdolny do dekodowania pakietów wielu protokołów i przechwytywania ich. Scapy różni się od zestawu narzędzi Dshell dostarczeniem badaczowi szczegółowego opisu ruchu sieciowego. Te opisy zostały nagrane w czasie rzeczywistym.

Scapy ma możliwość tworzenia wykresów za pomocą narzędzi innych firm lub odcisków palców systemu operacyjnego.

Rozważmy następujący przykład.

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"

Ten skrypt zawiera szczegółowy opis informacji o kraju w pakiecie sieciowym, które komunikują się ze sobą.

Powyższy skrypt wygeneruje następujący wynik.