3CX供应链攻击样本分析

3CX供应链攻击样本分析

ffmpeg.dll

基本信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bTWdDpe6-1680592593056)(C:\Users\megaparsec\AppData\Roaming\Typora\typora-user-images\image-20230401182511173.png)]

分析

3CXDesktopApp.exe 会侧加载 ffmpeg.dll,ffmpeg.dll 中包含恶意代码,也包含正常的功能。

创建名为 AVMonitorRefreshEvent 的事件,修改当前模块的文件名,将 d3dcompiler_47.dll 文件侧加载到系统中 。
在这里插入图片描述

读取 d3dcompiler_47.dll 中加密的 Shellcode,该 Shellcode 以 8 字节序列 “0xFE 0xED 0xFA 0xCE 0xFE 0xED 0xFA xCE” 开始
在这里插入图片描述

用 RC4 算法解密 d3dcompiler_47.dll 中加密的shellcode ,密钥为 3jB(2bsG#@c7在这里插入图片描述

d3dcompiler_47.dll

d3dcompiler_47.dll (MD5:82187AD3F0C6C225E2FBA0C867280CC9),在此 dll 中可定位到加密的shellcode
在这里插入图片描述

解密后的shellcode

解密之后的 dll (MD5:9B406B9CE0DF2D7D88EEAB56E14B333B)
在这里插入图片描述

DllGetClassObject 会分配一段内存之后,创建一个新的线程并启动该线程
在这里插入图片描述
在新线程中,首先获取系统时间,并转换为64位的整数,该整数作为生成随机数所需的种子,根据指定文件是否可访问来读取或写入一个名为 “manifest” 的文件,写入内容为随机数据
在这里插入图片描述

打开注册表 HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography,读取 MachineGuid 的键值数据,获取计算机的唯一标识符
在这里插入图片描述

下载 ico 文件,图标编号在运行时随机生成 (rand() % 15 + 1),并一直持续到图标成功下载,下载地址:https://raw.githubusercontent.com/IconStorages/images/main/icon[1-15].ico
在这里插入图片描述

从文件末尾向后搜索,直到遇到标记 “$” ,提取标记之后的数据,然后 base64 解码,AES-GCM 解密其 C2 配置
在这里插入图片描述

ICO 文件

其中一个 ICO 文件末尾文件内容如下:
在这里插入图片描述

该 ICO 文件 MD5:1640f48cc05c58f4cc077503a5361cea,来自 https://unit42.paloaltonetworks.com/3cxdesktopapp-supply-chain-attack/

解密脚本:https://github.com/volexity/threat-intel/blob/main/2023/2023-03-30%203CX/attachments/decrypt_ico.py
在这里插入图片描述

解密结果为:https://azureonlinestorage.com/azure/storage ,这是其中一个 C2 地址。通过 C2 服务器下载 config.json 配置文件,最终产生最终的有效载荷文件。

最终payload

最终有效载荷为 64位的 dll (MD5:7FAEA2B01796B80D180399040BB69835 ),
DllGetClassObject 函数中包含恶意代码,通过 NetWkstaGetInfo、RtlGetVersion 获取当前计算机的工作站信息和当前操作系统的版本信息
在这里插入图片描述

将获取的数据格式化,以便于向 C2 传输数据
在这里插入图片描述

检索 AppData\Local\Google\Chrome\User Data、AppData\Local\Microsoft\Edge\User Data 、AppData\Local\BraveSoftware\Brave 目录下的 History 文件和 AppData\Roaming\Mozilla\Firefox\Profiles 下的 places.sqlite 文件,即查找 Chrome、Edge、Brave、Firefox 浏览器的储存历史记录的数据库文件
在这里插入图片描述

复制数据库文件,然后通过执行SALite语句 SELECT url, title FROM urls ORDER BY id DESC LIMIT 500 、SELECT url, title FROM moz_places ORDER BY id DESC LIMIT 500 查询前500条已发现的浏览器数据库,并解析 URL 和标题,把相关数据发送至 C2 服务器
在这里插入图片描述

参考

Splunk 洞察:调查 3CXDesktopApp 供应链入侵 |斯普伦克
Update 2: 3CX users under DLL-sideloading attack: What you need to know – Sophos News
Threat Brief: 3CXDesktopApp Supply Chain Attack
3cx供应链简报-附失陷指标

猜你喜欢

转载自blog.csdn.net/weixin_51732593/article/details/129953870