Python取证 - Dshell和Scapy



DShell

Dshell是一个基于Python的网络取证分析工具包。该工具包由美国陆军研究实验室开发。这个开源工具包于2014年发布。该工具包的主要重点是简化取证调查。

该工具包包含大量的解码器,如下表所示。

序号 解码器名称及描述
1

dns

用于提取DNS相关查询

2

reservedips

识别DNS问题的解决方案

3

large-flows

列出网络流量

4

rip-http

用于从HTTP流量中提取文件

5

协议

用于识别非标准协议

美国陆军实验室在GitHub上维护了克隆仓库,链接如下:

https://github.com/USArmyResearchLab/Dshell

Clone Repository

克隆包含一个用于安装此工具包的脚本install-ubuntu.py()

安装成功后,它将自动构建稍后将使用的可执行文件和依赖项。

依赖项如下:

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

此工具包可用于pcap(数据包捕获)文件,这些文件通常在事件发生期间或警报期间记录。这些pcap文件是由Linux平台上的libpcap或Windows平台上的WinPcap创建的。

Scapy

Scapy是一个基于Python的工具,用于分析和操作网络流量。以下是Scapy工具包的链接:

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

此工具包用于分析数据包操作。它能够解码大量协议的数据包并捕获它们。Scapy与Dshell工具包的不同之处在于,它为调查人员提供了有关网络流量的详细描述。这些描述已实时记录。

Scapy能够使用第三方工具或操作系统指纹识别进行绘图。

考虑以下示例。

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"

此脚本提供了网络数据包中国家/地区详细信息的详细描述,以及彼此通信的国家/地区。

上述脚本将产生以下输出。

DShell and Scapy Output
广告