概述

最近几年,奇安信威胁情报中心红雨滴团队在与东北亚地区的高级 APT 组织进行高强度对抗的过程中,发现了近 20 个涉及国产软件的 0day 漏洞,部分细节我们已经在 Operation DevilTiger[1]、Operation ShadowTiger[2]、XSS 0day+Clickonce[3] 等对外报告中披露,实际上来自东北亚地区的 0day 活动远不止在终端侧,我们捕获了多个针对安卓邮件客户端的 0day 攻击,其技术水平已达 1click,且攻击者很可能已掌握如“三角测量”般的 0click 能力。

实际上近 20 个 0day 攻击所涉及的 IOC,涵盖了目前业界命名的多个组织,相互之间均有重叠。在我们视野中,只有少量的 0day(IE、国产浏览器、firefox、foxmail、wps)被用来针对政企。其余大量 0day 都被用于针对东北地区的朝鲜人和与之有往来的中国人,其中就包含本文要披露的几个移动端 0day 事件,本质上是两国三方在东北地区的谍报对抗,属于更高维度的威胁情报,与政企和个人无关。Operation South Star 也可能是 MSMT 合作框架下的取证活动[4]

Zipperdown 在野利用

ZipperDown 漏洞最早由盘古实验室于 2018 发现,大量 IOS、Android 平台的应用使用开源 ZIP 库,在开发人员没有校验路径的情况下会导致路径穿越漏洞,从而覆盖相关应用组件,实现白加黑的效果。

从 2018 年至今,该漏洞尚未有公开报道显示被 APT 组织在野利用。红雨滴团队是全球首个披露 ZipperDown 漏洞遭 APT 组织在野利用的安全团队。目前相关软件已经修复该漏洞:

攻击者通过给目标手机邮箱应有发送带有漏洞利用的邮件,当受害者在手机上点击邮件时会瞬间触发 Zipperdown,将精心构造的 DAT 文件解包并释放恶意的 so 和 APK 覆盖目标组件应用。

邮件正文多为朝鲜劳动新闻社发布的政治新闻,我们此前有过披露[5]

2022-2023 载荷

攻击者利用某邮箱安卓版 APP 在处理 IMG 图像时的逻辑漏洞,精心构造符合格式的 DAT 文件,最终触发 Zipperdown,覆盖 app 相关库文件。

APK 覆盖的路径如下:

SO 覆盖的路径如下:

APK 的逻辑较为简单,建立 shell 连接:

so 文件则是魔改了正常的库文件 libttmplayer_lite.so,保留正常的视频解码功能,插入了一段下载者逻辑:

使用特定 UA 请求 C2 服务器,获取第二阶段命令并执行:

打包 databases 目录下的 sqlite 库,通过 toybox nc 命令传输到 C2 服务器上。由于覆盖了正常库文件,受害者后续每次启动 APP 都会执行该下载者逻辑,攻击者可以随时更换 C2 上的命令。

2024-2025 载荷

2024 年之后攻击者替换了这套武器的载荷,替换的库名为 libpanglearmor.so。

so 的逻辑为下载者:

从远程服务器下载 APK 特马并且内存加载。AndroidManifest.xml 文件定义了一个后台服务,入口点为 com.example.backservice.MainActivity

其功能为执行 BackClass().Register()。

BackClass 类内置了 C2:

会定期从 "/command 获取指令,并将指令结果发送到 /result,首次注册会访问 /victim 获取标识符

设置一个线程,定期上报设备连接的 WIFI 信息。

指令功能如下:

  • passive_interval :设置每次上报 wifi 信息的间隔时间

  • files_dir :获取内部文件目录 ctx.getFilesDir

  • health :心跳包

  • active_interval :设置每次获取指令的间隔时间

  • upload :功能同 write

  • cache_dir :获取 cache 目录 ctx.getCacheDir

  • permission :检查权限

  • c2 :设置新 C2

  • ls :列出指定文件夹下文件信息

  • echo :回显

  • exec :执行新进程

  • read :功能同 download

  • time :获取当前时间

  • wifi :获取设备连接的 wifi 信息

  • shell :功能同 reverse_shell

  • write :写入文件

  • external_files_dir :获取外部文件目录 ctx.getExternalFilesDir

  • packages :获取设备安装的应用信息

  • download :读取文件,将其编码为 base64

  • reverse_shell :启动一个反向 shell 到指定的 IP

  • nothing :返回 ok

邮件结构漏洞

2024 年我们捕获到一个较为复杂的代码注入漏洞,受害者只需要在手机 app 点击恶意邮件即可触发。还是在解析 IMG 图片时没有校验,攻击者构造了四个图片用来闭合邮件正文中插入的恶意 js 代码,拼成四行 js。

功能是寻找第一个 IMG 图像,将其插入正文的 HTML 中,第一个 IMG 图像中包含 base64 编码后的 js 代码,插入正文后会默认运行,从而实现执行任意 js 代码的效果:

在 JS 代码中实现网络请求的方法同样是构造一个 IMG 图片,并将其插入到 HTML 正文中。为了从当前的 js 域直接访问读取手机文件,攻击者找到了一个从未公开过的内部接口,localfile 字段可以读取任意目录下的文件,我们不理解为什么几亿用户量的软件会出现这种简单粗暴的内部接口,可能是研发测试?总之攻击者对国产软件的研究非常深入,结合近 20 个 0day 各式各样的触发点,我们甚至怀疑攻击者可能拿到了相关源码。

https://app.XXXXX.XXX.com/?localfile=/data/data/com.XXXXXXX.mail/databases/XXXX

攻击者请求了两个文件,一个是 sqlite 数据库,通过解析相关数据后获取目标账号的 token。

另一个是 app 的 xml 配置文件,包含了该账号的配置信息,包含各类 key。

最后将上述数据 base64 加密后传输给 C2,攻击者最终能窃取用户的登录状态,无需密码登录就能以用户的身份完全操作账户,访问所有邮件、联系人、文件等敏感数据。

我们在安卓模拟器里触发 0day 后抓包截图如下:

总结

经过多年高强度的对抗,这些已被发现的 0day 谍报活动很可能只是国家级网络战的冰山一角,但已经接近当前安全厂商能触及的极限。各国情报机构利用移动端天然缺乏普遍检测软件这一弱点,大规模研发与收购相关攻击武器,严重损害目标国家利益,并在经济与政治层面引发长期不可逆的损害。

IOC

Md5:

0942fbe13e4dca2b451bdf3c6c572078

724ae8064f2fc9c713e0388467c8d6b5

1c1ffd11069765779733dbf8b45015f1

参考链接

[1] https://ti.qianxin.com/blog/articles/operation-deviltiger-0day-vulnerability-techniques-and-tactics-used-by-apt-q-12-disclosed-cn/

[2] https://ti.qianxin.com/blog/articles/the-tiger-of-the-forest-entrenched-on-foyan-mountain/

[3] https://ti.qianxin.com/blog/articles/clickonce-group-combines-0day-and-clickonce-technology-to-carry-out-espionage-activities-cn/

[4] https://msmt.info/Publications/detail/MSMT%20Report/4221

[5] https://mp.weixin.qq.com/s/5rDjDrfEZUsB1XAR-SvBtA

声明:本文来自奇安信威胁情报中心,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。