0x00 事件背景
3CX是一家软件公司,该公司提供一个基于软件的电话系统,用于企业或组织内部的通讯。3CX电话系统可以在Windows或Linux服务器上部署,并提供包括VoIP、PSTN和移动电话在内的多种通讯方式。此外,3CX还提供一系列的通讯软件,包括用于电脑、移动设备和浏览器的应用程序,可以让用户通过各种方式与其他人通讯。3CX声称其提供软件给600000多个客户,遍布全球190多个国家。
2023年3月29日,CrowdStrike发出告警,确定具有合法签名的二进制程序3CXDesktopApp具有恶意行为。
0x01 事件过程
2023年3月22日凌晨一点,部分用户反馈3CXDesktopApp自动更新的版本被杀毒软件告警。此时部分用户还将其定性为误报。
SentinelOne的告警信息如下:
Post Exploitation
- Penetration framework or shellcode was detected
Evasion
- Indirect command was executed
- Code injection to other process memory space during the target process' initialization
2023年3月29日上午十一点,安全公司CrowdStrike发出告警,确定具有合法签名的二进制程序3CXDesktopApp具有恶意行为,危害Windows和macOS。CrowdStrike怀疑其攻击行为源于LABYRINTH CHOLLIMA,这是一个与朝鲜背景相关的专业APT组织。
2023年3月30日上午六点,3CX的CEO Nike Galea发出安全警告,确认3CX的Windows Electron client遭受攻击,其建议用户卸载该应用程序并选择基于WEB的PWA客户端。
2023年4月6日,3CX发布未被攻击的18.12.425版本软件,但是仍然建议用户使用基于WEB的PWA客户端。
0x02 技术分析
1.受影响版本
- Windows versions 18.12.407 and 18.12.416
- Mac OS versions 18.11.1213, 18.12.402, 18.12.407, and 18.12.416.
部分文件及对应hash如下:
SHA256 | Operating System | Installer SHA256 | FileName |
---|---|---|---|
dde03348075512796241389dfea5560c20a3d2a2eac95c894e7bbed5e85a0acc | Windows | aa124a4b4df12b34e74ee7f6c683b2ebec4ce9a8edcf9be345823b4fdcf5d868 | 3cxdesktopapp-18.12.407.msi |
fad482ded2e25ce9e1dd3d3ecc3227af714bdfbbde04347dbc1b21d6a3670405 | Windows | 59e1edf4d82fae4978e97512b0331b7eb21dd4b838b850ba46794d9c7a2c0983 | 3cxdesktopapp-18.12.416.msi |
92005051ae314d61074ed94a52e76b1c3e21e7f0e8c1d1fdd497a006ce45fa61 | macOS | 5407cda7d3a75e7b1e030b1f33337a56f293578ffa8b3ae19c671051ed314290 | 3CXDesktopApp-18.11.1213.dmg |
b86c695822013483fa4e2dfdf712c5ee777d7b99cbad8c2fa2274b133481eadb | macOS | e6bbc33815b9f20b0cf832d7401dd893fbc467c800728b5891336706da0dbcec | 3cxdesktopapp-latest.dmg |
2.攻击分析
安装程序具有合法签名,安装后的3CXDesktopApp启动时会主动加载安装目录下的没有签名的ffmpeg.dll。
ffmpeg.dll被加载的时候会进行以下行为:
首先打开安装路径下的d3dcompiler_47.dll文件,并读入内存。
对比读入内存数据与磁盘数据发现一致,且读入数据大小为0x4EDCD8。
随后定位shellcode,shellcode使用RC4算法进行了加密,密钥为3jB(2bsG#@c7。
如下图所示,shellcode由8字节\xFE\xED\xFA\xCE\xFE\xED\xFA\xCE定位,后续0x43B08字节为其shellcode。
然后跳转到shellcode执行。
此时0x000001C7B90D3FA0为shellcode地址。
随后使用反射dll注入技术加载了放在shellcode中的dll文件,这里获取了一些dll函数用来后续修复导入表。
shellcode偏移0x65D处为dll文件开始处。
对该dll进行分析,发现其行为如下:
如果首次执行,写入manifest当前时间,后续执行判断是否过了604800s(七天),如果已经过了七天则向https://raw.githubusercontent.com/IconStorages/images/main/icon%d.ico发送请求,加载后续的payload。
七天正好与3月22号的首次更新至3月29日首次确定攻击行为的间隔一样。
在文章所写的2023年5月9日,其Github仓库已关闭,无法获取后续payload。但是静态分析可以得出,后续会使用AES-GCM算法进行解密从icon中获取的数据。解密结果为C2服务器域名,域名如下:
Filename | Hash (SHA1) | Decoded URL |
---|---|---|
icon0.ico | 9c943baad621654cc0a0495262b6175276a0a9fb | https://www.3cx[.]com/blog/event-trainings/ |
icon1.ico | 96910a3dbc194a7bf9a452afe8a35eceb904b6e4 | https://msstorageazure[.]com/window |
icon2.ico | ffccc3a29d1582989430e9b6c6d2bff1e3a3bb14 | https://officestoragebox[.]com/api/session |
icon3.ico | 89827af650640c7042077be64dc643230d1f7482 | https://visualstudiofactory[.]com/workload |
icon4.ico | b5de30a83084d6f27d902b96dd12e15c77d1f90b | https://azuredeploystore[.]com/cloud/services |
icon5.ico | 3992dbe9e0b23e0d4ca487faffeb004bcfe9ecc8 | https://msstorageboxes[.]com/office |
icon6.ico | caa77bcd0a1a6629ba1f3ce8d1fc5451d83d0352 | https://officeaddons[.]com/technologies |
icon7.ico | 57a9f3d5d1592a0769886493f566930d8f32a0fc | https://sourceslabs[.]com/downloads |
icon8.ico | f533bea1c0558f73f6a3930343c16945fb75b20f | https://zacharryblogs[.]com/feed |
icon9.ico | 31d775ab577f3cc88991d90e9ae58501dbe1f0da | https://pbxcloudeservices[.]com/phonesystem |
icon10.ico | 0d890267ec8d6d2aaf43eaca727c1fbba6acd16e | https://akamaitechcloudservices[.]com/v2/storage |
icon11.ico | 0d890267ec8d6d2aaf43eaca727c1fbba6acd16e | https://akamaitechcloudservices[.]com/v2/storage |
icon12.ico | b1dee3ebcffad01a51ff31ff495fef1d40fdfaa0 | https://azureonlinestorage[.]com/azure/storage |
icon13.ico | 64ab912d0af35c01355430d85dd4181f25e88838 | https://msedgepackageinfo[.]com/microsoft-edge |
icon14.ico | 8377fb40c76aa3ba3efae3d284fa51aa7748e010 | https://glcloudservice[.]com/v1/console |
icon15.ico | 11ae67704ea0b930b2cc966e6d07f8b898f1a7d2 | https://pbxsources[.]com/exchange |
0x03 相关反应
2023年3月30日,3CXDesktopApp的提供商在其官网上发出安全警告。
2023年3月31日,ffmpeg声明,其只提供源代码,编译的”ffmpeg.dll“由供应商提供。
2023年4月6日,3CX发布未被攻击的18.12.425版本软件。
0x04 事件启示
本次事件,确定是一起供应链攻击事件,攻击者以3CX公司作为攻击对象。最初的攻击定位在2022年4月,一名员工在其个人计算机上安装了受感染的X_TRADER软件,该软件于2020年停用,但是其软件签名持续到2022年10月。随后攻击者通过该恶意软件获取了管理员级别的权限并且使用frp工具在3CX网络中横向移动,最终破坏了Windows和macOS的构建环境。具体的破坏手法没有公布,但是可以猜测,可能是类似SolarWinds事件被攻破了构建系统,或是篡改了构建的基础源码。
两次攻击的过程极为类似,都是使用已签名的安装包安装了软件,安装过程释放了恶意文件,最后通过反射dll注入,外联C2服务器。3CX的攻击过程如下图:
在3月22日3CXesktopApp首次被杀毒软件告警的时候,部分用户认为其为误报,可以看出由于应用更新的时候已经经过了签名和认证,所以用户对该应用保持了一定的信任,然而这种信任会导致供应链上游环节的安全问题在下游环节被放大。并且在更上游,从3CX员工因为下载X_TRADER软件导致构建环境被破坏可以看出互联网从业者与普通用户对带有合法签名的软件均无防范。因此,供应链的防护不仅在于供应商对安全的重视,客户也应该对其使用的组件,软件进行安全检测。
文章评论