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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/914518.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

新增支持Elasticsearch数据源,支持自定义在线地图风格,DataEase开源BI工具v2.10.2 LTS发布

2024年11月11日&#xff0c;人人可用的开源BI工具DataEase正式发布v2.10.2 LTS版本。 这一版本的功能变动包括&#xff1a;数据源方面&#xff0c;新增了对Elasticsearch数据源的支持&#xff1b;图表方面&#xff0c;对地图类和表格类图表进行了功能增强和优化&#xff0c;增…

Ubuntu24.04安装搜狗输入法详细教程

本章教程,介绍如何在Ubuntu24.04版本操作系统上安装搜狗输入法。 一、下载安装包 搜狗输入法linux版本下载地址:https://shurufa.sogou.com/linux 二、安装步骤 1、更新源 sudo apt update2、安装fcitx输入法框架 sudo apt install fc

vxe-table 3.10+ 进阶高级用法(一),根据业务需求自定义实现筛选功能

vxe-table 是vue中非常强大的表格的&#xff0c;公司项目中复杂的渲染都是用 vxe-table 的&#xff0c;对于用的排序。筛选之类的都能支持&#xff0c;而且也能任意扩展&#xff0c;非常强大。 默认筛选功能 筛选的普通用法就是给对应的列指定参数&#xff1a; filters&#…

一文搞懂 ARM 64 系列: PACISB

1 PAC AMR64提供了PAC(Pointer Authentication Code)机制。 所谓PAC&#xff0c;简单来说就是使用存储在芯片硬件上的「密钥」&#xff0c;一个「上下文」&#xff0c;与「指针地址」进行加密计算&#xff0c;得出一个「签名」&#xff0c;将这个「签名」写入指针的高bit上。 计…

Spark 共享变量:广播变量与累加器解析

Spark 的介绍与搭建&#xff1a;从理论到实践_spark环境搭建-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交&#xff1a;本地与集群模式全解析-CSDN博客 Spark on YARN&#xff1a;Spark集群模式…

基于Matlab 火焰识别技术

课题介绍 森林承担着为人类提供氧气以及回收二氧化碳等废弃气体的作用&#xff0c;森林保护显得尤其重要。但是每年由于火灾引起的事故不计其数&#xff0c;造成重大的损失。如果有一款监测软件&#xff0c;从硬件处获得的图像中监测是否有火焰&#xff0c;从而报警&#xff0…

Group By、Having用法总结(常见踩雷点总结—SQL)

Group By、Having用法总结 目录 Group By、Having用法总结一、 GROUP BY 用法二、 HAVING 用法三、 GROUP BY 和 HAVING 的常见踩雷点3.1 GROUP BY 选择的列必须出现在 SELECT 中&#xff08;&#x1f923;最重要的一点&#xff09;3.2 HAVING 与 WHERE 的区别3.3 GROUP BY 可以…

《JavaEE进阶》----20.<基于Spring图书管理系统①(登录+添加图书)>

PS&#xff1a;关于接口定义 接口定义&#xff0c;通常由服务器提供方来定义。 1.路径&#xff1a;自己定义 2.参数&#xff1a;根据需求考虑&#xff0c;我们这个接口功能完成需要哪些信息。 3.返回结果&#xff1a;考虑我们能为对方提供什么。站在对方角度考虑。 我们使用到的…

并发基础:(淘宝笔试题)三个线程分别打印 A,B,C,要求这三个线程一起运行,打印 n 次,输出形如“ABCABCABC....”的字符串

🚀 博主介绍:大家好,我是无休居士!一枚任职于一线Top3互联网大厂的Java开发工程师! 🚀 🌟 在这里,你将找到通往Java技术大门的钥匙。作为一个爱敲代码技术人,我不仅热衷于探索一些框架源码和算法技巧奥秘,还乐于分享这些宝贵的知识和经验。 💡 无论你是刚刚踏…

华为ensp实验二--mux vlan的应用

一、实验内容 1.实验要求&#xff1a; 在交换机上创建三个vlan&#xff0c;vlan10、vlan20、vlan100&#xff0c;将vlan100设置为mux-vlan&#xff0c;将vlan10设置为group vlan&#xff0c;将vlan20设置为separate vlan&#xff1b;实现vlan10的设备在局域网内可以进行互通&…

Hadoop + Hive + Apache Ranger 源码编译记录

背景介绍 由于 CDH&#xff08;Clouderas Distribution Hadoop &#xff09;近几年已经开始收费并限制节点数量和版本升级&#xff0c;最近使用开源的 hadoop 搭了一套测试集群&#xff0c;其中的权限管理组件用到了Apache Ranger&#xff0c;所以记录一下编译打包过程。 组件…

物联网对商业领域的影响

互联网彻底改变了通信方式&#xff0c;并跨越了因地理障碍造成的人与人之间的鸿沟。然而&#xff0c;物联网&#xff08;IoT&#xff09;的引入通过使设备能够连接到互联网&#xff0c;改变了设备的功能。想象一下&#xff0c;你的闹钟连接到互联网&#xff0c;并且能够用你的声…

PYNQ 框架 - 中断(INTR)驱动

目录 1. 简介 2. 分析 2.1 Block Design 2.2 AXI Timer 2.2.1 IP 基本信息 2.2.2 IP 地址空间 2.2.3 级联模式 2.2.4 生成/捕获模式 2.3 AXI Interrupt 2.3.1 IP 基本信息 2.3.2 IP 地址空间 2.3.3 相关概念 2.3.4 参数配置 2.3.5 中断确认寄存器 3. PYNQ 代码 …

HTB:Photobomb[WriteUP]

目录 连接至HTB服务器并启动靶机 使用nmap对靶机进行端口开放扫描 再次使用nmap对靶机开放端口进行脚本、服务扫描 使用ffuf进行简单的子域名扫描 使用浏览器直接访问该域名 选取一个照片进行下载&#xff0c;使用Yakit进行抓包 USER_FLAG&#xff1a;a9afd9220ae2b5731…

ts枚举 enum

枚举&#xff08; enum &#xff09;可以定义⼀组命名常量&#xff0c;它能增强代码的可读性&#xff0c;也让代码更好维护。调用函数时传参时没有任何提示&#xff0c;编码者很容易写错字符串内容。并且⽤于判断逻辑的是连续且相关的⼀组值&#xff0c;那此时就特别适合使用枚…

Android Studio | 修改镜像地址为阿里云镜像地址,启动App

在项目文件的目录下的 settings.gradle.kts 中修改配置&#xff0c;配置中包含插件和依赖项 pluginManagement {repositories {maven { urluri ("https://www.jitpack.io")}maven { urluri ("https://maven.aliyun.com/repository/releases")}maven { urlu…

场景解决之mybatis当中resultType= map时,因某个字段为null导致返回的map的key不存在怎么处理

1、场景:通过查询数据表将返回结果封装到map当中返回,因某个字段为null,导致map当中key丢失 <select id"queryMyBonus" parameterType"com.cn.entity.student" resultType "map">SELECTb.projectName as "projectName",b.money…

初识算法 · 位运算常见总结(1)

目录 前言&#xff1a; 位运算基本总结 部分题目代码 前言&#xff1a; ​本文的主题是位运算&#xff0c;通过常见的知识点讲解&#xff0c;并且会附上5道简单的题目&#xff0c;5道题目的链接分别为&#xff1a;191. 位1的个数 - 力扣&#xff08;LeetCode&#xff09; 1…

国信证券造访图为科技,共探科技与资本交融新契机

在当今时代背景下&#xff0c;科技与资本的交融&#xff0c;是推动企业发展和产业升级的强大动力&#xff0c;两者相辅相成&#xff0c;共同塑造未来经济的新格局。今日&#xff0c;图为科技深圳总部迎来了国信证券董事总经理于吉鑫一行的造访。 这不是一场简单的会面&#xff…

计算机网络:运输层 —— TCP/IP运输层中的两个重要协议

文章目录 TCP 协议工作方式建立连接&#xff08;三次握手&#xff09;释放连接&#xff08;四次挥手&#xff09; 首部格式 UDP 协议首部格式适用场景 TCP 与 UDP 的对比无连接的UDP和面向连接的TCP对单播、多播和广播的支持情况对应用层报文的处理对数据传输可靠性的支持情况U…