观成科技: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情况分析,内存马攻击已逐渐成为攻击队使用较高的攻击方式。观成科技安全研究团队将持续跟踪内存马的相关技术动态,并积极研究更新检测手段,防范网络攻击。

相关推荐
生成论实验室2 小时前
《事件关系阴阳博弈动力学:识势应势之道》第四篇:降U动力学——认知确定度的自驱演化
人工智能·科技·神经网络·算法·架构
汤愈韬2 小时前
三种常用 NAT 的经典案例
网络协议·网络安全·security
汤愈韬3 小时前
NAT Server 与目的Nat
网络·网络协议·网络安全·security
7ACE5 小时前
Wireshark TS | TLP 超时时间
网络·网络协议·tcp/ip·wireshark·tcpdump
生成论实验室5 小时前
《事件关系阴阳博弈动力学:识势应势之道》第一篇:生成正在发生——从《即事经》到事件-关系网络
人工智能·科技·算法·架构·创业创新
生成论实验室6 小时前
《事件关系阴阳博弈动力学:识势应势之道》第二篇:阴阳博弈——认知的动力学基础
数据结构·人工智能·科技·神经网络·算法
优化Henry6 小时前
TDD-LTE站点Rilink=3链路故障处理案例---BBU侧C口“有发光、无收光”的排查与恢复
运维·网络·信息与通信·tdd
XD7429716369 小时前
科技早报|2026年5月2日:AI 编程工具开始按用量收费
人工智能·科技·ai编程·github copilot·科技早报
凯瑟琳.奥古斯特10 小时前
NAT原理及作用详解
网络·网络协议
XD74297163610 小时前
科技早报晚报|2026年5月2日:Spec 驱动开发、空口隔离交付与时序预测 Copilot,今天最值得跟进的 3 个机会
驱动开发·科技·copilot·开源项目·科技新闻·开发者工具