冰蝎&哥斯拉 流量特征分析

 

1.冰蝎(Behinder)

下载链接:https://github.com/rebeyond/Behinder/releases

 

截止至我发贴时,冰蝎最新版本是3.0,客户端兼容性有所提升(但仍不是所有JDK都支持的,如果你jar不能运行,看看是不是环境不满足要求,淦)

说点老生常谈的东西

冰蝎使用了Java开发、加密传输,而且会常常更新,猝不及防。。。良心、神器,,,基本的webshell管理功能都有,而且很强大

所以被盯上很久了

 

3.0以前的冰蝎采用了一个叫密钥协商的机制

借这图展示一下老冰蝎工作流程:

客户端GET请求密钥是带密码明文的传输,客户端获取密钥后,采取某种加密算法加密payload,之后POST过去,然后服务端采用同样的加密方法应答传回客户端

那么是如何通过检测流量获得冰蝎特征的呢?

 

首先是通过密钥协商机制检测

事实上,冰蝎客户端会发出两次请求,即二次密钥协商,并将两次获得的密钥异或来判断密钥可用性

这里有位师傅分析过此原理:https://xz.aliyun.com/t/7606

这就很容易被检测到可疑行为,这部分呢,作者就是这么写的,除非你反编译获得源码,修改他本来的代码,改掉二次密钥协商的过程,不然不好搞

 

 这部分,在3.0中改了(泪目),去除了动态密钥协商机制,采用预共享密钥,全程无明文交互,密钥格式为md5("admin")[0:16]

一个简单的冰蝎3.0使用教程:https://blog.csdn.net/qq_41874930/article/details/107916317

 

第二是通过HTTP请求特征检测

比如那个user-agent,正常来说每个shell会从十多个自带的ua中随机选一个,问题是这些ua在现在会不会有些过时

如果检测的话,也容易杀敌一千自损八百,想绕过也相对来说比第一个密钥协商简单,不嫌麻烦抓包改包,一劳永逸反编译更新ua

另外冰蝎数据包总是伴随着大量的content-type:application什么什么,无论GET还是POST,这种特征可能会被检测出来

还有什么诸如 accept比较奇怪 、cache-control与pragma默认固定这些,好像据一些师傅反映,3.0也没有改

具体代码参考:https://zhuanlan.zhihu.com/p/187482560

 

 第三可以通过行为检测

如果发现有可疑的上传行为,来,拉出来单练

 

以上是一些特征,最关键的密钥协商3.0版本已经改了,剩下的一些特征多为弱类型

 

冰蝎魔改教程:https://www.anquanke.com/post/id/212271#h2-13

关于各种shell代码,都可以看到,不比较了,请参考这篇文章:https://zhuanlan.zhihu.com/p/188664831

 

2.哥斯拉

哥斯拉Godzilla

流量加密效果更强,插件更多,号称“流量加密过市面上全部WAF”

下载链接:https://github.com/BeichenDream/Godzilla/releases

截止到我发帖更新到了2.96版本(下载不了的话可能需要一些特殊方法你懂的)

 不同shell的功能点有差别

 

 三大类payload

 

 6种加密器,6种脚本后缀

 如果有需求,可以自行修改全局配置请求头headers、加混杂数据leftData、rightData,很nice,这也导致流量层面的检测困难增大(个人感觉)

 

更多功能介绍参考:https://www.freebuf.com/news/247104.html

运行原理参考:https://www.freebuf.com/sectool/252840.html

 

 静态的查杀概率还是比较高的,但是流量特征嘛。。。

这有一篇文章:https://www.anquanke.com/post/id/224831#h2-6

提供了一些思路。。。

 

 参考文章:https://www.freebuf.com/articles/web/257956.html

未经允许,禁止转载

posted @ 2021-02-22 15:28  anoldcat  阅读(7613)  评论(0编辑  收藏  举报