本文转自先知社区:
https://xz.aliyun.com/t/11989
作者:KimJun
github项目:https://github.com/rebeyond/Behinder/releases/
V2 源码:https://github.com/hktalent/afterLoader
执行流程图:
首次连接一句话服务端时,客户端首先向服务器端发起GET请求,只有一个参数,格式为?pass=123形式,服务器端随机产生一个128位的密钥,把密钥回显给客户端,同时把密钥写进服务器侧的Session中
客户端获取密钥后,后面的请求都为POST请求,对本地的二进制payload先进行AES加密然后base64编码,再通过POST请求发送至服务器端。正常的网站接口或者页面中,一般是响应的html代码或者json,冰蝎2响应的数据则为经过AES加密的二进制数据,所以Content-Type均为 : application/octet-stream
服务器端动态解析二进制class文件
客户端已编译类的参数化:使用ASM框架来动态修改class文件中的属性值,动态生成经过参数化的payload class
GET请求的 HTTP 响应包中Content-Length字段的值是固定的16,同时URI只有一个参数,key-value型参数
默认的 Accept 字段较为特殊 text/html, image/gif, image/jpeg, ; q=.2, /*; q=.2
UserAgent字段内置了十余种比较老的User Agent,每次连接shell会随机选择一个进行使用
JSP类型的webshell,POST请求体数据均为base64编码,Content-Type为application/octet-stream,响应体数据均为二进制文件
执行JSP webshell,一般较短的命令Content-Length都是9068
github项目:https://github.com/rebeyond/Behinder/releases/
V3 源码:https://github.com/MountCloud/BehinderClientSource
冰蝎3和2相比,最重要的变化就是去除动态密钥协商机制,采用预共享密钥,全程无明文交互,密钥格式为md5("admin")[0:16],其余的都差不多
这里还要提到一点,当客户端第一次调用ShellService�#doConnect�方法连接webshell失败,会调用Utils#getKeyAndCookie�方法发送Get请求连接协商秘钥,猜测作者可能是为了兼容2版本的webshell,也算是一个特征点
去除动态密钥协商机制
流量特征其实也V2版本类似,同样内置了十余种比较老的User Agent,POST请求体数据均为base64编码
存在GET请求,同时URI只有一个key-value类型参数
github项目:https://github.com/rebeyond/Behinder/releases/
V4 源码:https://github.com/MountCloud/BehinderClientSource
本地选择加密算法,生成服务端Webshell,加密算法对Payload进行加密,然后数据通过POST请求发送给远程服务端
服务端收到Payload密文后,利用解密算法进行解密
服务端执行解密后的Payload,并获取执行结果
服务端对Payload执行结果进行加密,然后返回给本地客户端
客户端收到响应密文后,利用解密算法解密,得到响应内容明文
允许自定义加密解密协议
采用默认aes加密协议情况下流量特征与V2、V3类似
某盟UTS:
针对不同安全产商设备的检测原理,整理了以下几种魔改思路:
加密解密算法,除了默认的AES,可以使用DES、3DES、TDEA、Blowfish、Twofish、RC2、R**、RC5、IDEA、SKIPJACK等对称加密算法
去除base64编码特征,请求体和响应体数据随机产生不定长度的额外字节数组
去除请求头User-Agent、Accept、Referer、Content-type等特征
请求包以json格式参数,响应体数据返回json格式或者html格式,数据可以拆散隐藏在html标签中
修改请求协议,使用HEAD协议,长度较小的paylaod放到header执行,Shell返回404,响应数据通过ceye类似接口进行中转/服务器可访问的目录图片中转
客户端不定时发送不定长度的垃圾数据
基于sessionID生成密钥、payload参数名、分隔符等
使用Java底层函数绕OpenRASP
webshell免杀
https://xz.aliyun.com/t/2744#toc-5
https://mp.weixin.qq.com/s/EwY8if6ed_hZ3nQBiC3o7A
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/194554.html