国内即时消息应用MiMi被植入后门,攻击安卓、iOS、Windows和macOS平台。
MiMi是一款主要针对国内用户的即时消息应用,有Windows、macOS、安卓和iOS版本。桌面版用ElectronJS框架开发,该框架是依赖node.js的跨平台框架,允许开发者使用HTML、JS和CSS创建应用。
MiMi并没有进行推广,网站(www.mmimchat[.]com)只有一个下载链接,没有详细的介绍,也没有社交媒体推广链接。
图1 Mimi网站(www.mmimchat[.]com)
网站的最近修改时间是7月26日。根据苹果应用试点修改日志和被动DNS记录,研究人员发现该应用最早可以追溯到2020年6月。
macOS版本的MiMi在苹果镜像文件中打包了ElectronApp。该应用看似功能正常,但是用户注册后发现无法用联系人聊天。在2022年5月26日发布的2.3.0版本中,./mimi.app/Contents/Resources/app/electron-main.js文件被木马化了。如下所示,是通过在module.exports 函数的开始处放置的Dean Edwards Packed JavaScript代码实现的:
图2 被注入后门的electron-main.js文件
该代码执行时会检查环境是否是macOS,然后从139.180.216.65下载rshell。提取的payload会下载temp文件夹中,修改为具有执行权限,然后执行。反混淆后的代码如下所示:
图3 负责下载和执行Rshell的代码
SEKOIA研究人员分析发现当前版本的Windows、iOS和安装版本中没有后门。但TrendMicro研究人员发现老版本的Linux和Windows版本也被植入后门。
6月,TrendMicro研究人员下载了MiMi macOS v2.3.2版本,没有发现什么异常。之后再次下载,发现安装包被恶意版本替换。说明攻击者直接访问了部署安装器的服务器,而且攻击者监控了MiMi开发者的发布版本,以便及时插入后门。
图4 下载的安装器(左)和被植入后门的安装器(右)
从图中可以看出,攻击者大约用了1个半小时就修改了合法的安装器并添加了恶意代码。而之前的版本,攻击者大约花了一天来注入恶意修改。修改同样是针对electron-main.js文件。
图5 插入2.3.2 dmg的恶意JS代码
图6 反混淆的恶意JS代码
图 7 插入2.2.0 exe中的恶意JS代码,攻击Windows 操作系统
图 8 2.2.0 exe版本中反混淆的恶意JS代码
可以看出,会下载一个可执行文件、一个DLL文件和一个二进制文件到临时目录。这是攻击者加载文件、利用DLL侧信道漏洞的常用方式。本例中利用的可执行文件属于DESlock+产品。
下载的木马是RShell,是用C++编写的,并嵌入到Boost.Asio 和 nlohmann/json库中。后门使用基于TCP包的BJSON来与命令和控制服务器通信,没有使用加密机制,也没有任何驻留机制。
Rshell可执行文件是标准后门,可以实现以下功能:
· 收集操作系统信息,并发送给C2服务器;
· 从C2服务器接收命令并执行;
· 发送命令执行结果给C2。
研究人员在分析过程中发现了多个版本,其中有针对macOS平台的Macho格式,也有针对Linux平台的ELF格式。最早的样本上传于2021年6月,首个受害者出现在2021年7月中旬。
收集的信息包括:
· GUID: 随机生成的guid,保存在/tmp/guid
· 计算机名:uname (nodename)
· IP地址: (getifaddrs)
· 消息类型: login
· username: _getpwuid (pw_name)
· version: uname (release)
收集到这些信息后,后门会将其打包为二进制JSON(BJSON)消息,并发通过TCP以明文形式发送。
图9 反序列化的BSON包
参考及来源:
https://blog.sekoia.io/luckymouse-uses-a-backdoored-electron-app-to-target-macos/
https://www.trendmicro.com/en_us/research/22/h/irontiger-compromises-chat-app-Mimi-targets-windows-mac-linux-users.html