macos应用投毒事件分析
概述
2月21日晚,在一些QQ群中爆料国内某第三方macOS应用下载站www.macwk.com
存在供应链投毒事件。疑似APT组织WINNTI。爆料者称投毒时间为2022年1月30日。 经过分析排查发现被投毒的应用是数据库管理用应用Navicat Premium。 Navicat Premium是一款非常流行的数据库管理应用,但因其为收费应用,所以很多使用者会寻求破解版。攻击者正是利用这一点,对Navicat破解版应用进行篡改投毒,从而导致感染使用者,后续进行信息窃取,远程控制等目的。
对被投毒的Navicat应用的分析
样本文件信息
样本应用
文件类型:苹果系统MacOS压缩镜像文件
文件名:Navicat Premium_16.07_macwk.com.dmg
文件大小:242 MB (253,962,323 字节)
文件HASH:
- MD5:
f4f60c751b2fa6220c4c322aa3a45735
- SHA1:
e27c05c0d98f2534a9a26f2452d9fd985c309584
病毒名:MacOS:ZuRu-A
查杀能力:当前时间VirusTotal上仅有两个引擎(2/55
)可以查杀
样本恶意模块
文件类型:Mach-O 64位动态链接库
文件名:libcrypto.2.dylib
文件大小:474 KB (485,688 字节)
文件HASH:
- MD5:
6e4a0ea80c3204d4485979c83e5e79e7
- SHA1:
61d49bd8dff3ae52385ab8fa2492a20fb75920d0
病毒名:ZuRu木马:Trojan:MacOS/ZuRu.A
查杀能力:当前时间VirusTotal上多数引擎(24/61
)可以查杀
样本特性
样本具备网络通信能力,后续会下发payload,用于获取计算机信息。
包括SerialNumber
,计算机上的文件信息
,bash历史信息
,zsh历史信息
,git配置信息
,ssh配置信息
等,后续还可能会下发远控木马等。
处置建议
排查从1月30日起是否有mac主机访问过macwk.com
,jackteng.com
域名,是否请求过IP:120.77.35[.]111
排查所有mac主机的应用程序目录<AppName>.app\Contents\Frameworks
下是否存在libcrypto.2.dylib
文件
可重点关注与运维/开发相关的应用,如Navicat
,SecureCRT
,Microsoft Remote Desktop
,iTerm2
等
发现有恶意模块存在的立即:
- 卸载存在恶意模块的应用
- 修改数据库密码
- 修改服务器密码
- 修改电脑密码
IOCs
IP:120.77.35[.]111
域名:jackteng[.]com
URL:jackteng[.]com/aCbnd4bZaXXkQNVB/v.php
详细分析
样本文件名为Navicat Premium_16.07_macwk.com.dmg
,打开会显示应用来源MacWk.com
,并且会提示签名无效。
验证发现没有签名:
spctl -a -t exec -vvv /Applications/Navicat\ Premium.app
/Applications/Navicat Premium.app: accepted
source=no usable signature
override=security disabled
作为对比,正常的QQ应用程序签名如下:
spctl -a -t exec -vvv /Applications/QQ.app
/Applications/QQ.app: accepted
source=Notarized Developer ID
override=security disabled
origin=Developer ID Application: Tencent Technology (Shanghai) Co., Ltd (FN2V63AD2J)
查看样本的应用程序目录发现Navicat Premium.app\Contents\Frameworks
下有libcrypto.2.dylib
文件。
使用otool
工具查看目标程序的系统依赖
otool -L /Applications/Navicat\ Premium.app/Contents/MacOS/Navicat\ Premium
可以发现样本添加了一个LC_LOAD_DYLIB
的命令,且依赖为libcrypto.2.dylib
文件
otool -l /Applications/Navicat\ Premium.app/Contents/MacOS/Navicat\ Premium
动态链接库被加载后会执行其load方法,查看libcrypto.2.dylib
发现有load方法
查看load方法
发现调用hookCommon
方法
后续调用request
方法
request后续会解密C2,C2使用AES加密后BASE64编码
AES的key为quwi38ie97duy78u
使用ECB方法解密
解密后可以看到C2为jackteng.com/aCbnd4bZaXXkQNVB/v.php
在样本的downloadFile
和request
,dictionaryWithJsonString
等方法中可以看到有一些日志输出为中文字符,疑似样本为中文用户创建
该样本同9月份的样本基本一致。AES的key均为quwi38ie97duy78u
。仅仅改变了C2和部分字符串信息
存在恶意模块的样本包名为Navicat Premium_16.07_macwk.com
,但在后续访问macwk.com下载的Navicat包已经为不存在恶意模块的包,名为Navicat_Premium_16.0.7_macwk.com
,两个包时间有所不同.疑似恶意包于2月20日修改的,但因数据缺失,无法确认该信息
其他
据macwk.com
前站长的说明: 该应用在macwk.com
网站上的下载地址于2022年02月15日至2022年02月21日之间由https://macwk.lanzout[.]com/iWuQ8zeo3r
变更为 https://mac.konlonair[.]com/02/Navicat%20Premium_16.07_macwk.com.dmg
,变更后的下载包存在被黑客篡改的情况。爆料的1月30日仅仅是以应用的更新日期作为依据,实际的时间约为:2022年02月15日至2022年02月21日中午之间