查看原文
其他

APT-C-28(ScarCruft)组织利用恶意文档投递RokRat攻击活动分析

高级威胁研究院 360威胁情报中心 2023-05-19

APT-C-28  ScarCruft

APT-C-28组织,又名ScarCruft、APT37(Reaper)、Group123,是一个来自于东北亚地区的境外APT组织,其相关攻击活动最早可追溯到2012年,且至今依然保持活跃状态。APT-C-28组织主要针对韩国等亚洲国家进行网络攻击活动,针对包括化学、电子、制造、航空航天、汽车和医疗保健等多个行业,其中以窃取战略军事、政治、经济利益相关的信息和敏感数据为主。同时,RokRat是基于云的远程访问工具,从2016年开始一直被APT-C-28组织在多个攻击活动中使用。

近期,360高级威胁研究院捕获了APT-C-28组织假借“付款申请表”等恶意文档向目标投递RokRat恶意软件。本次攻击活动与2021年公开威胁情报披露APT-C-28组织利用VBA自解码技术注入RokRat攻击活动的流程基本一致[1]。在本次攻击活动中,我们发现的初始样本是伪装成“付款申请表”的恶意文档,诱导用户启用宏后下载并执行RokRat恶意软件。不过结合以往公开威胁情报信息[2],此次攻击活动初始载荷应该是钓鱼邮件。

 一、受影响情况  

我们捕获的恶意文档内容用韩语编写,攻击者目标应该是韩国用户。

 二、攻击活动分析  

1.攻击流程分析  

我们最初捕获的恶意载荷是恶意文档,不过根据以往公开威胁情报信息显示,初始样本应该是恶意邮件[2]。当用户启用恶意文档中的宏代码后,会从Macro1的硬编码数据中动态解密出第二个宏代码Macro2。Macro2将硬编码的第一阶段Shellcode注入到Notepad.exe中,之后从攻击者控制的云服务下载加密载荷并对其解密,得到第二阶段Shellcode,最后Shellcode解密硬编码数据获得RokRat恶意软件。

图 1 攻击流程图

2.载荷投递分析  

1.1.载荷投递方式  

结合以往公开威胁情报信息,我们猜测本次攻击活动初始载荷应该是恶意邮件,遗憾的是,我们只捕获了恶意文档,通过恶意文档中的宏代码投递后续载荷。

1.2.恶意载荷分析   

MD5

BF757D55D6B48EC73851540CA7FE9315

SHA1

8A50A4EE479D9BA2F5525FA899420B30296E3ED8

SHA256

12ECABF01508C40CFEA1EBC3958214751ACFB1CD79A5BF2A4B42EBF172D7381B

文件类型

MS Word Document

文件名

사례비_지급의뢰서.doc

攻击者向目标投递“付款申请表”相关信息的诱饵文档,诱导用户启用恶意宏代码。当用户启用宏后,首先执行第一阶段宏代码Macro 1。

图 2 恶意文档示例

第一阶段Macro 1  

默认情况下,MS Office禁止动态修改VBA源代码。为了实现动态执行宏,攻击者需要绕过VB对象模型(VBOM)。Macro1为了检查它是否可以绕过VBOM,会查看是否可以访问VBOM。首先检查对VBProject.VBComponent的读取访问。如果触发异常,则意味着需要绕过VBOM。如果没有异常,则意味着VBOM已被绕过,可以动态提取其宏代码Macro2;

图 3 修改注册表绕过VBOM
之后Macro1创建名称为“Geminimtv18n”的互斥体,确保恶意功能唯一执行;
为了执行自解码过程,创建了一个新的 Application对象来打开自己,并以不可见的方式将当前文档加载到其中,重新执行宏代码。如果 VBOM 已经被绕过,函数Init将被调用,提供加密的宏代码;

图 4 加密的宏代码
最后判断目标杀毒引擎是否存在,不存在则解密并执行宏代码Macro2。

1)C:\Windows\avp.exe(卡巴斯基反病毒软件)

2)C:\Windows\Kavsvc.exe(卡巴斯基反病毒软件)

3)C:\Windows\clisve.exe(ViRobot反病毒软件)

图 5 动态解密宏代码

第一阶段Macro 2  

解密出的Macro2将第一阶段Shellcode注入到notepad.exe中执行。

图 6 注入Shellcode

3.攻击组件分析  

第一阶段Shellcode  

第一阶段Shellcode首先从攻击者控制的云服务获取加密载荷;

图 7 从云服务获取加密载荷
在获取加密载荷后,用加密载荷的第一个字节XOR后面数据,解密出第二阶段Shellcode并执行。

图 8 解密出第二阶段Shellcode

第二阶段Shellcode  

第二阶段Shellcode首先利用IsDebuggerPresent函数和GetTickCount函数反调试,之后从偏移0xA62加密数据处解密出PE文件,解密的PE文件是新版本的RokRat木马。最后将RokRat加载到内存后跳转到入口点执行。

图 9 跳转到PE入口点执行

第三阶段RokRat分析   

MD5

752F1932D21F8D95E35B6778DDEFBC79

SHA1

0EE5120ECD0E8F07CB7E2AF11C9D403D01ACE38F

SHA256

9970E502A2DB3CECB5109B28D6F26E004F73D9CC64D5A6C75A91D66514576D64

文件类型

PE32 Executable

编译时间

2022-12-22  03:06:16

我们此次捕获的RokRat编译日期是2022年12月22日,应该是该组织目前使用的新版本的RokRat。和目前已知的同类型的攻击活动中的2019年和2020年编译的样本对比做了部分改动,我们在下文阐述其主要恶意功能和变动。
  • 反虚拟机:检查 VMWare 相关文件。
  • 反调试:和以往的RokRat一样,多处使用nop技术(nop dword ptr [eax+eax+00h])来执行反调试。nop dword ptr [eax+eax+00h],是一个五字节的 NOP: 0x0F1F440000,但是部分调试器未能正确支持此操作码。
  • 检测AV:RokRat(2022)在获取目标主机进程列表的同时,也检测当前主机是否运行360安全卫士相关进程,如果当前系统运行了360Tray.exe进程,则后续部分恶意功能不会执行。
  • 识别计算机类型:RokRat使用以下注册表项来获取计算机类型:HKLM\System\CurrentControlSet\Services\mssmbios\Data\SMBiosData。获取的系统制造商值可用于识别计算机类型。
  • 屏幕截图:RokRat获取屏幕截图,保存在tmp文件中,后续会上传到攻击者控制的云服务。
  • 收集系统信息(用户名、计算机名、BIOS)。
  • 文件窃取:窃取目标系统的文件。
  • 获取磁盘文件信息:遍历所有磁盘内文件信息,保存至tmp文件。
  • 命令执行:执行从云服务获取的命令。
  • 获取载荷并执行:RokRat可以获取攻击者下发的下一阶段载荷命名为“KB400928_doc.exe”并执行。
  • 通过CMD命令获取系统信息:RokRat解密所要执行的cmd命令,获取系统信息例如网络信息等。
  • 云服务:在RokRat(2022)中,攻击者使用了Dropbox、Pcloud和Yandex三种云服务来与目标主机进行信息交互,通过云服务下载恶意载荷以及上传用户数据,没有使用Google和Box云服务。

RokRat版本对比  

  • 检测AV:RokRat(2022)在获取进程信息时,增加了AV检测。如果检测到360安全卫士相关进程,后续部分恶意功能不会执行。

图 10 RokRat(2022)增加AV检测
  • 痕迹清理:在清理目标系统痕迹时执行的命令发生改变,也意味着持久化方式改变。
    • RokRat(2022)
      reg delete  HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v OfficeBootPower /f & reg delete  HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v OfficeBootPower /f & del c:\\programdata\\30
    • RokRat(2019/2020)
      del "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\*.VBS" "%appdata%\*.CMD" "%appdata%\*.BAT" "%appdata%\*01" "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\*.lnk" "%allusersprofile%\Microsoft\Windows\Start Menu\Programs\Startup\*.lnk" /F /Q
  • 利用CMD命令获取系统信息:RokRat(2022)在原基础上增加了获取%localappdata%和%allusersprofile%目录下的文件信息

图 11 增加遍历目录
  • 文件窃取:在获取到C2下发的目录字符后,RokRat(2022)添加了文件类型过滤代码,根据文件类型有选择性窃取文件。

图 12 选择性窃取文件
  • 云服务:RokRat(2022)没有使用Box云服务。

RokRat(2022)

RokRat(2019/2020)

Dropbox

Pcloud

Yandex

Dropbox

Pcloud

Yandex

Box

 三、归属研判  

早在2021年公开威胁情报[1][2]就已经披露了ScarCruft组织利用鱼叉式网络钓鱼邮件和诱饵文档向目标投递RokRat或Chinotto恶意软件,攻击流程以及诱饵文档宏功能与本次攻击活动相关内容基本一致。因此,根据以往公开情报信息以及最终载荷RokRat,我们将此次攻击活动归属为ScarCruft组织。
RokRat投递方式是多种多样的。我们在2022年上半年捕获了ScarCruft组织以“套娃”方式[3]投递RokRat恶意软件,历经多个步骤才将最后的载荷RokRat投递至目标主机。在该攻击活动中,RokRat编译时间是2022年4月,具有窃取浏览器信息、剪贴板内容、键盘输入、USB信息、屏幕截图、邮件客户端信息、文件传输信息、WIFI信息以及凭证访问管理等信息的功能,使用了Google、Dropbox、pcloud、Box以及Yandex云服务,是功能相对完善的版本,也说明ScarCruft组织在一直使用RokRat发起攻击。

图 13 “套娃”方式投递RokRat攻击流程图

附录 IOC

BF757D55D6B48EC73851540CA7FE9315 

9E9B337EA4527F844C46876A47478831 
1E498B28C57911DE5FFB1D1F875D54CD 
0AA43A17AFDA8B1559F22E9557D935FC 
C1219F58EC19BFA51F4D550128482AF6
C1219F58EC19BFA51F4D550128482AF6
8C6ED47B1E012C368B5406B39C425FA6  
40AE072F85CE949AB55CE4C6AE905A23
752F1932D21F8D95E35B6778DDEFBC79

https://api.onedrive[.]com/v1.0/shares/u!aHR0cHM6Ly8xZHJ2Lm1zL3UvcyFBdTJteTF4aDZ0OFhkSUpseW14b21abFd2WW8_ZT15SjJTSkk/root/content


参考链接

[1]https://www.malwarebytes.com/blog/news/2021/01/retrohunting-apt37-north-korean-apt-used-vba-self-decode-technique-to-inject-rokrat

[2]https://securelist.com/scarcruft-surveilling-north-korean-defectors-and-human-rights-activists/105074/

[3]https://medium.com/s2wblog/matryoshka-variant-of-rokrat-apt37-scarcruft-69774ea7bf48







360高级威胁研究院

360高级威胁研究院是360数字安全集团的核心能力支持部门,由360资深安全专家组成,专注于高级威胁的发现、防御、处置和研究,曾在全球范围内率先捕获双杀、双星、噩梦公式等多起业界知名的0day在野攻击,独家披露多个国家级APT组织的高级行动,赢得业内外的广泛认可,为360保障国家网络安全提供有力支撑。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存