概述

冰蝎一款新型加密网站管理客户端,在实际的渗透测试过程中有非常不错的效果,能绕过目前市场上的大部分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特征分析的更多相关文章

  1. 冰蝎动态二进制加密WebShell基于流量侧检测方案

    概述 冰蝎是一款新型动态二进制加密网站工具.目前已经有6个版本.对于webshell的网络流量侧检测,主要有三个思路.一:webshell上传过程中文件还原进行样本分析,检测静态文件是否报毒.二:we ...

  2. 【原创】利用动态二进制加密实现新型一句话木马之PHP篇

    概述 本系列文章重写了java..net.php三个版本的一句话木马,可以解析并执行客户端传递过来的加密二进制流,并实现了相应的客户端工具.从而一劳永逸的绕过WAF或者其他网络防火墙的检测. 本来是想 ...

  3. 利用shiro反序列化注入冰蝎内存马

    利用shiro反序列化注入冰蝎内存马 文章首发先知社区:https://xz.aliyun.com/t/10696 一.shiro反序列化注入内存马 1)tomcat filter内存马 先来看一个普 ...

  4. 内网安全之横向移动(冰蝎&&msf&&IPC$)

    1.冰蝎介绍 冰蝎是一款目前比较流行的Webshell管理工具,在2021年更新的2021.4.20 v3.0 Beta 9 版本中去除了动态密钥协商机制,采用预共享密钥,载荷全程无明文.因其优秀的加 ...

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

    1.冰蝎(Behinder) 下载链接:https://github.com/rebeyond/Behinder/releases 截止至我发贴时,冰蝎最新版本是3.0,客户端兼容性有所提升(但仍不是 ...

  6. 记一次解密wireshark抓取的冰蝎通信流量

    一.关于冰蝎 1.1 简单介绍 冰蝎是一款基于Java开发的动态加密通信流量的新型Webshell客户端.老牌 Webshell 管理神器——中国菜刀的攻击流量特征明显,容易被各类安全设备检测,实际场 ...

  7. 【原创】冰蝎v3.0操作使用手册

    写在前面 近期冰蝎更新了内网穿透模块中的一些功能,有不少朋友不知道参数怎么填,希望能出一个使用指导手册,就借这个机会写一个"说明书"(文中有大量演示动图,请耐心等待加载). 基本信 ...

  8. MacOS下如何优雅的使用冰蝎

    因为冰蝎也是使用 JAVA 写的跨平台应用程序,我们可以借助 macOS 自带的 自动操作 automator.app 来创建一个应用程序. 前言: 冰蝎是一种新型的Webshell连接工具,在日常的 ...

  9. 插桩 inline hook 动态二进制插桩的原理和基本实现过程

    插桩测试 https://source.android.google.cn/compatibility/tests/development/instrumentation https://zhuanl ...

随机推荐

  1. Chrome浏览器 无需安装插件将整个网页另存为图片

    步骤1 ctrl+shift+i 步骤2 ctrl+shift+p 步骤3 输入full 回车确定 感谢先辈们的无私奉献!原文https://blog.csdn.net/wumingid/articl ...

  2. 循环语句(for语句的用法)

    for语句是最常用的循环语句,出现频率极高,多用于各种循环计算.具体的形式如下:for(表达式1;表达式2;表达式3) {     语句;}表达式1:用于初始化变量,变量既可以是全局也可以是局部变量, ...

  3. 一堂优秀学员吕智钊分享----HHR计划----直播课第二课

    备注:本周四:创业者分享,下周四:投资人分享. 08年开始创业. 最重要的两条复盘思考: 大纲: ---坚持最低成本试错,最快速度学习---- 1,复盘1:创业早期如何快速学习 a,从竞争对手身上学习 ...

  4. VIM学习笔记一

    键位图 转自:链接 永久显示行号: vi ~/.vimrc 加入 :set number 命令 简单说明 :w 保存编辑后的文件内容,但不退出vim编辑器.这个命令的作用是把内存缓冲区中的数据写到启动 ...

  5. GO测试

    测试 Go拥有一个轻量级的测试框架,它由 go test 命令和 testing 包构成. 你可以通过创建一个名字以 _test.go 结尾的,包含名为 TestXXX 且签名为 func (t *t ...

  6. Balanced Lineup -POJ3264

    题意: 告诉你n头奶牛的高度,然后给你一个区间,你需要求出这个区间最高的奶牛与最矮的奶牛之间相差多少 链接:http://poj.org/problem?id=3264 思路: 线段树区间查询,用两个 ...

  7. 树莓派安装nextcloud、Seafile

    参考博文:http://bbs.eeworld.com.cn/thread-505579-1-1.html http://blog.sina.com.cn/s/blog_6f55d8210102xia ...

  8. 吴裕雄--天生自然ORACLE数据库学习笔记:用户管理与权限分配

    create user mr identified by mrsoft default tablespace users temporary tablespace temp; create user ...

  9. 吴裕雄--天生自然ORACLE数据库学习笔记:管理表空间和数据文件

    col tablespace_name for a10 col file_name for a50 col bytes ,, select tablespace_name,file_name,byte ...

  10. 报错PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"

    今天在调用第三方HTTPS接口的时候,一直显示这个报错,然后百度很久,有2种解决方法,一个是说自己手动去导入,第二种用代码忽略证书验证.我用二种方式, 复制即用, public void test2( ...