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

在样本的downloadFilerequest,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日中午之间