有没有办法确定大数据包捕获的所有base64编码流量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有办法确定大数据包捕获的所有base64编码流量?相关的知识,希望对你有一定的参考价值。

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

我怀疑某些数据可能在编码时被泄露了。有没有一种简单的方法可以确定是否有任何东西已经作为Base64编码而不必通过Wireshark筛选来找到问题,也许使用终端?

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

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

答案

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

echo "base64 encoded payload" | base64
YmFzZTY0IGVuY29kZWQgcGF5bG9hZAo=

设置监听套接字:

netcat -l -p 8090

POST到它

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=
另一答案

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

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

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

或者如果您不想要流聚合,请使用pdml2frame

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

我希望这有帮助。欢迎任何意见,谢谢。

披露:我是pdml2flowpdml2flow-base64strings的作者

以上是关于有没有办法确定大数据包捕获的所有base64编码流量?的主要内容,如果未能解决你的问题,请参考以下文章

使用 libpcap,有没有办法从离线 pcap 文件中确定捕获的数据包的文件偏移量?

php 图片流 转为base64

php 图片流 转 base64

java对文件的二进制流base64编码解码

识别证书是 der 编码还是 base 64 编码

base64编码io.Reader