CVE-2019-2215漏洞利用,与SideWinder APT组织有关
导语:研究人员在Google Play中发现了利用CVE-2019-2215漏洞的APP,与SideWinder APT组织有关。
研究人员在Google Play应用商店中发现了3个恶意app,这些app联合起来以入侵受害者设备并收集用户信息。其中一个app Camero利用了CVE-2019-2215漏洞,CVE-2019-2215漏洞是安卓系统中主要的进程间通信系统Binder中存在的漏洞。这也是该漏洞的第一个在野漏洞利用。研究人员进一步分析发现这3个app与SideWinder APT组织有关。该APT组织从2012年开始活跃,主要攻击军事组织的Windows设备。
这3个恶意APP伪装成了照片和文件管理器工具。根据app的证书信息,研究人员推测这些app自2019年3月开始活跃。目前这3个app已经从Google Play中移除了。
图 1. 与SideWinder组织相关的3个APP
图 2. 其中一个app的证书信息
安装
SideWinder安装payload app的过程可以分为2个阶段。首先会从C2服务器上下载一个DEX文件。研究人员发现攻击者部署了Apps Conversion Tracking来配置C2服务器地址。地址是用base64编码的,然后设置为恶意软件分发中使用的URL中的引用参数。
图 3. 分析得到的C2服务器地址
这一步后,下载的DEX文件会下载一个APK文件,并利用设备或辅助功能来安装。整个过程都不会有用户注意到。为了避免检测,攻击者还使用了许多的分发,包括混淆、数据加密和调用动态代码。
APP Camero和FileCrypt Manger的作用是释放器。从C2服务器下载了其他的DEX文件后,二层释放器会调用额外的代码来下载、安装和启动设备上的callCam app。
图 4. 两阶段payload
图 5. 表明释放器调用其他DEX代码的代码
为在没有用户感知的情况下在设备上部署payload app callCam,SideWinder做了以下工作:
1. 设备root
该分发是由释放器app Camero使用的,只适用于Google Pixel (Pixel 2, Pixel 2 XL), Nokia 3 (TA-1032), LG V20 (LG-H990), Oppo F9 (CPH1881), 红米6A等设备。恶意软件会根据释放器下载的DEX来从C2服务器上提取出特定的漏洞利用。
图 6. Camero下载的DEX部分代码
在调查过程中,研究人员发现可以从C2服务器上下载5个漏洞利用。这些漏洞利用使用CVE-2019-2215和MediaTek-SU来获取root权限。
图 7. CVE-2019-2215漏洞利用
图 8. MediaTek-SU漏洞利用
在获取root权限后,恶意软件会安装app callCam,启用accessibility权限,然后启动accessibility。
图 9. 安装app、启动app和启用accessibility的命令
2. 使用Accessibility权限
该方法是由释放器app FileCrypt Manager使用的,适用于Android 1.6以上版本的大多数安卓系统。启动后,app会要求用户启用和使用Accessibility权限。
图 10. FileCrypt Manager请求用户权限的步骤
授权后,app会展示一个全屏窗口表明请求下一步安装。事实上,这是一个展示在设备上的overlay屏幕。Overlay窗口会设置FLAG_NOT_FOCUSABLE和FLAG_NOT_TOUCHABLE属性,允许活动窗口通过overlay屏幕检测和接收用户触屏。
图 11. Overlay屏幕
同时,app会调用来自额外DEX文件的代码来启动未知APP的安装和payload app callCam的安装。同时,app还会启用payload app的accessibility权限,然后启动payload app。所有这些活动都是在overlay屏幕之后进行的,用户并不知情,而且都是通过Accessibility执行的。
图 12. 启用未知app和新APK安装的代码
图 13. 启用新安装的app的accessibility权限的代码
callCam活动分析
App callCam在启动后会在设备上隐藏其图标。还会收集以下信息并在后台发送会C2服务器:
· 位置信息
· 电池状态
· 设备上的文件
· 已安装的app 列表
· 设备信息
· 传感器信息
· 摄像头信息
· 截屏
· 账户信息
· WiFi信息
· 微信、outlook、twitter、yahoo邮箱、Facebook、gmail和chrome的数据
App会使用RSA和AES算法来加密所有窃取的数据。使用SHA256算法来验证数据的真实性和定制编码路径。加密后,app会创建一个数据区块——headData。该区块中含有原始数据的前9个字节、原始数据的长度、随机AES IV和RSA加密的AES加密密钥、AES加密的原始数据的SHA256值。然后回通过定制的路径来编码headData数据。编码后,会保存数据在AES加密的原始数据之后的最后的加密数据的前面。
图 14. 数据加密过程
图 15. 定制的加密路径
与SideWinder有关
研究人员经过分析发现这些app使用的C2服务器可能是SideWinder的基础设施。此外,app的Google Play页面的一个URL就是其中的C2服务器地址。
图 16. C2服务器上发现FileManager app的Google Play URL地址
发表评论