webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)

简介

冰蝎是一款基于Java开发的动态加密通信流量的新型Webshell客户端,由于通信流量被加密,传统的WAF、IDS 设备难以检测,给威胁狩猎带来较大挑战。冰蝎其最大特点就是对交互流量进行对称加密,且加密密钥是由随机数函数动态生成,因此该客户端的流量几乎无法检测。
github地址:https://github.com/rebeyond/Behinder/releases
在流量层,冰蝎的aes特征一直是厂商查杀的重点,在主机层,aes相关的API也是一个强特征。既然是特征,那就一定存在一个一成不变的常量,那我们就把这个特征泛化一下,让他成为变量。为了一劳永逸解决这个问题,v4.0版本提供了传输协议自定义功能,让用户对流量的加密和解密进行自定义,实现流量加解密协议的去中心化。v4.0版本不再有连接密码的概念,你的自定义传输协议的算法就是连接密码

安装

先要下载文件:
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第1张图片
然后:
image.png
回车启动:
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第2张图片

使用

生成木马


然后就会生成:
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第3张图片
将shell.php上传至web目录,然后进行添加:
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第4张图片
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第5张图片
保存后双击即可进入:

平行空间

webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第6张图片
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第7张图片
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第8张图片
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第9张图片

反弹shell

可以和MSF和CS联动
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第10张图片
按照提示,在msf中做好监听:
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第11张图片
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第12张图片
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第13张图片

通信过程

冰蝎的通信过程可以分为两个阶段:

  • 密钥协商
  • 加密传输
  1. 第一阶段-密钥协商
    1)攻击者通过 GET 或者 POST 方法,形如 http://192.168.3.60/shell.php?pass=645 的请求服务器密钥;
    2)服务器使用随机数 MD5 的高16位作为密钥,存储到会话的 $_SESSION 变量中,并返回密钥给攻击者。
  2. 第二阶段-加密传输
    1)客户端把待执行命令作为输入,利用 AES 算法或 XOR 运算进行加密,并发送至服务端;
    2)服务端接受密文后进行 AES 或 XOR 运算解密,执行相应的命令;
    3)执行结果通过AES加密后返回给攻击者。
    webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第14张图片
    webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第15张图片

加密原理

webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第16张图片

1、本地对Payload进行加密,然后通过POST请求发送给远程服务端;
2、服务端收到Payload密文后,利用解密算法进行解密;
3、服务端执行解密后的Payload,并获取执行结果;
4、服务端对Payload执行结果进行加密,然后返回给本地客户端;
5、客户端收到响应密文后,利用解密算法解密,得到响应内容明文。

一个完整的传输协议由两部分组成,本地协议和远程协议。由于客户端使用Java开发,因此本地协议的加解密算法需要用Java实现。远程协议根据服务端语言类型,可能为Java、PHP、C#、ASP。无论用哪种语言,同一个名称的传输协议,本地和远程的加解密逻辑应该是一致的,这样才能实现本地加密后,远程可以成功解密,远程加密后,本地同样也可以解密(因此如果修改默认的aes协议的key,则需要同时修改本地和远程的加密函数和加密函数中的key)
一个传输协议必须包含一对本地加解密函数,至少包含一对远程加解密函数(Java、PHP、C#、ASP中的一个或者多个)如下是传输协议中的本地加解密函数与远程加解密函数:
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第17张图片
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第18张图片
这样就能对应上述的流程!!

流量特征

Accept字段

Accept: application/json, text/javascript, */*; q=0.01

webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第19张图片
检测方式:
浏览器可接受任何文件,但最倾向application/json和 text/javascript

Content-Type

Content-type: Application/x-www-form-urlencoded

webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第20张图片
检测方式:
可以把这个字段作为一个弱特征,辅助其他特征来检测

User-agent

冰蝎设置了10种User-Agent,每次连接shell时会随机选择一个进行使用。
这个主要是将冰蝎中的10种UA都记录下来然后进行匹配:

端口

冰蝎与webshell建立连接的同时,javaw也与目的主机建立tcp连接,每次连接使用本地端口在49700左右,每连接一次,每建立一次新的连接,端口就依次增加。
可以对符合该范围内的端口告警。

PHP webshell 中存在固定代码

$post=Decrypt(file_get_contents(“php://input”));
eval($post);

content字段中,将eval($post)作为流量特征纳入。

长连接

冰蝎通讯默认使用长连接,避免了频繁的握手造成的资源开销。默认情况下,请求头和响应头里会带有 Connection。
Connection: Keep-Alive
可以作为辅助的流量特征。

固定的请求头和响应头

请求:
dFAXQV1LORcHRQtLRlwMAhwFTAg/M
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第21张图片
响应:
TxcWR1NNExZAD0ZaAWMIPAZjH1BFBFtHThcJSlUXWEd
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第22张图片

连接密码

默认时,所有冰蝎4.0 webshell都有“e45e329feb5d925b” 一串密钥。该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)_第23张图片

你可能感兴趣的:(网络安全,网络,安全)