Python 取证 - Dshell and Scapy

  • DShell

    Dshell是一个基于 Python 的网络取证分析工具包。该工具包由美国陆军研究实验室开发。该开源工具包于 2014 年发布。该工具包的主要重点是轻松进行取证调查。
    该工具包由下表列出的大量解码器组成。
    序号 解码器名称和描述
    1
    dns
    这用于提取与 DNS 相关的查询
    2
    reservedips
    确定 DNS 问题的解决方案
    3
    large-flows
    网络流量列表
    4
    rip-http
    它用于从 HTTP 流量中提取文件
    5
    Protocols
    用于识别非标准协议
    美国陆军实验室在以下链接中维护了 GitHub 中的克隆存储库 -
    克隆存储库
    克隆包含一个脚本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 和 Scapy 输出