威胁情报 | 海莲花 APT 组织模仿 APT29 攻击活动分析

2023-12-04 10:28:58 浏览数 (1)

作者:知道创宇404高级威胁情报团队

时间:2023年11月30日

1. 概述

参考资料

2023年11月,知道创宇404高级威胁情报团队成功捕获到海莲花组织最新的攻击样本。该样本以购买BMW汽车为主题,诱导攻击目标执行恶意文件。与此同时,该攻击与今年APT29的诱导主题和木马加载流程有相似之处,初步分析表明这可能是攻击者故意模仿的结果。

2. 攻击释放链

参考资料

攻击释放链

3. 样本功能综述

参考资料

原始样本为“BMW_2023年机构及院士销售价格框架.pdf.lnk”。该文件内置了四部分内容,分别是:lnk参数、诱饵文档、dropper程序和hta文件,四部分内容通过相互配合完成既定功能目标。

原始LNK文件

整体指令流程为:lnk参数执行hta文件,hta文件执行dropper程序&诱饵文档,Shellcode加载执行最终Cobalt_Strike RAT程序,各部分功能细节描述如下:

3.1 LNK文件

LNK文件为原始载荷,用于整体释放链的启动工作,通过ShellExec执行CMD指令,其中CMD指令的功能是:

1. 确保360安全卫士相关文件不存在

2. 将自身拷贝到%USERPROFILE%NTUSER.DAT{9a91c082-225a-4f2c-9a80-fc75895096f0}.TM.alf,并通过mshta.exe进行启动。拷贝逻辑根据是否存在原始文件名称的LNK文件区分为两种,若是原始文件名称的LNK文件存在则直接拷贝;若不存在则遍历%USERPROFILE%路径查找原始文件名称的LNK文件,找到之后将文件拷贝到%USERPROFILE%NTUSER.DAT{9a91c082-225a-4f2c-9a80-fc75895096f0}.TM.alf并通过mshta.exe启动。该部分的区分代码可用于以下功能的检测:

  • 文件名称是否被更改
  • 可能原始落地文件在%USERPROFILE%路径下

两个LNK文件参数基本一致

3.2 NTUSER.DAT{9a91c082-225a-4f2c-9a80-fc75895096f0}.TM.alf

该文件存放于LNK文件尾部,通过mshta.exe程序进行启动。根据行为猜测,mshta.exe通过定位标记点启动HTA,故不需要通过提取HTA文件来启动HTA文件。

根据代码来看,HTA文件存在四部分功能。其分别为:定位并保存白加黑程序、定位并保存诱饵文档、运行诱饵文档、修复白加黑程序,各功能模块描述如下:

1. 定位并保存白加黑程序

首先加载自身(NTUSER.DAT{9a91c082-225a-4f2c-9a80-fc75895096f0}.TM.alf)并将文件游标设置为 offset:11598 读取249374大小数据,保存读取的数据至%appdata%LenovodevicecenterextendsmodulesshowdeskLenovoDesk.exe,接着读取1032190大小数据保存至%appdata%LenovodevicecenterextendsmodulesshowdeskQuickDeskBand.dll

设置游标并读取白加黑内容&文档内容

白加黑程序起始地址

2. 定位并保存诱饵文档

保存诱饵文档数据至本地%temp%BMW_2023年机构及院士销售价格框架.pdf,启动BMW_2023年机构及院士销售价格框架.pdf文件。

诱饵文件

3. 运行诱饵文档

运行诱饵文档内容

4. 修复白加黑两个程序,添加MZ文件头

修复白加黑程序

3.3 诱饵文档

诱饵文档内容如下:

3.4 白加黑&COBALT_STRIKE Beacon

先前保存的白加黑程序用于解密并启动Cobalt_Strike,白程序的启动在lnk参数部分实现:

启动白文件

白文件信息

白文件(LenovoDesk.exe)在运行后,通过加载QuickDeskBand.dll并调用其ShowBatteryGauge函数:

加载黑文件

黑文件加载后,其DllMain函数中执行解密操作,解密出后续的载荷。同时,通过ShowBatteryGauge导出主要功能,将LenovoDesk.exe写入注册表的启动项中,实现自动启动。

设置run启动项

黑文件QuickDeskBand.dll 被加载后,进入 DllMain 函数中执行初始化。在 DllMain 中,首先会获取主程序路径,然后使用该路径的后15位字符作为密钥来解密相关数据。攻击者使用当前运行主程序的后15位字符作为解密key,在一定程度上能够反沙箱和反分析调试,只有当主程序名为LenovoDesk.exe时才能够解密出后续的点分十进制数据。如果分析人员以任意文件名进行加载,则无法正确解密后续的CS载荷。

使用文件名作为key解密数据

解密后的数据为IP点分十进制数据,通过 RtlIpv4StringToAddressA 函数将点分十进制IP地址转化为HEX地址形式数据,HEX地址形式的数据为COBALT_STRIKE数据,之后通过设置枚举字体的回调立即启动Cobalt_Strike.

解码CS数据

Cobalt_Strike是一款付费渗透测试产品,允许攻击者在受害机器上部署名为“Beacon”的代理。Beacon 为攻击者提供了丰富的功能,包括但不限于命令执行、按键记录、文件传输、SOCKS 代理、特权升级、mimikatz、端口扫描和横向移动。Beacon 是内存中(无文件)的,因为它由无阶段或多阶段的 shellcode 组成,一旦通过利用漏洞或执行 shellcode 加载程序进行加载,就会反射性地将自身加载到进程的内存中,而不会触及磁盘。

支持通过 HTTP、HTTPS、DNS、SMB 命名管道以及正向和反向TCP进行C2和分段,信标以菊花链式连接。Cobalt Strike带有一个用于开发shellcode加载器的工具包,称为 Artifact Kit。

由于该平台强大的功能及兼容性,许多APT组织也将CS列入自己的武器库中,在以往的APT32攻击活动中我们也经常发现其使用CS作为RAT程序。

文件最终的CS Beacon关键配置信息如下:

CS Beacon 配置信息

从Metadata元数据中可发现其HTTP Header围绕dhgate相关进行伪造。

  • Host: www.dhgate.com
  • Host: shoppingcart.dhgate.com

Dhgate(敦煌网)是一家国内的跨境小额外贸B2B电商平台,由世纪富轩科技发展有限公司运营,名字来源于丝绸之路重镇敦煌市。

4. IOC

参考资料

  • 38e227fa505dfcf5ccda226eb81c97ad
  • 2bc84a0b16d76ffa04acd3ee423cad8dbe6b4fcc
  • acf612349fb6ee5d88e2a7da3d39afb3e0699a4ad95ab6a5ff708353498ce76d
  • f3a79156daa75a2c09c46309f68c3de7
  • c42e5fd854a1d5556bf1f26e50143dfccc2acc55
  • b05693f7a6b1f3d323ae65ca2e77115ff8d9ed233c9f192a49d4bbdea7d6be7d
  • dd502ea523877af9d4b819c17b4079a8
  • 0bc0dd0e6ece375decaa858702c7df5f17c11f58
  • db0e5a869b63f4ee5ce17e58a35b42ecb9889f9ab4fb7d2d591ff029a0363751
  • 08efe8c1385e8f77a510aced92392afb
  • 8ee66b0f2b08e35c845d38164969072a8a22a87b
  • 0241b90dff6b2c76bcae2c50ff1b4a1d8957ffedd6b316ec9d4f0d454748959b

5. 关联分析

参考资料

根据公开报告(链接如下),可以得知 APT29 也使用BMW汽车购买相关主题文档攻击过多国外交官。

  • https://unit42.paloaltonetworks.com/cloaked-ursa-phishing/
  • https://www.mandiant.com/resources/blog/apt29-evolving-diplomatic-phishing

木马加载流程如下:Html -> iso -> link->恶意dll文件->shellcode,其中link文件到恶意dll加载shellcode部分与此次攻击非常类似。

0 人点赞