ADB.Miner 安卓蠕虫的更多信息

本篇技术分析,由360手机卫士,360威胁情报中心,360烽火实验室,360-CERT,360网络安全研究院联合发布。

综述

大约48小时之前,我们发布 文章 报告了ADB.Miner,一种新型的安卓蠕虫。该蠕虫可以借助安卓设备上已经打开的 adb 调试接口传播,且初期传播的增速很快,约每12小时翻一番。

在过去的48小时内,我们对 ADB.Miner 做更进一步的分析,目前的结论如下,供安全社区参考:

  1. 当前感染量已经稳定:日活感染量在增长到7千(2018-02-05 15:00 GMT+8)后不再快速增长。这个数字已经保持稳定了超过 20 小时,可以认为蠕虫已经经过了爆发期,进入稳定期。
  2. 确认电视盒子被感染:确认被感染的都是安卓设备。进一步分析能够确认部分设备是电视盒子,其他设备不能认定是何种设备,也不能确认是安卓手机
  3. 对样本的分析,排除了样本从远程开启 adb 调试接口的可能。在被感染以前,这些设备的 5555 端口就已经开启。至于 5555 接口是如何打开的,目前无从得知。

受感染的设备地理分布如下图所示,主要的受害者分布在中国(39%,含中国香港和中国台湾)和韩国(39%):

样本分析

在本次事件中,共捕获样本9个。系列样本的核心功能是蠕虫 + 挖矿。

  • 蠕虫式传染:被感染设备会对外发起 TCP 5555 adb 调试端口扫描,并尝试执行 adb 命令把自身拷贝到新的感染机器
  • 挖矿:被感染后的核心功能就是利用窃取到的计算资源挖XMR代币
  • 此外,该样本的蠕虫的端口探测部分借鉴了MIRAI的SYN扫描模块以提高端口探测效率。

该蠕虫没有上联控制服务器,仅通过单一钱包地址获取收益。这种代码布局更加紧凑。

各样本概要信息如下表所示,后续各小节逐一展开分析:

sss - 代码主体

sss为上载到目标设备的恶意代码主体。在droidbot将其上传到目标设备后,执行nohup /data/local/tmp/sss启动该执行程序时,其会读取bot.dat,并释放droidbot,invoke.sh,ddexe,debuggerd和install-recovery.sh到当前目录下。随后其会调用nohup执行释放的droidbot。

invoke.sh - 持久化

invoke.sh通过替换系统程序来实现持久化,替换后的程序除了原有功能外,还会额外运行droidbot。三个被替换的文件如下:

  • 如果/system/bin/ddexe存在,则替换其为释放的ddexe脚本;
  • 如果/system/bin/debuggerd存在,则替换为释放的debuggerd脚本;
  • 如果/system/etc/install-recovery.sh存在,则替换为释放的install-recovery.sh脚本。

droidbot样本 - 蠕虫传播

样本的蠕虫式传播是通过 droidbot 实现的。当样本扫描发现开启5555端口的设备后,将通过依次发送adb connect /adb push/adb shell 等指令的方式,将所有相关样本从本地上传至受害者并执行,相关截图如下所示:

adb命令前缀

adb命令参数

该传播模块借鉴了MIRAI的源码

  1. 样本中内置了MIRAI的SYN扫描模块,以提高对5555 端口开放情况的探测能力。下图高亮处代码在试图构造一个随机IP,且目标端口为5555。如果对MIRAI的代码结构比较熟悉可从左下角缩略图看到这个缩略图同MIRAI的代码结构具有高度相似性。
  2. 样本中还遗留了MIRAI代码中table的结构字符,如下下图所示。通过MIRAI的默认密钥0xdeadbeef 对上面的字符内容解密后,可以确认均为弱口令字符。并且我们确认这些弱口令均未被使用。

xmrig32/xmrig64/config.json - 挖矿样本和配置

两个xmrig样本为挖矿样本。

挖矿的配置由 config.json 文件提供,如下:

其中矿池分别为:

  • pool.minexmr.com:7777
  • pool.monero.hashvault.pro:5555

用户名,即钱包地址为:

  • 44XT4KvmobTQfeWa6PCQF5RDosr2MLWm43AsaE3o5iNRXXTfDbYk2VPHTVedTQHZyfXNzMn8YYF2466d3FSDT7gJS8gdHAr

droidbot.apk - 另一个基于CoinHive的挖矿样本

该样本是一个运行于Android环境的apk文件。其核心功能就是通过webview加载一个本地html网页文件挖矿。相关代码如下图所示:

利用webview组建加载本地html页面

被加载网页会调用coinhive脚本挖矿

上述两图展示了恶意代码先后利用webview组建加载本地html页面,并通过被加载网页调用 coinhive 脚本挖矿。

IoC

bc84e86f8090f935e0f1fc04b04455c6    bot.dat  
cd37d59f2aac9101715b28f2b28b7417    botsuinit_1_1.txt  
27c3e74b6ddf175c3827900fe06d63b3    config.json  
412874e10fe6d7295ad7eb210da352a1    droidbot  
914082a04d6db5084a963e9f70fb4276    droidbot.apk  
9a10ba1d64a02ee308cd6479959d2db2    nohup  
6a22c94d6e2a18acf2377c994d0186af    sss  
ac344c3accbbc4ee14db0e18f81c2c0d    xmrig32  
cc7775f1682d12ba4edb161824e5a0e4    xmrig64