问题描述
我有一个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参与其中,所以可能会在此处改进文档。