3CX供应链攻击样本分析
2023-4-24 18:1:28 Author: 看雪学苑(查看原文) 阅读量:12 收藏

本文为看雪论坛优秀文章

看雪论坛作者ID:megaparsec

ffmpeg.dll


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。

解密的dll

解密之后的 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

最终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 浏览器的储存历史记录的数据库文件。



复制数据库文件,然后通过执行SQLite语句 SELECT url, title FROM urls ORDER BY id DESC LIMIT 500 、SELECT url, title FROM moz_places ORDER BY id DESC LIMIT 500 在 urls 和 moz_places 表中查询 url 和 title 字段,并按照 id 值的倒序进行排序,返回前 500 条记录,再把相关数据发送至 C2 服务器。

参考

https://www.splunk.com/en_us/blog/security/splunk-insights-investigating-the-3cxdesktopapp-supply-chain-compromise.html

https://unit42.paloaltonetworks.com/3cxdesktopapp-supply-chain-attack/

https://news.sophos.com/en-us/2023/03/29/3cx-dll-sideloading-attack/

看雪ID:megaparsec

https://bbs.kanxue.com/user-home-917207.htm

*本文由看雪论坛 megaparsec 原创,转载请注明来自看雪社区

# 往期推荐

1、在 Windows下搭建LLVM 使用环境

2、深入学习smali语法

3、安卓加固脱壳分享

4、Flutter 逆向初探

5、一个简单实践理解栈空间转移

6、记一次某盾手游加固的脱壳与修复

球分享

球点赞

球在看


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458503127&idx=1&sn=20057d34dae798dac864b865264a98df&chksm=b18ef75d86f97e4b9d3825a07347695215c91bd06ff1936f1bb4a0791b301342fcc92ff4632c#rd
如有侵权请联系:admin#unsafe.sh