Python取证 – Dshell和Scapy
DShell
Dshell 是一个基于Python的网络取证分析工具包。这个工具包是由美国陆军研究实验室开发的。这个开源工具包的发布是在2014年。这个工具包的主要重点是使取证调查变得容易。
该工具包由大量的解码器组成,这些解码器在下表中列出。
编号:Sr.No. | 解码器名称和描述 |
---|---|
1 | dns 这是用来提取与DNS有关的查询。 |
2 | reservedips 识别DNS问题的解决方案 |
3 | large-flows 列出网流的清单 |
4 | rip-http 它用于从HTTP流量中提取文件 |
5 | 协议 用来识别非标准的协议 |
美国陆军实验室在GitHub上维护了克隆库,具体链接如下
https://github.com/USArmyResearchLab/Dshell
该克隆库包括一个用于安装该工具包的脚本 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"
这个脚本给出了网络数据包中国家细节的详细描述,他们正在相互通信。
上述脚本将产生以下输出。