HVV 样本:一个只能在 x64 中运行的 x32 Cobalt Strike

 

概述:

该样本外层是一个 go 语言 loader 并且具有 UPX 外壳,中层是一个 downloader,最终的 payload 是 CobaltStrike 的核心 beacon.dll 模块。与普遍的 beacon.dll 运行方式不同的是该 beacon.dll 并不直接与 C2 直接进行通信,而是通过命名管道经由 downloader 与 C2 进行通信,并且由于其采用的反调试、反 HOOK 技术使其只能在 wow64 环境下运行。

 

运行流程:

 

详细分析:

1,该样本使用超长文件名将自身伪装成 docx 文件,经过脱壳后分析发现是一个 go 语言 loader 程序,该程序函数名经过混淆。

脱壳后样本信息。

混淆后的函数名,例:

2,loader 程序的核心功能包括释放一个 docx 文件并打开、转移自身、执行携带的 downloader 程序。

将自身重命名为 “C:\Users\Public\telegram.txt”。

创建与当前程序同名的文档并打开用以迷惑用户。

加载并执行以字符形式存储在自身中的 downloader 程序。

字符形式存储的 downloader。

3,downloader 程序是使用反射加载技术的 dll 文件,其 dos 头与反射加载函数与 CobaltStrike 的核心 beacon.dll 模块十分的相识。

文件信息。

文件 dos 头部特征。

反射加载函数。

关键函数中使用大量的 jmp 指令进行反分析。

4, downloader 首先解密 C2 地址然后使用了多种协议与 C2 进行通信。

C2 地址存储在 RVA 4D18C 处,解密方式如下。

首先使用 ICMP 协议。

发送数据包括 PID。

通信状态判断。

然后是 UDP 协议。

发送数据是随机 [0-9] 13 个字符。

通信状态判断。

然后是 TCP 协议。

发送的数据包括当前进程 PID 和 CONNECT 字符串以及加密通信数据的 key。

例:

通信状态判断。

最后是 http 协议。

发送的数据包括一个随机的用户 ID (UID)、 CONNECT 字符串以及加密通信数据的 key。

通信状态判断。

5,与 C2 通信成功后,则继续使用相应的协议从 C2 下载 payload 并执行之。

以 http 协议通信成功为例,其会向 C2 发送 “FFFF008” 指令与 UID,并从 C2 获得 payload。

获得数据,例:

执行 payload 并使用管道与之通信。

依次调用了以下这组函数实现了 payload 的执行,在执行 payload 时使用的反调试、反 HOOK 技术使其更隐蔽,但是也限制了它只能在 wow64 的环境中执行。

ZwAllocateVirtualMemory
ZwWriteVirtualMemory
ZwProtectVirtualMemory
ZwCreateThreadEx

以其中的 ZwAllocateVirtualMemory 函数调用为例,首先其通过函数名 hash 获得 ZwAllocateVirtualMemory 的调用号,然后填充该函数所需参数,最后直接调用了 wow64cpu!KiFastSystemCall 函数切换到 x64 模式执行并进入 R0,这种调用方式越过了 WOW64 层中的 32 位 syscall stub 存根函数,实现了反调试、反 HOOK。

由于 wow64cpu!KiFastSystemCall 函数的地址是通过 TEB->WOW32Reserved 获得的,而该值在 x86 系统中为空,所以 payload 只能在 x64 位系统中得到执行。

KiFastSystemCall 通过段选择器 0x33 切换到 x64 模式

计算函数名 hash。

python 实现:

6,经过分析发现 payload 是CobaltStrike 的核心 beacon.dll 模块,

基本信息。

配置信息位于 0x160010 处,解密 key = 0xDD。

其运行后将创建用于与 downloader 通信的命名管道。

数据获取与执行。

使用 BeaconEye 提取出的配置信息如下。

 

关于我们

360沙箱云是 360 自主研发的在线高级威胁分析平台,对提交的文件、URL,经过静态检测、动态分析等多层次分析的流程,触发揭示漏洞利用、检测逃逸等行为,对检测样本进行恶意定性,弥补使用规则查杀的局限性,通过行为分析发现未知、高级威胁,形成高级威胁鉴定、0day 漏洞捕获、情报输出的解决方案;帮助安全管理员聚焦需关注的安全告警,过安全运营人员的分析后输出有价值的威胁情报,为企业形成专属的威胁情报生产能力,形成威胁管理闭环。解决当前政企用户安全管理困境及专业安全人员匮乏问题,沙箱云为用户提供持续跟踪微软已纰漏,但未公开漏洞利用代码的 1day,以及在野 0day 的能力。

360混天零实验室成立于2015年,负责高级威胁自动化检测项目和云沙箱技术研究,专注于通过自动化监测手段高效发现高级威胁攻击;依托于 360 安全大数据,多次发现和监测到在野漏洞利用、高级威胁攻击、大规模网络挂马等危害网络安全的攻击事件,多次率先捕获在野利用 0day 漏洞的网络攻击并获得厂商致谢,在野 0day 漏洞的发现能力处于国内外领先地位,为上亿用户上网安全提供安全能力保障。

(完)