将Wireshark PDML聚合到流

pdml2flow的Python项目详细描述


使用插件将wireshark pdml聚合到流中

在分析网络流量时,有时将 捕获的帧。例如,通过端口号获取网络流或 对硬件流使用mac地址。在里面做这个 Wiresharktshark是 很难。pdml2flow设计用于解决此用例。 pdml2flow读取 tshark输出 使用Packet Description Markup Language并将流写入 json或xml。这些流也可以从python插件访问 接口。如果不需要流聚合,pdml2frame可以是 用于使用插件处理pdml

BranchBuildCoverage
masterBuild Status masterCoverage Status master
developBuild Status developCoverage Status develop

先决条件

  • python
  • 3.4
  • 3.5
  • 3.5-开发
  • 3.6
  • 3.6-开发
  • 3.7-开发
  • 每晚
  • pip

安装

$ sudo pip install pdml2flow

用法

$ pdml2flow -h
usage: pdml2flow [-h][--version][-f FLOW_DEF_STR][-t FLOW_BUFFER_TIME][-l DATA_MAXLEN][-c][-a][-s][-d][+json [args]][+xml [args]]

Aggregates wireshark pdml to flows

optional arguments:
  -h, --help           show this help message and exit
  --version            Print version and exit
  -f FLOW_DEF_STR      Fields which define the flow, nesting with: '.'[default: ['vlan.id', 'ip.src', 'ip.dst', 'ipv6.src',
                       'ipv6.dst', 'udp.stream', 'tcp.stream']]
  -t FLOW_BUFFER_TIME  Lenght (in seconds) to buffer a flow before writing the
                       packets [default: 180]
  -l DATA_MAXLEN       Maximum lenght of data in tshark pdml-field [default:
                       200]
  -c                   Removes duplicate data when merging objects, will not
                       preserve order of leaves [default: False]
  -a                   Instead of merging the frames will append them to an
                       array [default: False]
  -s                   Extract show names, every data leaf will now look like
                       { raw : [] , show: []}[default: False]
  -d                   Debug mode [default: False]

Plugins:
  +json [args]         usage: JSON output [-h][-0] optional arguments: -h,
                       --help show this help message and exit -0 Terminates
                       lines with null character
  +xml [args]          usage: XML output [-h][-0] optional arguments: -h,
                       --help show this help message and exit -0 Terminates
                       lines with null character

环境变量

NameDescripton
LOAD_PLUGINSIf set to ^{tt4}$, skips loading of all plugins

示例

从接口嗅探并编写json:

$ tshark -i interface -Tpdml | pdml2flow +json

读取.pcap文件

$ tshark -r pcap_file -Tpdml | pdml2flow +json

基于以太网源和以太网目标地址的聚合

$ tshark -i interface -Tpdml | pdml2flow -f eth.src -f eth.dst +json

使用jq

$ tshark -i interface -Tpdml | pdml2flow +json | jq

后处理流程使用 FluentFlow

$ tshark -i interface -Tpdml | pdml2flow +json | fluentflow rules.js

插件

接口

# vim: set fenc=utf8 ts=4 sw=4 et :classPlugin2(object):# pragma: no cover"""Version 2 plugin interface."""@staticmethoddefhelp():"""Return a help string."""passdef__init__(self,*args):"""Called once during startup."""passdef__deinit__(self):"""Called once during shutdown."""passdefflow_new(self,flow,frame):"""Called every time a new flow is opened."""passdefflow_expired(self,flow):"""Called every time a flow expired, before printing the flow."""passdefflow_end(self,flow):"""Called every time a flow ends, before printing the flow."""passdefframe_new(self,frame,flow):"""Called for every new frame."""pass

创建新插件

asciicast

实用程序

以下实用程序是本项目的一部分

PDML2框架

wireshark pdml到帧,带有插件

$ pdml2frame -h
usage: pdml2frame [-h][--version][-s][-d][+json [args]][+xml [args]]

Converts wireshark pdml to frames

optional arguments:
  -h, --help    show this help message and exit
  --version     Print version and exit
  -s            Extract show names, every data leaf will now look like { raw :
                [] , show: []}[default: False]
  -d            Debug mode [default: False]

Plugins:
  +json [args]  usage: JSON output [-h][-0] optional arguments: -h, --help
                show this help message and exit -0 Terminates lines with null
                character
  +xml [args]   usage: XML output [-h][-0] optional arguments: -h, --help
                show this help message and exit -0 Terminates lines with null
                character

测试

运行测试:

$ python setup.py test

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
netbeans根据命名约定返回布尔类的getter的Java名称   java如何在MessageFormat中使用单引号   java如何在整数数组中只对奇数排序,而将偶数保留在其原始位置?   自定义ArrayAdapter中未定义java构造函数   java joda时间格式化程序解析yyyyymmdd(额外一小时)   java Spring引导控制器测试始终返回404   java如何提取类文件以获取该类文件中的类?   JTable java列不会显示   java Selenium Web驱动程序输出错误的Web表行数   当应用程序在mac上打开时,java SWT选项卡项会从页面上消失   java如何将html文件映射到过滤器   swing Java计算一段时间内两点之间的转换   javawebsphere和javax。xml。ws。spi。提供者:提供者组织。阿帕奇。axis2。jaxws。spi。提供者不是子类型   For循环在Java中没有按预期继续?   java如何配置gson以排除0个整数值   java读取一个由tab分隔的文件,并将单词放入ArrayList中   java我需要做什么才能让LiveConnect重新工作?   sqlservermerge2xml&使用java提取这些数据并将其存储在db表中   java如何在模型中添加新对象时通知网格