Aggregator
CVE-2024-37321 | Microsoft SQL Server Native Client OLE DB Provider heap-based overflow (Nessus ID 216605)
DBatLoader恶意加载器的全面分析——典型加载器家族系列分析二
1.引言
随着网络攻击技术的不断演变,恶意代码加载器逐渐成为恶意代码执行的关键组成部分。此类加载器是一种用于将各种恶意代码加载到受感染的系统中的恶意工具,通常负责绕过系统安全防护,将恶意代码注入内存中并执行,为后续的特洛伊木马类型恶意代码的部署奠定基础。加载器的核心功能包括持久性机制、无文件内存执行以及多层次规避技术。
安天CERT将近几年历史跟踪储备的典型恶意加载器家族有关信息汇总成专题报告,在未来几个月依次发布,并持续追踪新的流行加载器家族。本项目专题将聚焦加载器技术细节,深入挖掘其在攻击链中的核心功能,包括其混淆技术、加密机制以及注入策略等。此外,我们也会不断完善自身安全产品能力,采取有效技术方案进一步提升针对加载器的识别率和准确率,帮助用户组织提前发现并阻止潜在威胁。
2.概述
DBatLoader加载器最初于2020年被发现,主要被用于投放包括Snake Keylogger、Formbook和Agent Tesla在内的多种恶意代码家族。DBatLoader加载器的加载过程分为两个阶段,其中第一阶段主要用于规避反病毒引擎的检测,并在内存中解密运行第二阶段载荷。在第二阶段过程中,DBatLoader加载器采用“DDR”(Dead Drop Resolvers)技术,从公共代码托管网站上下载并解密待投递的恶意代码家族,而后通过多种手法将其注入到其他程序内以实现隐蔽运行。
DBatLoader加载器通过不断更新其生存技巧来规避反病毒引擎的检测。它大量运用了混淆技术,从加密和隐藏特征两个维度对程序进行隐蔽处理。DBatLoader加载器使用异或加密和移位加密对字符串和不同阶段的载荷加密处理。为了提高隐蔽性,该加载器还采用了图片隐写术和在代码中穿插无用字符串的方法以隐藏恶意代码特征。除此之外,DBatLoader加载器还会将指定扩展名的文件加入Windows Defender白名单来规避查杀,以便实施后续攻击行为。
该加载器详细信息参见安天病毒百科[1]。
图2-1 长按识别二维码查看DBatLoader加载器详细信息
3.DBatLoader加载器生存技术举例分析
DBatLoader加载器为了逃避和绕过安全检测,使用了多种生存技术,其中包括:混淆技术、注入技术、提权技术、持久化技术和反调试技术。
3.1 混淆技术分析
为了减少文件特征,阻碍分析人员逆向分析,DBatLoader加载器采用了多种文件混淆技术,其中包括技术如下:穿插无用指令、图片隐写、脚本字符串拼接、载荷多层加密、去除文件魔术头、字符串加密、动态加载函数。
3.1.1 穿插无用指令
在DBatLoader加载器的每个阶段载荷中,均有大量重复的尝试hook AMSI(即Antimalware Scan Interface,Windows 反恶意软件扫描接口)的代码,这些代码使原本的程序执行流程变得分散,即增加了逆向分析的难度,又减少了程序执行流程本身带来的二进制特征。
图3-1 DBatLoader加载器使用大量重复的指令填充程序
3.1.2 使用图片隐写术
DBatLoader加载器通过图片隐写术,可以将恶意载荷信息写入到图片中,使其从计算机视角来看和普通图片别无二致,进而达到隐藏目标载荷的目的。当需要获取目标载荷时,该加载器通过特定的算法读取图片,从而将信息还原出来。
图3-2 DBatLoader隐写载荷后的图片
3.1.3 脚本字符串拼接
DBatLoader加载器通过将bat脚本指令进行分割,并在其中穿插无用变量,在运行时使用拼接变量的方式进行还原,以降低文件特征并实现干扰逆向人员分析的目的。
图3-3 DBatLoader加载器混淆过后的bat脚本
3.1.4 多层加密载荷
DBatLoader加载器通过多层加密载荷,以去除载荷特征并增加逆向难度。
图3-4 DBatLoader加载器加密函数
3.1.5 破坏文件特征
DBatLoader加载器通过故意在加密的载荷中去除一个字节以破坏载荷解密后的文件特征,去除的字节由加载器运行时还原,以避免载荷被解密后检测。
图3-5 DBatLoader加载器第一阶段解密后的载荷
3.1.6 加密字符串
DBatLoader加载器通过将部分字符串(如注入的程序名,自启动注册表路径等)进行加密以防止字符串被作为特征进行识别检测。
图3-6 DBatLoader字符串加密算法
3.1.7 函数动态加载
DBatLoader加载器通过调用GetProcAddress来动态加载函数以防止导入函数所带来的文件特征。
图3-7 DBatLoader加载器动态加载函数
3.2 注入技术分析
DBatLoader加载器提供了三种注入方式,分别为线程注入、APC注入和进程镂空,并且最终会根据载荷的配置文件选择注入方式。
其中调用的API如表3-1所示,DBatLoader加载器在注入过程中都尽量使用了ntdll.dll的导出函数,而不是直接使用kernel32.dll的导出函数,以减少调用链的长度,降低被hook的可能性。
表3-1 DBatLoader加载器注入过程使用的API
创建进程
CreateProcessAsUserW
WinExec
修改内存
NtOpenProcess
NtUnmapViewOfSection
ZwAllocateVirtualMemory
NtReadVirtualMemory
WriteVirtualMemory
RtlMoveMemory
执行载荷
NtCreateThreadEx
NtQueueApcThread
GetThreadContext
SetThreadContext
ResumeThread
3.3 提权技术分析
DBatLoader加载器为了绕过UAC实现提权,需要让程序在受信任的目录中执行,并且程序还需要带有有效的数字签名。
其中DBatLoader加载器为了在受信任的目录中执行,使用了模拟受信任目录技术。该技术将会创建一个新的目录,该目录和受信任的目录之间有一个空格的区别,但是却能欺骗UAC让其以为程序在受信任的目录中运行。
图3-8 DBatLoader加载器模拟的受信任目录
之后DBatLoader加载器使用了易受DLL劫持的可执行文件,该程序具有合法的数字签名并且能够自动提权,但是会优先加载同目录下的DLL。DBatLoader加载器通过这种白加黑的方式,绕过UAC的限制实现提权。
图3-9 DBatLoader加载器用于白加黑的白文件
3.4 持久化技术分析
DBatLoader加载器通过向HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run写入注册表项实现持久化。
图3-10 DBatLoader加载器写入注册表
3.5 反调试技术分析
DBatLoader加载器在第二阶段会通过IsDebuggerPresent和CheckRemoteDebuggerPresent检测是否有调试器的存在。
图3-11 DBatLoader加载器通过IsDebuggerPresent检测是否存在调试器
4.攻击流程
DBatLoader加载器主要通过钓鱼邮件进行传播。攻击者通过投递钓鱼邮件,诱导受害者运行邮件附件中的恶意程序加载器。当加载器运行时,该加载器会先从自身资源文件中读取包含第二阶段载荷的图片,通过图片隐写术进行解密并运行DBatLoader加载器第二阶段。在第二阶段中,加载器会从公共的文件托管网站下载加密的配置文件。之后DBatLoader加载器会根据该配置文进行持久化并篡改Windows Defender白名单。最后DBatLoader加载器会从配置文件中解密待投递的恶意代码家族并通过注入的方式运行。
图4-1 DBatLoader攻击流程
5.样本分析
5.1 样本标签
表5-1 二进制可执行文件
病毒名称
Trojan/Win32.DBatLoader
原始文件名
Crane Motor Specification,Docx.exe
MD5
23434BF113A4651076ECD2898A6C1069
处理器架构
Intel 386 or later processors and compatible processors
文件大小
1.15 MB (1,209,856字节)
文件格式
BinExecute/Microsoft.EXE[:X86]
时间戳
1992-06-19 22:22:17(Delphi程序默认时间戳)
数字签名
无
加壳类型
无
编译语言
Borland Delphi(2006)
VT首次上传时间
2024-10-14 04:26:54
VT检测结果
52/73
5.2 DBatLoader加载器第一阶段
DBatLoader加载器第一阶段中存在大量劫持AMSI API的函数的代码以规避反病毒引擎的扫描,但是此部分代码存在缺陷,该功能并未实现。
图5-1 DBatLoader加载器有缺陷的hook API实现
DBatLoader加载器第一阶段对下一阶段载荷采取了多层加密。该加载器首先从资源文件中加载包含下一阶段载荷的图片,并通过图片隐写术把加密的载荷读取出来。
图5-2 DBatLoader加载器读取资源文件
其中DBatLoader加载器会从图片中逐行以蓝绿红的顺序读取字节以获取隐写信息,其中图片隐写所占用的bit数记录在了读取的前3个字节上。随后该加载器通过隐写术的方式读取了32bit信息,用来获取加密载荷的总字节数。之后该加载器将继续从图片中读取信息直到获得全部的加密载荷。
图5-3 DBatLoader加载器读取隐写图片
随后DBatLoader加载器逐字节对第二阶段载荷加0x80并在载荷头部添加一个字符“M”成对第二阶段载荷的解密。
图5-4 DBatLoader加载器解密第二阶段载荷
最后DBatLoader加载器将二阶段载荷映射进内存并调用入口点进入第二阶段。
图5-5 DBatLoader加载器加载二阶段载荷
5.3 DBatLoader加载器第二阶段
DBatLoader加载器第二阶段通过在主函数逻辑中设置一个计时器来触发第二阶段恶意逻辑。
图5-6 DBatLoader加载器设置计时器
在DBatLoader加载器第二阶段中,有着和第一阶段一样的规避反病毒引擎逻辑,但是因为设计缺陷导致功能未能实现。
图5-7 第二阶段规避反病毒引擎逻辑
在DBatLoader加载器第二阶段,部分字符串被一种异或算法加密。当需要解密字符串时,加载器会先逐字符拼接形成一个异或密钥,随后加载器会逐字节地将加密字符串的低8位与密钥的低8位异或解密,以获得明文字符串。
图5-8 DBatLoader加载器解密字符串算法
在DBatLoader加载器第二阶段,程序会将要投递的载荷下载地址存放在第一阶段载荷当中。在第二阶段,DBatLoader加载器会在第一阶段载荷文件中搜索特定的字符串,以定位加密配置的位置。
图5-9 DBatLoader加载器获取加密配置
当获取到加密配置后,DBatLoader加载器会用配置中的一个整数用作解密密钥,解密加密的字符串,以获取投递目标载荷的下载地址。
图5-10 DBatLoader加载器解密载荷下载地址算法
之后DBatLoader加载器将通过WinHttpRequest对象下载投递的载荷。
图5-11 DBatLoader加载器下载载荷
当DBatLoader加载器下载载荷后,程序会base64解码后多次添加偏移量来解密载荷。
图5-12 DBatLoader加载器解密下载的载荷
随后DBatLoader加载器通过一个特定的字符串分割载荷,得到载荷的配置文件。当加载器解密配置文件后,会根据配置文件选择是否进行篡改反病毒引擎策略、持久化、线程注入、APC注入、进程镂空等操作。
图5-13 DBatLoader加载器读取配置文件
5.3.1 DBatLoader加载器篡改Windows Defender白名单
当配置文件中启动篡改Windows Defender白名单功能时,加载器会通过自身代码和释放的bat脚本来将特定文件扩展名加入白名单中。
图5-14 去混淆后的用于修改Windows Defender策略的脚本
DBatLoader加载器会创建一个路径中带有一个额外空格的C:\Windows \SysWOW64目录来模拟可信目录,随后会释放一个具有自动提权能力且易被DLL劫持的合法的easinvoker.exe用来提权。最后加载器会释放一个会被easinvoker.exe加载的恶意netutils.dll,该DLL会将exe、bat、pif程序加入Windows Defender白名单。
图5-15 netutils.dll中用于添加文件扩展名白名单的核心载荷
5.3.2 DBatLoader加载器通过设置自启动项实现持久化
当启用持久化功能时,DBatLoader加载器以配置文件中malware_filename作为文件名将自身复制到C:\Users\Public\Libraries\malware_filename.PIF,并在C:\Users\Public\下创建文件malware_filename.url,并将其加入到注册表HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下以实现自启动的功能。
图5-16 DBatLoader加载器创建的用于持久化的.url文件
如果启用了保存配置文件功能,DBatLoader加载器还会将下载的还未被解密的配置文件以malware_filename作为文件名保存到C:\Users\Public\Libraries\下,以供后续使用。
图5-17 DBatLoader加载器保存下载的配置文件
5.3.3 DBatLoader加载器执行目标载荷
DBatLoader加载器会尝试寻找系统中是否存在SndVol.exe,如果不存在则会注入程序到iexpress.exe。
图5-18 DBatLoader加载器选择注入的程序
随后DBatLoader加载器会将配置文件中的目标载荷多层解密,获得真实恶意载荷。
图5-19 DBatLoader加载器对恶意载荷的加密算法
之后DBatLoader加载器会根据配置文件,选择程序的注入方式。如果启用了APC注入功能,则DBatLoader加载器会通过APC注入方式注入到目标进程。
图5-20 DBatLoader加载器通过APC注入执行恶意代码
如果启用了线程注入功能,则DBatLoader加载器通过线程注入方式将载荷注入到目标进程。
图5-21 DBatLoader加载器通过线程注入执行恶意代码
如果APC注入和线程注入都未启用,则DBatLoader加载器通过进程镂空的方式将载荷注入到目标进程。
图5-22 DBatLoader加载器通过进程镂空执行恶意代码
通过解密分析,最终确定投递的目标载荷为Snake Keylogger,该键盘记录器家族曾在此前发布的分析报告中进行过详细分析[1],此处不宜赘述,感兴趣的读者可前往阅读。
图5-23 DBatLoader加载器投递的最终载荷
6.IoCs
IoCs
23434BF113A4651076ECD2898A6C1069
5D707EF2DB982821B0246CE6AA1300C1
6D23FE871B2064C6D13580A5745F23CB
CE875D76D02C456326D6381881281667
7.样本对应的ATT&CK映射图谱
图7-1 技术特点对应ATT&CK的映射
具体ATT&CK技术行为描述表:
表7-1 ATT&CK技术行为描述表
ATT&CK阶段/类别
具体行为
注释
持久化
利用自动启动执行引导或登录
通过添加注册表自启动项实现持久化
提权
滥用提升控制权限机制
通过模拟可信目录的方式进行提权
执行流程劫持
在提权的过程中通过劫持了easinvoker.exe执行流程
防御规避
规避调试器
第二阶段通过IsDebuggerPresent和CheckRemoteDebuggerPresent检测调试器
削弱防御机制
将部分文件扩展名加入Windows Defender白名单
删除信标
在提权结束后会清理提权使用的文件
混淆文件或信息
通过图片隐写术加密第二阶段载荷
使用多种古典加密算法加密载荷
部分字符串使用算法加密
动态解析API
提权脚本中使用大量无用字符进行混淆
进程注入
通过DLL注入、APC注入或进程镂空的方式投递目标载荷
8.防御建议
针对此类威胁,安天建议企业增强业务人员的安全意识,降低组织被攻击的可能性。企业员工日常应注意邮件使用,避免运行未知来源邮件附件或者访问邮件中可疑网络链接。
另外,终端作为安全防护的基石,建议企业在办公机、服务器等节点上部署企业级终端安全防护系统。面向终端设备,安天可为企业用户提供安天智甲终端防御系统,为终端提供病毒查杀、主动防御、勒索防护、主机管控、网络防护等多种能力,实现有效防御各类威胁。
8.1 智甲助力用户防御加载器威胁
经过测试,安天智甲终端安全系列产品(以下简称“智甲”)依托安天自研威胁检测引擎和内核级主动防御能力,可以有效查杀和防御本次发现病毒样本。
智甲可对本地磁盘进行实时监测,对新增文件自动化进行病毒检测,针对此次威胁,当用户通过接收邮件附件、微信传输、网络下载等方式将DBatLoader加载器存储至本地时,智甲会立即对该病毒进行告警并清除恶意文件,防止用户启动文件导致终端遭受攻击。
图8-1 发现病毒时,智甲第一时间捕获并发送告警
智甲还为用户提供统一管理平台,管理员可通过平台集中查看网内威胁事件详情,并批量进行处置,提高终端安全运维效率。
图8-2 智甲管理中心助力管理员实现高效的终端安全管理
9.安天澜砥威胁检测分析垂直大模型
安天澜砥威胁检测分析垂直大模型能对样本进行自动化分析,解析内容如下:
判定结果:
根据提供的日志,分析工具判定该文件为 Trojan.Win32.Bandan[Backdoor],即一个用于后门的特洛伊木马。
评估日志中的结果准确度:
准确度:95%
详细解释:
1.特征匹配:
○ 字符串匹配: 日志中多处出现与已知恶意字符串匹配的特征,例如:
■ "Delphi.",可能表明该文件是用Delphi编写的,这是一种常见的后门编写语言。
■ "mail.ru>",可能用于进行远程控制或信息窃取。
■ "Darkick",可能是恶意软件的作者或隐藏身份的标识。
■ "Trojan.Win32.Bandan",明确指出了该文件属于特定的后门类型。
○ 异常指令和调用: 日志中包含大量的汇编指令和特定的API调用,这些调用通常用于隐藏活动、监听网络流量或执行命令。
■ 例如,"FF 95 E4 B2 9E B2 C0 CB EB EB 89 82 E7 BC E4 80" 等,可能涉及代码混淆或指令重写。
■ "87 00 00 07 07 07 00 00 00 80 BB BB 00 00 00 00 00 80 00 07 07 07 00 00 80 33 00 00 00 00 00 00",可能是代码段的填充或异常处理。
■ "28 2D 2F 29 31 31 32 31 32 2D 32 34 2D 33 37 29 49 46 53 54 52 56 59 51 5B 62 4F 63 64 5F 67 67 67 60 67 52 63 69 55 67 6A 60 7B 84 79 95 96 92",可能涉及数据加密或解密操作。
2.异常行为特征:
○ 代码混淆: 日志中多次出现大量的重复或混淆的指令,如 "FF 95 E4 B2 9E B2 C0 CB EB EB 89 82 E7 BC E4 80",这表明代码可能经过混淆处理,隐藏真实意图。
○ 异常指令序列: 多次出现的异常指令序列和不规则的指令组合,可能用于绕过安全检测或隐藏恶意功能。
○ 多线程和进程控制: 日志中提到的多线程创建和进程管理,可能用于建立隐藏的后门会话或执行后台任务。
3.文件结构分析:
○ 大量数据段和代码段: 日志显示文件包含大量的数据段和代码段,这些段可能被恶意软件用于隐藏或加载恶意代码。
○ 异常的段偏移和大小: 多处出现异常的段偏移和大小,如 "FF 95 E4 B2 9E B2 C0 CB EB EB 89 82 E7 BC E4 80",可能用于动态代码加载或执行。
4.可疑的API调用:
○ 网络通信: 多次出现与网络通信相关的API调用,如 "socket"、"connect"、"send" 等,可能用于建立远程连接或数据传输。
○ 进程操作: "CreateRemoteThread"、"OpenProcess" 等调用,可能用于在远程进程中注入恶意代码或建立后门会话。
5.文件特征:
○ 异常的文件大小: 文件大小为 1,209,856 字节,与典型的可执行文件大小相比,可能表明该文件进行了压缩或加密,以逃避检测。
○ 特征片段缺失: 多处出现 ?? 表示未被选中作为特征使用,可能表示这些数据被排除在分析之外。
• 高准确度(95%)基于日志中明确的恶意字符串、异常指令和API调用,以及文件特征的匹配,系统认为该文件具有高风险。
• 低误报率: 由于该判定基于已知的恶意特征,较少受到误报可能,但不排除极少数极不常见的变种被误判的可能性。
结论:
基于上述特征匹配和行为分析,分析工具判定该文件为 Trojan.Win32.Bandan[Backdoor],其行为特征与已知的后门木马行为高度一致。日志中的检测结果准确度较高,建议对该文件进行进一步的隔离和分析。
准确度解释:
按照国标草案给出威胁分类为Trojan.Win32.Bandan,自动提取特征生成的YARA规则如下:
rule Trojan.Win32.Bandan:Trojan
{
meta:
description = "这是一段由 VILLM V2 模型生成的 YARA 规则。用于检测Trojan.Win32.Bandan"
strings:
$a = {FF FF FF FF 01 00 00 00 ?? 00}
condition:
#a > 100
}
安天澜砥威胁检测分析垂直大模型是国内首个通过国家网信办备案的威胁检测生成式算法。模型基于安天赛博超脑20余年积累的海量样本特征工程数据训练而成,训练数据包括文件识别信息、判定信息、属性信息、结构信息、行为信息、主机环境信息、数据信息等,支持对不同场景下向量特征进行威胁判定和输出详实的知识理解,形成应用不同需求和场景的多形态的检测方式,提升后台隐蔽威胁判定能力,进一步为安全运营赋能。
图9-1 安天澜砥威胁检测分析垂直大模型样本分析结果
参考资料
[1]. 安天.Trojan/BAT.DbatLoader病毒详解与防护-计算机病毒百科[R/OL].(2025-03-14)https://www.virusview.net/malware/Trojan/BAT/DbatLoader
[2]. 安天.利用OneNote文档投递Snake Keylogger的钓鱼活动分析[R/OL].(2023-04-18)https://www.antiy.cn/research/notice&report/research_report/20230418.html
台湾“绿斑“攻击组织使用开源远控木马的一组钓鱼攻击分析
1.概述
2024年下半年,安天应急响应中心跟踪到“绿斑”组织[1]针对我国特定行业目标的APT攻击活动。攻击者向目标单位的官方账号发鱼叉式钓鱼邮件,引导目标点击链接访问伪装成某单位的恶意网站,该网站主动跳转下载,诱导受害者保存并执行伪装成PDF图标的下载器程序,下载器负责获取和解密伪装成视频后缀的恶意载荷在内存中运行。截止目前观察到的恶意载荷主要是Sliver远控木马[2]等开源的命令与控制框架,攻击者以此对目标开展长期的主机控制、网络横向移动和窃密活动。安天CERT根据攻击事件关注目标领域、钓鱼流程的技术特点,结合历史分析数据信息和开源情报,综合判断攻击活动的来源为中国台湾省当局“绿斑”攻击组织。2018年9月,安天曾经发布过该组织的网络攻击活动报告“‘绿斑’行动——持续多年的攻击”[1],揭露了该组织从2007年开始的攻击活动。
基于安天去年下半年已经协助相关行业管理部门完成相关事件进行了有效通报处置,安天CERT决定正式公布本报告。相关攻击活动的特点如下表:
表1-1 绿斑攻击活动特征
攻击启示时间
2024年3月(开始攻击筹划准备)
攻击目标
我国特定行业领域
攻击意图
持续控制、窃密
诱饵类型
伪装成PDF的EXE可执行文件
攻击手法
鱼叉式钓鱼邮件、文件图标伪装、开源远控
开发语言
C#语言、Go语言
武器装备
开源远控Sliver
2.攻击活动分析
2.1 恶意网站分析
攻击者通过邮件诱导目标访问恶意网站,网站伪装成某管理局的政府信息公开网页:
图2-1 恶意网页案例
网页加载完毕后自动跳转,开始下载诱饵下载器文件:
图2-2 恶意网页跳转下载代码案例
2.2 诱饵下载器分析
诱饵下载器是图标伪装成PDF文档的C#程序,部分样例对时间戳进行篡改,文件名以领导关于党纪事件发言、个人身份证件信息等主题诱导目标点击执行,以拓线样本为例:
图2-3 诱饵下载器案例
表2-1 诱饵下载器样本标签
病毒名称
Trojan/Win64.MSlL.Wagex
原始文件名
***身份证扫描.exe
MD5
3BD15B16A9595D20C0E185AB1FAE738F
处理器架构
Intel 386 or later processors
文件大小
116.50 KB (119,296 bytes)
文件格式
BinExecute/Microsoft.EXE[:X86]}
时间戳
2024:03:12 02:20:07 [UTC+8]
编译语言
C#
加壳类型
无
下载器的代码内容被混淆处理,解混淆前后样本Main函数对比如下图:
图2-4 解混淆前后的主函数代码
主函数首先调用smethod_2方法从链接“https://128.199.134.3/mp4/mov.mp4”下载伪装成视频文件的加密载荷数据。
图2-5 下载伪装成视频文件的加密载荷
然后调用smethod_0函数使用 AES 算法解密下载得到的mov.mp4字节数组。解密使用到的Key: “LgUmeMnmUpRrCCRA”,IV:“nStxRW4o6TNHcKBm”。其中Key必须与加密时使用的密钥完全一致,才能正确解密数据。IV是一个随机或伪随机的值,用于确保相同的明文在每次加密时生成不同的密文。
图2-6 解密载荷数据
调用smethod_1方法,使用 GZipStream 解压缩AES 算法解密得到的字节数组。
图2-7 解压缩载荷数据
调用smethod_3方法,使用多个委托和非托管代码来处理smethod_1方法解压缩得到的字节数组,以此最终解密得到载荷,并将其执行。
图2-8 处理解压缩得到的载荷数据
2.3 开源远控载荷分析
伪装成MP4视频文件后缀名的载荷数据内容被完全加密,经过上述解密解压缩流程后得到的载荷具有反调试功能,基于初始入口、主要功能等多个代码位置的对比同源,以及C2控制上线通讯流量中Client Hello数据包的JA3指纹(19e29534fd49dd27d09234e639c4057e),可以发现载荷是由知名的开源红队命令与控制框架项目Sliver生成的。
图2-9 Client Hello数据包的JA3指纹与Sliver远控特征一致
根据开源代码项目介绍[2],Sliver是一个类似于CobaltStrike的开源红队命令与控制模拟框架,可跨Windows、Linux和MAC系统平台,支持基于 Mutual TLS (mTLS)、WireGuard、HTTP(S) 和 DNS等多种网络协议通讯方式,具备类似CobaltStrike和Metasploit等工具的大多数后渗透阶段功能。
表2-2 Sliver远控框架特性
特性
说明
跨平台支持
支持MacOS、Windows和Linux系统。
C2 通信
支持通过Mutual TLS (mTLS)、WireGuard、HTTP(S) 、DNS进行命令与控制通信。
动态代码生成
在编译时进行代码混淆,增强安全性。
多种Payload
支持分阶段和无阶段的Payload。
脚本化
可以使用JavaScript/TypeScript或Python进行完全脚本化。
内存执行
支持在内存中执行.NET程序集和COFF/BOF加载器。
其他功能
包括进程迁移、文件窃取、进程注入、用户令牌操作等后渗透功能。
3.威胁框架视角的攻击映射
本次系列攻击活动共涉及ATT&CK框架10阶段的25个技术点,具体行为描述如下表:
表3-1 本次绿斑组织攻击活动的技术行为描述表
ATT&CK阶段
具体行为
注释
侦察
搜集受害者身份信息
搜集得到目标的身份信息
搜集受害者网络信息
搜集得到目标的办公邮箱账号
搜集受害者组织信息
搜集得到目标的办公单位信息
资源开发
获取基础设施
注册域名和服务器
能力开发
开发恶意网站,诱饵程序、远控平台及载荷
建立账户
注册用于发送钓鱼邮件的发件账号
初始访问
网络钓鱼
通过鱼叉式钓鱼邮件发起攻击
执行
诱导用户执行
通过诱导用户点击诱饵程序开始木马执行流程
防御规避
规避调试器
远控内存载荷具备反调试能力
仿冒
恶意网站和诱饵程序皆有仿冒规避
发现
发现远程系统
Sliver远控可测探内网远程系统
扫描网络服务
Sliver远控可扫描远程系统的网络服务
发现系统信息
Sliver远控可查询系统版本信息
发现系统网络配置
Sliver远控可查询系统网络配置信息
发现账户
Sliver远控可查找系统账户信息
发现文件和目录
Sliver远控可获取文件和目录信息
发现系统所有者/用户
Sliver远控可查询系统的用户和权限组信息
发现进程
Sliver远控可查询系统的当前进程信息
收集
收集本地系统数据
Sliver远控可收集本地系统的版本、账户等数据
输入捕捉
Sliver远控可进行输入捕捉
屏幕捕获
Sliver远控可进行屏幕捕获
命令与控制
使用应用层协议
Sliver远控载荷使用应用层协议实现命令控制
编码数据
Sliver远控载荷命令控制流量中会加密编码数据
数据渗出
使用C2信道回传
Sliver远控载荷使用固定C2信道回传数据
影响
操纵数据
攻击者可基于Sliver远控操纵受害主机数据
将涉及到的威胁行为技术点映射到ATT&CK框架如下图所示:
图3-1 本次绿斑攻击活动对应ATT&CK映射图
4.小结
基于上述的分析,安天CERT研判这是来自台湾省当局背景的“绿斑”APT组织的攻击活动。该组织在2018年被安天正式命名并曝光,并被央视焦点访谈[3]报道。攻击者对特定行业的目标,构建有较强社工欺骗性的素材,进行鱼叉式钓鱼攻击,载荷经过多重伪装加密,最终实现开源远控框架的木马植入,攻击手法,具有明显的针对性。
应对相关攻击需要构建好终端安全基石加强防护,可以依托邮件安全、网络流量监测、终端防护、XDR联动分析、网关封堵的构成防御层次,特别是使用带有有效杀毒和主防能力与较强反钓鱼功能的终端安全防护软件。基于其攻击的社工特点和不停随处吐口香糖式的攻击粘性,提高安全意识也是防范的重要环节。
附录一:参考资料
[1] 安天.“绿斑”行动——持续多年的攻击[R/OL].(2018-09-19)https://www.antiy.cn/research/notice&report/research_report/20180919.html
[2] BishopFox/sliver[R/OL].(2025-02)https://github.com/BishopFox/sliver
[3] 《焦点访谈》 20181007 信息安全:防内鬼 防黑客[R/OL].(2018-10-07)http://tv.cctv.com/2018/10/07/VIDEHBYLGmnR5LoYZawu3dZc181007.shtml
[4] 关键基础设施安全应急响应中心.针对绿斑组织近期APT攻击活动的分析报告[R/OL].(2020-08-12)https://mp.weixin.qq.com/s/275EYNAjOGLn19ng56-czA
附录二:IoCs
IoCs
61C42751F6BB4EFAFEC524BE23055FBA
7F0DBA2DB8C3FDD717D83BB693B3ADE9
67D10E267C5EBF2DE55D086D0B2393A6
3BD15B16A9595D20C0E185AB1FAE738F
7BB36B1EBCB43172B5188AD61946D2D0
caa***n[.]com/auto-download.zip
158.247.***.***/mp4/ads.mp4
128.199.***.***/mp4/mov.mp4
Caa***n.com
Caa***n.org
Ba***cingcloud.com
165.22. ***.***
158.247.***.***
128.199. ***.***
CVE-2024-37322 | Microsoft SQL Server Native Client OLE DB Provider heap-based overflow (Nessus ID 216605)
CVE-2024-37326 | Microsoft SQL Server Native Client OLE DB Provider heap-based overflow (Nessus ID 216605)
CVE-2024-37327 | Microsoft SQL Server Native Client OLE DB Provider heap-based overflow (Nessus ID 216605)
CVE-2024-37328 | Microsoft SQL Server Native Client OLE DB Provider heap-based overflow (Nessus ID 216605)
CVE-2024-37323 | Microsoft SQL Server Native Client OLE DB Provider integer overflow (Nessus ID 216605)
CVE-2024-37324 | Microsoft SQL Server Native Client OLE DB Provider heap-based overflow (Nessus ID 216605)
CVE-2024-37329 | Microsoft SQL Server Native Client OLE DB Provider heap-based overflow (Nessus ID 216605)
mySCADA myPRO 严重漏洞或致攻击者控制工业控制系统
MEGR-APT: A Memory-Efficient APT Hunting System
MEGR-APT MEGR-APT is a scalable APT hunting system to discover suspicious subgraphs matching an attack scenario (query graph) published in Cyber Threat Intelligence (CTI) reports. MEGR-APT hunts APTs in a twofold process: (i) memory-efficient...
The post MEGR-APT: A Memory-Efficient APT Hunting System appeared first on Penetration Testing Tools.
HelloGookie
SessionProbe: assist in evaluating user privileges in web applications
SessionProbe SessionProbe is a multi-threaded pentesting tool designed to assist in evaluating user privileges in web applications. It takes a user’s session token and checks for a list of URLs if access is possible,...
The post SessionProbe: assist in evaluating user privileges in web applications appeared first on Penetration Testing Tools.
SharpADWS: Active Directory reconnaissance and exploitation for Red Teams
SharpADWS SharpADWS is an Active Directory reconnaissance and exploitation tool for Red Teams that collects and modifies Active Directory data via the Active Directory Web Services (ADWS) protocol. Typically, enumeration or manipulation of Active...
The post SharpADWS: Active Directory reconnaissance and exploitation for Red Teams appeared first on Penetration Testing Tools.