如何自己做一个类似KDD99的数据集(将pcap预处理成csv)

一、问题描述

最近在做一个机器学习项目的时候,作者遇到了一个棘手的问题。

手里只有最原始的用wireshark捕获到的pcap数据包,虽然有几十个G,但是不经过处理再多的数据也是无用的。

虽然wireshark可以直接另存文件为csv,但保存下来的特征仅仅就是普通的时间、源地址、目的地址、信息这些特征,仅凭这些特征根本无法用作机器学习的训练。最好的数据集应该是类似KDD99那般,数据特征多,可用性强。

作者也是千方百计的寻找,网上也没有一个明确的教程说明如何自己预处理pcap包。

但最终作者还是找到了一个神器!那就是Tshark!

这个工具是什么作者就不多啰嗦了,可以自行百度,但只要安装了wireshark一般都是默认安装tshark!

在wireshark安装目录中可以找到一个tshark.exe!

在这里插入图片描述如果没安装过wireshark可以自己下载一个安装,在安装选项里记得勾选安装tshark!

Tshark功能其实有很多,wireshark能做的它基本也都能做,相当于一个命令行般的wireshark!

二、参数介绍

Tshark有自己的官方使用手册,大家可以自行查看各种参数的使用方法!

Tshark官方使用手册

我们这次用到的参数主要是以下几个:

-c <捕获数据包数>
该命令主要用于设置捕获实时数据流量时要读取的最大包数,如果是用于读取捕获文件,该命令也可以设置读取的最大数据包数,如-c 30。
-e <字段>
如果选择了-T 命令,即需要将数据包输出成相应的文件时,则可以通过-e命令将一个字段添加到要显示的字段列表中,当然该命令可以在命令行上多次使用。但是只要选择了-T字段选项,就必须至少提供一个字段。
-E <字段打印选项>
该命令同为辅助参数命令,即选择-T字段时,可以通过-E来控制字段的打印。
常见选项有:
header = y | n,可以理解为打印表头,如果为y,则将打印设置的-e字段为表头。
separator= / t | / s | <字符>,主要用于设置字段分隔符。如/s即为选择空格作为分隔符,若需要自定义分隔符,可以自行选择命令行能够接受的符号。
quote = d | s | n设置引号字符以用于包围字段。d使用双引号,s单引号,n不使用引号(默认值)。
-i | --interface <捕获接口> |
该命令主要用于设置捕获数据包的网络接口名称,具体的接口可以通过-D命令显示输出。
如果未指定接口,则TShark将自动搜索接口列表,并进行相应的选择,一般会首先第一个非环回地址。
该命令可以多次出现。从多个接口捕获时,捕获文件将以pcap格式保存。
-r |-读取文件
通过该命令可以从本地直接读取数据包数据,支持格式较多,可以是任何通用的捕获文件格式(包括压缩文件),如pcap。
-T ek | fields | json |
该命令可以与-e -i等多个命令配合使用,主要用于将实时捕获或从本地读取的pcap文件转换成其他格式,如json或csv文件等。

-e后面可以接你想要的筛选输出的参数,例如tcp.len,time,srcport等等。

具体可以接什么参数,Tshark官方手册也没有明确的说明,作者也是费了好大劲,最后才找到一个折中的办法。

具体方法可以参照作者另一篇文章:

tshark -e 后可以接哪些特征数据名

三、具体命令

话不多说我们直接进入正题!

Windows环境下进入wireshark安装目录,在这里打开cmd,或者直接win+r启动cmd,一路cd进wireshark安装目录。

然后输入下面的命令:

tshark.exe -r E:\attack\111.pcapng -T fields  -e frame.time_delta   -e ip.src -e tcp.len -e icmp -e udp  -e tcp.analysis.flags  -e openflow_v4.type -e openflow_v4.length  -E header=y -E separator=, -E quote=d -E occurrence=f > test.csv
-r后面接路径
-e后面接筛选的特征值
其他参数照我这个就可以

运行完会直接在当前目录下生成转换完成的test.csv文件!

ubantu下命令基本差不多,把.exe去掉即可

tshark -r 111.pcapng -T fields  -e frame.time_delta   -e ip.src -e tcp.len -e icmp -e udp  -e tcp.analysis.flags  -e openflow_v4.type -e openflow_v4.length  -E header=y -E separator=, -E quote=d -E occurrence=f > test.csv

但是ubantu中很多地方涉及到权限问题,作者也是饶了好大一圈才找个一个可行的方法!

直接用root权限在桌面上创建一个文件夹,把要处理的pcap文件用命令移动进去,然后在这个文件夹里运行终端,再使用上述命令代码。不行的话再su一下,切换到root再执行。

如果还有其他问题的话,可以在下面评论区当中给我留言,我会尽力解答!

  • 11
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值