有没有一种方法可以确定进出大型数据包的所有base64编码流量?

时间:2019-04-12 13:56:04

标签: networking wireshark packet pcap packet-capture

我有一个大的(8GB)数据包捕获(.pcap),已生成许多Snort警报。

我怀疑某些数据在编码时已被窃取。有没有一种简便的方法可以确定是否有任何东西以Base64编码方式出现,而不必通过Wireshark进行筛选以找到问题(也许使用终端)?

我担心的是,演员可能会在系统内进行横向移动并将文件提取到第三方系统,而Snort警报无法识别该文件。

我尝试将大的.pcap解析为200MB的文件,以便进行更仔细的检查(我的VM具有内存限制)。

2 个答案:

答案 0 :(得分:0)

这不是一件容易的事,但是您可以尝试在命令行上使用tshark
生成的base64有效负载:

echo "base64 encoded payload" | base64
YmFzZTY0IGVuY29kZWQgcGF5bG9hZAo=

设置监听套接字:

netcat -l -p 8090

开机自检

curl -X POST -d 'YmFzZTY0IGVuY29kZWQgcGF5bG9hZAo=' http://localhost:8090                                                                                                                                 
^C

使用wireshark捕获后在命令行上进行解析:

tshark -r ~/tmp/base64.pcapng -T fields -e http.file_data | grep -E '^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$'

结果(加上空行表示不匹配,为简单起见未显示)

YmFzZTY0IGVuY29kZWQgcGF5bG9hZAo=

答案 1 :(得分:0)

这启发了我为pdml2flow-base64strings编写pdml2flow插件。借助pdml2flow的功能,该插件在wireshark / tshark已知的所有字段中搜索有效的base64编码数据。如果找到base64字符串,则它将解码并为您打印原始数据。如果只想限制一定大小的数据,可以使用--minlength开关。它还允许您将搜索范围缩小到仅ascii(--ascii)或utf-8(--utf8)。

例如,如果您要提取在wirehark / tshark已知的任何字段中编码的所有utf-8字符串,则可以在插件中使用pdml2flow

tshark -r dump.cap -Tpdml | pdml2flow +base64strings --utf8

或者如果您不希望流聚合,请使用pdml2frame

tshark -r dump.cap -Tpdml | pdml2frame +base64strings --utf8

我希望这会有所帮助。欢迎任何输入,谢谢。

披露:我是pdml2flowpdml2flow-base64strings

的作者