冰蝎动态二进制加密WebShell特征分析
概述
冰蝎一款新型加密网站管理客户端,在实际的渗透测试过程中有非常不错的效果,能绕过目前市场上的大部分WAF、探针设备。本文将通过在虚拟环境中使用冰蝎,通过wireshark抓取冰蝎通信流量,结合平时在授权渗透中使用冰蝎马经验分析并总结特征。
版本介绍
目前冰蝎已经迭代6个版本下载地址,从最初的v1.0版本到目前最新的版本v2.0.1,其中v1.0版本可以从此处下载到。
冰蝎最初的版本对于环境的要求较为苛刻,仅支持部分环境,绝大部分环境中都无法连接成功,目前最新版本可使用范围有了较大的提升,PHP 5-PHP 7全版本支持,Java最低支持至1.6,.NET最低支持至2.0。
冰蝎最初版本User-Agent头为客户端JDK版本,v1.1开始新增随机UserAgent支持,每次会话会从17种常见UserAgent中随机选取。
由于冰蝎在通信过程中使用AES加密,Java和.Net默认支持AES加密,php环境中需要开启openssl扩展,v2.0更新以后,PHP环境加密方式根据服务器端支持情况动态选择,不再依赖openssl,使得冰蝎有了更大的发挥空间。
JSP冰蝎马,此处不作冰蝎马分析。

PHP冰蝎马

通信流量分析
在本地搭建环境抓取冰蝎流量来进行简单的特征分析,主要测试冰蝎最初版本和最新版本,v1.0和v2.0.1,提取通信关键特征。
服务端虚拟机win7、客户端本地主机win10、Tomcat8,客户端服务端Java环境均为1.8。

V1.0版本冰蝎连接
抓取到的通信流量如下:



从Wireshark中抓到的数据包中可以看出,冰蝎与传统的管理工具一样,操作请求均为POST。从流量包中可以清楚看到请求头中携带的User-Agent: Java/1.8.0_181为客户端Java环境的版本且会随着客户端的Java环境而变化,Content-Type: application/octet-stream表示以二进制流传输数据,响应体的数据被加密,无法看出响应的内容是什么,Content-Type: application/octet-stream代表二进制流也不能作为判定的依据,暂时无法提取的有效的特征,但是注意到冰蝎在建立之前会有一个GET请求,咱们在最新版本中看一下会不会有这个GET请求。
V2.0.1版本冰蝎连接

冰蝎v2.0.1连接成功,抓取到流量包如下:

我们通过查看POST数据包发现除上述提到冰蝎增加了随机的User-Agent和v1.0并无其它本质上的区别。

但是我们注意到依然会有GET请求,冰蝎检测的难点在于在通信过程中数据通过加密传输,难以提取特征,下面我们比较一下两个版本之间在连接过程中发起的GET请求。
V1.0请求包详情如下:

V2.0.1请求包详情如下:

通过比较发现,冰蝎在连接之前会发送一个GET请求,服务端如果正常会响应一个16位的字符串。其实冰蝎每一次连接请求都会向服务端发送一次GET请求获取16位的密钥,这16位的字符串就是密钥,在客户端和服务端的通信过程中使用密钥进行加密以达到免杀的目的,因此只要我们能在流量中发现这样特征的流量,便可以发现隐藏在流量中的冰蝎webshell。
冰蝎特征总结
检测请求方式:Request.method= GET
检测请求资源:Request.url= /[\w.]*\.[a-zA-Z]{3,4}\?\w{0,20}=\d{0,10}

检测服务端响应(仅16位密钥):Response.body.startwith =\w{16}


上述正则仅供参考,实际过程中需要防止规则被绕过,例如:shell的名字、后缀(可能利用解析漏洞等)、密码的长度等等。本次仅从v1.0和v2.0.1中去分析,实际在目前的版本中都存在获取密钥这个请求,由于篇幅有限,只举例说明了这个两个版本。
文末总结
与检测传统的网站管理工具不同的,中国菜刀、中国蚁剑、c刀等都从POST请求中去提取特征,而冰蝎在通信过程中使用加密传输无法获取明文,因此,利用冰蝎在和服务端通信过程中会获取密钥的特性去检测也许会是一种可行的方法。
冰蝎动态二进制加密WebShell特征分析的更多相关文章
- 冰蝎动态二进制加密WebShell基于流量侧检测方案
概述 冰蝎是一款新型动态二进制加密网站工具.目前已经有6个版本.对于webshell的网络流量侧检测,主要有三个思路.一:webshell上传过程中文件还原进行样本分析,检测静态文件是否报毒.二:we ...
- 【原创】利用动态二进制加密实现新型一句话木马之PHP篇
概述 本系列文章重写了java..net.php三个版本的一句话木马,可以解析并执行客户端传递过来的加密二进制流,并实现了相应的客户端工具.从而一劳永逸的绕过WAF或者其他网络防火墙的检测. 本来是想 ...
- 利用shiro反序列化注入冰蝎内存马
利用shiro反序列化注入冰蝎内存马 文章首发先知社区:https://xz.aliyun.com/t/10696 一.shiro反序列化注入内存马 1)tomcat filter内存马 先来看一个普 ...
- 内网安全之横向移动(冰蝎&&msf&&IPC$)
1.冰蝎介绍 冰蝎是一款目前比较流行的Webshell管理工具,在2021年更新的2021.4.20 v3.0 Beta 9 版本中去除了动态密钥协商机制,采用预共享密钥,载荷全程无明文.因其优秀的加 ...
- 冰蝎&哥斯拉 流量特征分析
1.冰蝎(Behinder) 下载链接:https://github.com/rebeyond/Behinder/releases 截止至我发贴时,冰蝎最新版本是3.0,客户端兼容性有所提升(但仍不是 ...
- 记一次解密wireshark抓取的冰蝎通信流量
一.关于冰蝎 1.1 简单介绍 冰蝎是一款基于Java开发的动态加密通信流量的新型Webshell客户端.老牌 Webshell 管理神器——中国菜刀的攻击流量特征明显,容易被各类安全设备检测,实际场 ...
- 【原创】冰蝎v3.0操作使用手册
写在前面 近期冰蝎更新了内网穿透模块中的一些功能,有不少朋友不知道参数怎么填,希望能出一个使用指导手册,就借这个机会写一个"说明书"(文中有大量演示动图,请耐心等待加载). 基本信 ...
- MacOS下如何优雅的使用冰蝎
因为冰蝎也是使用 JAVA 写的跨平台应用程序,我们可以借助 macOS 自带的 自动操作 automator.app 来创建一个应用程序. 前言: 冰蝎是一种新型的Webshell连接工具,在日常的 ...
- 插桩 inline hook 动态二进制插桩的原理和基本实现过程
插桩测试 https://source.android.google.cn/compatibility/tests/development/instrumentation https://zhuanl ...
随机推荐
- Struts2 处理AJAX请求
Struts2整合AJAX有2种方式: 使用type="stream"类型的<result> 使用JSON插件 使用type="stream"类型的 ...
- 如果你是新晋的leader, 你可能需要了解这些。
背景 在职业发展的道路上,我们总会面临这样的抉择: 是在技术的路上一条路走到黑,做技术专家 接触管理, 走上管理 年龄大了,搬砖没人要,转型 or 去公司楼下卖炒粉 我曾经有个小小的愿望: 在毕业5年 ...
- Vulnhub_bossplayersCTF 记录
目录 经验 & 总结 步骤流水 经验 & 总结 CTF这种东西还是有一些脑洞和约定俗成的东西: 比如多次编码 比如cmd参数传入执行的命令 步骤流水 端口信息搜集nmap -A 192 ...
- 使用KVO键值监听
本文章从五个方面介绍KVO(Key-Value-Observer)键值观察者: (1)功能介绍 (2)使用步骤 (3)应用场景 (4)原理理解 (5)相关的面试题 一 功能介绍 KVO是OC语言对「观 ...
- jquery对象和dom原生获取的对象是不同的。
写了一个点击无缝滚动的demo,但是点击的时候如果上一个不运动完成,在快速点击就会快闪. 可是开始也清除定时器了,后来发现是传入的jq对象,jqobj.timer=定时器,这里jqobj没法添加.ti ...
- Fescar分布式事务实现原理解析探秘
前言 fescar发布已有时日,分布式事务一直是业界备受关注的领域,fescar发布一个月左右便受到了近5000个star足以说明其热度.当然,在fescar出来之前,已经有比较成熟的分布式事务的解决 ...
- win32下的命令行集合 (最优秀的工具)
HIDECMD.rar下载:以隐藏窗口的方式运行批处理. curl.exe 7.12.2 文件传输 593,670 curl是一个利用URL语法在命令行方式下工作的的文件传输工具 E6ED60CDA8 ...
- python表白代码1.0桃心输出
python爱心表达函数初级版本:def my_heart(a,b=2): print("\n".join(["".join([(a[(x-y) % len(a ...
- jqGrid不支持IE8的解决办法
参考:https://blog.csdn.net/tarataotao/article/details/10376657
- Android中利用正则表达式验证手机号是否合法
利用正则表达式来验证手机号是否合法,现在我们简单使用一下,这个在实际的应用中很实用. 例:在输入框中输入手机号,判断是否合法, MainActivity中: package com.example.m ...