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.