当前位置: 首页 > article >正文

观成科技:Vagent注入的内存马加密通信特征分析

  • 概述

vagent是一个使用Java语言开发的内存马注入工具。攻击者在利用vagent注入内存马之后可以利用别的代理工具或是webshell工具连接内存马进行通信。vagent对部分工具的内存马做了一些简单的魔改以达到绕过部分检测设备的目的。

  • vagent注入的内存马通信特征分析

vagent工具支持注入六种内存马,分别为:冰蝎内存马、CMD马、JS代码执行马、Neo代理内存马、Suo5代理内存马、WebSocket代理内存马。

  1. CMD马和JS代码执行马通信特征

其中CMD马和JS代码执行马的特征较为简单,攻击者注入成功之后,只需要对执行的命令进行两次base64编码,之后发送请求,内存马对请求内存解码之后以明文的形式返回执行结果,请求路径分别为“以/faviconc结尾”和“以/faviconjs结尾”,请求方式均为POST。

图 1 CMD马使用反射机制调用Decoder对象的decodeBuffer方法对攻击者输入进行解码

图 2 利用CMD马执行命令

2.冰蝎内存马通信特征

vagent内存马注入工具支持注入冰蝎内存马,由于冰蝎4版本添加了自定义传输协议功能,可以定制加密方式,vagent内存马注入工具自定义了一套加密方法,使用这套自定义加密方法的冰蝎内存马与普通的冰蝎内存马有不同的通信特征。

图 3 自定义冰蝎加密算法

如图所示,加密方式为“对载荷(十六进制)先加1,然后使用GZIP压缩,之后再加1得到加密数据”。解密算法就是将加密步骤逆序执行一遍。由于GZIP压缩算法有固定的数据头特征,所以其流量特征较为明显,每一个请求体前四字节完全相同。

图 4 载荷数据特征

对流量进行解密,请求体中传输的class文件内容。

图 5 冰蝎内存马请求体解密

3.Neo代理内存马通信特征

vagent注入的Neo代理内存马,使用Neo-reGeorg工具进行连接,连接默认密钥为“page”,请求路径以“/faviconneo”结尾。第一次请求方法为GET,响应页面使用了自定义的404页面。

而如果用neo-regeorg工具同样使用密钥”page”生成的木马,第一次请求连接时生成的响应页面是空白页面,没有404响应,在开发者模式可以看到响应的内容为“<!-- AXvdwuCDGABaIc6U+GOKPtkgBa974rkKKS853hnMveM02hXK/HMgADBC6LffJCFfd9k4+YKwwwAiQ3Q -->”。

图 6 第一次请求Neo代理内存马(响应体为自定义的404页面)

之后正常的通信使用的请求方法均为POST,请求路径不变,响应码均为404,请求体和响应体均使用经过顺序变换的Base64编码字符集进行编码进行编码,使用正常的Base64编码无法解码。替换的Base64编码字符集为“eVU7Z6kD135qN0wfCYSxbF+RP/vjaiOylt82JndKAhTgu9B4zWmEMpoIXcQrsGHL”,在Base64编码里边使用BLV格式传输数据。部分流量及解密内容如下所示:

图 7 Neo代理内存马通信流量

图 8 Neo内存马通信内容解密

Neo-regeorg工具使用BLV(Byte-LengthOffset-Value)数据格式传输数据。BLV数据格式如下:

图 9 BLV数据格式图

B长度为一个字节,其值及其代表的含义为:

1: 'DATA',

2: 'CMD',

3: 'MARK',

4: 'STATUS',

5: 'ERROR',

6: 'IP',

7: 'PORT',

8: 'REDIRECTURL',

9: 'FORCEREDIRECT'

L的长度为四字节,L的值=B的值代表的字段的数据长度+根据密钥生成的伪随机数(密钥不变则随机数固定)。即,当B数值为2时,对应字段为“CMD”,L=0x(3+伪随机数)。

V为B对应字段的值。

Neo-reGeorg在传输的数据头部和尾部还进行了数据填充,同样采用BLV数据格式,但是头部数据B固定取值为0,无意义,L和V分别按照BLV的数据特征填充数据;尾部数据中B固定取值为39,也无意义。、

图 10 按照BLV格式对数据进行编码

由于头部填充的值相对比较固定,经过Base64编码之后,观察流量可以看到除第一次会话外,其余会话的请求体的前五字节完全一致。

图 11 Neo代理内存马流行为特征

4.Websocket代理内存马通信特征

vagent工具注入的Websocket代理内存马,可以使用gost进行连接,其请求路径为以“/faviconws”结尾,连接成功和连接失败时会反别返回“HTTP/1.1 200 Connection Established”,“HTTP/1.1 503 Service Unavailable”。

图 12 连接成功或失败返回特征

图 13 WebSocket代理内存马连接成功时的通信流量

图 14 WebSocket代理内存马连接失败时的通信流量

5.Suo5代理内存马通信特征

vagent工具注入的Suo5代理内存马通信流量特征主要表现为请求路径以“/faviconsuo”结尾,其他与正常的Suo5代理通信一样,具体流量特征可见往期Suo5加密流量分析的相关文章,此处不再赘述。

  • 产品检测

观成瞰云(ENS)-加密威胁智能检测系统能够对vagent注入的内存马通信流量进行检测。

  • 总结

通过对vagent内存马注入工具代码及原始流量分析,可以看到越来越多的黑客工具开始使用自定义加密方式对攻击载荷进行加密;由于内存马相比于传统的webshell而言更难被发现,越来越多的攻击队及恶意攻击开始使用内存马进行攻击,根据近两年的HW情况分析,内存马攻击已逐渐成为攻击队使用较高的攻击方式。观成科技安全研究团队将持续跟踪内存马的相关技术动态,并积极研究更新检测手段,防范网络攻击。


http://www.kler.cn/a/391701.html

相关文章:

  • 【Pikachu】目录遍历实战
  • MySQL Workbench导入数据比mysql命令行慢
  • 使用kalibr_calibration标定相机(realsense)和imu(h7min)
  • ML 系列: 第 24 节 — 离散概率分布(泊松分布)
  • 搭建监控系统Prometheus + Grafana
  • C语言第十一周课——函数的调用
  • 直播美颜SDK开发指南:实时美颜技术的架构与优化策略
  • 数学建模模型算法-Python实现
  • C语言中操作符详解(中)
  • 在服务器里安装2个conda
  • 气膜结构赋能旧厂区焕新,多功能运动场馆的理想选择—轻空间
  • ubuntu18.04 安装与卸载NCCL conda环境安装PaddlePaddle
  • 基于Java+SpringBoot宠物管理系统
  • Python学习从0到1 day28 Python 高阶技巧 ⑤ 多线程
  • 无人机动力测试台如何快速外接第三方传感器
  • ️️一篇快速上手 AJAX 异步前后端交互
  • 帝欧家居营收净利润大跌:以资抵债贡献较小,三大策略能否扭转?
  • Win7报错Couldn‘t switch to requested monitor resolution解决方案
  • MySQl基础----Linux下数据库的密码和数据库的存储引擎(内附 实操图和手绘图 简单易懂)
  • 新版 idea 编写 idea 插件时,启动出现 ClassNotFound
  • 【Flume实操】4 Flume 自定义 Interceptor 开发案例
  • 深度了解flink(十一) 心跳机制详解
  • jwt用户登录,网关给微服务传递用户信息,以及微服务间feign调用传递用户信息
  • 2024.11.7- Redis的主从复制集群
  • LayUI组件国际化多国语言版本脚本-下篇根据语种替换
  • idea的mapper.xml文件里写sql语句出现Tag name expected错误提示