使用TShark将加密的SNMPv3陷阱导出到JSON

问题描述

我有一个pcap文件,其中记录了来自Wireshark(版本3.2.2)的加密SNMPv3陷阱。为了分析陷阱,我想使用 tshark 将协议数据导出到json。

tshark.exe -T ek -Y "snmp" -P -V -x -r input.pcap > output.json

当前,我通过 C:\ Users \ developer \ AppData \ Roaming \ Wireshark 中的“ snmp_users”文件提供解密软件包的信息。

# This file is automatically generated,DO NOT MODIFY.,"snmp_user","SHA1","xxxxxx","AES","yyyyyyy"

是否可以通过命令行提供选项?

我尝试过:

tshark.exe -T ek -Y "snmp" -P -V -x -o "snmp.users_table.username:snmp_user" ...

但这会导致错误

tshark: -o flag "snmp.users_table.username:snmp_user" specifies unkNown preference

更新16.09.2020:
使用选项-Y代替-J:

-Y |-显示过滤器
导致指定的过滤器(使用读取/显示的语法 过滤器,而不是捕获过滤器) 打印解码形式的数据包或将数据包写入文件

解决方法

您需要将选项指定为用户访问表uat,特定的表是文件的名称,即 snmp_users 。因此,例如:

在Windows上:

tshark.exe -o "uat:snmp_users:\"\",\"snmp_user\",\"SHA1\",\"xxxxxx\",\"AES\",\"yyyyyyy\"" -T ek -J "snmp" -P -V -x -r input.pcap > output.json

在* nix上

tshark -o 'uat:snmp_users:"","snmp_user","SHA1","xxxxxx","AES","yyyyyyy"' -T ek -J "snmp" -P -V -x -r input.pcap > output.json

不幸的是,Wireshark文档目前缺少描述uat选项的信息。尽管有一个正在进行的Google Summer of Code项目,Wireshark参与其中,所以可能会在此处改进文档。