Python 取证 Dshell 和 Scapy


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

该工具包由下表列出的大量解码器组成。

序号. 解码器名称和描述
1

dns

这用于提取与 DNS 相关的查询

2

保留ip

确定 DNS 问题的解决方案

3

大流量

网络流量列表

4

rip-http

它用于从 HTTP 流量中提取文件

5

协议

用于识别非标准协议

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

https://github.com/USarmyResearchLab/Dshell

Clone Repository

克隆包含一个脚本 安装-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 输出