Python Forensics 简明教程

Python Forensics - Dshell and Scapy

DShell

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

该工具包包含大量解码器,列在以下表格中。

Sr.No.

Decoder Name & Description

1

dns 用于提取 DNS 相关查询

2

reservedips 识别 DNS 问题的解决方案

3

large-flows Listing of the netflows

4

rip-http 用于从 HTTP 流量中提取文件

5

Protocols 用于识别非标准协议

美国陆军实验室已在 GitHub 中维护克隆储存库,链接如下−

clone repository

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

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

依赖项如下 −

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

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

Scapy

Scapy 是一个基于 Python 的工具,用于分析和控制网络流量。以下是 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