安全路透社
当前位置:安全路透社 > 网络转载 > 正文

安卓ELF恶意软件深度分析

ELF病毒背景

1.Android病毒发展趋势

自 2010 年开始,全球进入了移动互联网时代,作为主流移动操作系统Android也得到了迅猛发展。Android病毒也从简单到复杂,从单纯的dex病毒转向为elf病毒(其中elf是Linux下的可执行程序)。这一发展趋势有几个原因:

  • 经过多年发展程序编写人员水平普遍提高,大量的linux程序移植到android系统,病毒也随之发展。

  • android系统碎片化严重,提取漏洞不断累积导致病毒攻击方式多元化 ,

  • elf文件具有比dex程序更难分析的特点。

  • 常规杀软没有root权限,难以查杀病毒。

2.ELF病毒纪元图

1.png

感染情况:

root类病毒自2014年9月至2016年7月份的感染量

2.png

主要两大家族感染量 

3.png

4.png

3.感染用户案例

下面是Facebook上用户感染ELF病毒的案例,可以看出,由于没有ROOT权限,无法直接清除病毒。

5.png

6.png

ELF病毒危害形式

1.提权

  • 利用漏洞获取ROOT权限,如病毒rootnik:

    病毒获取ROOT 权限时,运行/data/local/tmp/下的Matrix(ROOT组件,命令:./Matrix /data/local/tmp 1),病毒程序Matrix从fileWork中解密并释放支持文件,调用脚本wsroot.sh进行ROOT。脚本wsroot.sh 运行时传入参数/data/local/tmp、1,其中/data/local/tmp为支持文件路径,1代表不安装superuser,提权文件为su8。

    7.png

  • ROOT后在系统目录下添加提权应用 在/system/bin/下生成文件su8,作为提权的su程序,该程序可以被任何App用来获取ROOT权限使用,存在巨大隐患。

    8.png

    文件列表(都为提供ROOT 权限服务):

    /system/xbin/su8

    /system/xbin/sugote

    /system/xbin/supolicy

    /system/xbin/daemonsu

2.对抗

  • 伪装替换系统服务

    病毒将系统启动时init.rc内要启动的服务替换成病毒服务,并在病毒服务启动后再调用原始服务。

    9.png

    如木马Android.Troj.at_Seed.a,会将自身的主要模块拷贝到系统目录/system/bin内,伪装成系统服务debuggerd(该服务可以侦测到程序崩溃,并将崩溃时的进程状态信息输出到文件和串口中,以供开发人员分析调试使用。),并将原系统服务debuggerd改名为debuggerd_real,这一方式在ROOT工具中也有使用,下图是使用kingroot对手机进行ROOT后,/system/bin/debuggerd文件尾内容:

    10.png

    病毒不止利用debuggerd服务,有的病毒会利用/system/bin/vold服务,如地狱火,一样的手段,一样的效果。(vold服务:Volume Daemon存储类的守护进程,作为Android的一个本地服务,负责处理诸如SD、USB等存储类设备的插拔等事件。)

  • 感染boot.img

    通过修改boot.img分区并刷回的方式感染/sbin,修改init.rc文件,达到每次开机自启的目的。

    11.png

    由于/sbin目录和init.rc文件位于一个RAM disk中,该RAM disk是一个只读的、位于内存中的文件系统,从设备磁盘的boot分区加载而来,所有的更改都不会写回磁盘,每次都是直接从分区中读取,所以无法通过remount,删除来清除病毒。需要刷回boot.img来清除病毒,增大清除难度。如病毒oldbot、地狱火。

  • 创建守护进程

    创建守护进程,时刻监控自身进程或文件,当进程被结束或者并文件被删除时及时启动进程或恢复病毒文件。如:病毒ghostpush,舞毒蛾。

    12.png

  • 修改病毒隐藏权限

    病毒给衍生文件和apk包设置隐藏属性(+i),使其无法被删除,无法被卸载。

    linux文件系统可以设置文件隐藏属性,如下图:

    13.png

    14.png

    将文件的属性设置为 +i 属性则可以使文件不被删除。如ghostpush病毒等,将自身elf文件设置成+i属性。

    15.png

3.云控

由于android系统的碎片化,各子系统的ROOT模式,控制方案有显著不同,使病毒大量采取云端控制的方案,使用云控的方式可以根据不同的子系统下载不同的ROOT方案,使用不同的控制指令,大大减少代码量,使得病毒更加灵活、可控。

4.注入

通过elf注入系统进程,修改程序执行或窃取内部信息。

  • 注入浏览器进行流量劫持

    注入浏览器进程,劫持特定网站,可以做诈骗,钓鱼等非法活动,如病毒Android.TROJ.triada.mc通过elf文件rinject将病毒的so文件注入到浏览器进程,将系统的loadUrl函数注册为静态函数的方式进行hook,使得浏览器在访问特定网站时被劫持。

    ringect注入器(通过ptrace):

    17.png

    将病毒so文件/system/lib/libremeth.so注入到浏览器进程中:

    18.png

    通过hook android.webkit.WebView类的loadUrl函数实现劫持:

    19.png

    正常访问网络流程:

    20.png

    木马劫持后访问网络流程:

    21.png 

  • 注入社交应用获取聊天记录

    病毒注入“手机QQ”、“微信”社交应用,获取聊天记录并上传远端服务器, 通过inject将病毒so文件注入到“手机QQ”或“微信”的进程中,获取其控制权,并在so中动态加载病毒的dex文件以便窃取聊天内容,并上传。

    22.png

  • ELF病毒所在目录

1.所在目录

  • /system/bin

    系统内可执行文件所在路径,内存在大量系统服务,在系统PATH内。

  • /system/xbin

    系统内可执行文件所在路径,在系统PATH内。

  • /sbin

    Android系统只读分区,里面存放了几个重要守护进程的二进制文件,通过更新boot.img可将病毒刷到此目录。

  • /system/etc/

    Linux系统的目录,存放配置文件。

  • /system/usr

    用户文件夹,包含共享、键盘布局、时间区域文件等。

  • /data/local/tmp/

    data目录中的可以提权目录,一般用来运行可执行文件

2.目录特点

  • 目录占比图:

23.png

  • 除了/data/local/tmp/目录外都需要ROOT权限

    1)ELF病毒绝大多数都具有ROOT权限。

    2)病毒运行后首要的行为是获取ROOT权限。

  • /system/bin、/system/xbin目录占绝大多数

    1)这两个目录是path路径方便ROOT提权。

    2)bin目录方便伪装成系统服务。

ELF病毒ROOT(提权)方案

1.分类

  • 按照方案获取分为云端获取和本地释放两种。

  • 按照ROOT程序分为特定漏洞提权和ROOT工具提权

24.png

2.ROOT工具简述

  • PingPongRoot:是由国内安全大牛Keen Team团队开发出来的主要针对三星S6的ROOT工具,主要利用CVE-2015-3636漏洞。能ROOT大量Android 5.1及其以下的系统。

  • TowelRoot:是美国知名黑客Geohot开发出来的一款ROOT工具,号称可以Root所有2014年6月3日之前的Android设备,利用漏洞CVE-2014-3153。

  • Mtkfb:该工具由ele7enxxh根据nforest@KeenTeam的报告以及网上的提权代码整理。该工具利用了mtkfb_ioctl函数越界写内存提权漏洞。

  • FramaRoot:是由XDA论坛用 “Alephzain“发布的一款一键ROOT工具,针对设备版本较低,利用了Boromir, Barahir, Frodo, Legolas, Aragorn, Gandalf, Pippin 和 Farahir漏洞(mmap边界检查漏洞) 。

  • Root助手: 深圳市网卓信息科技有限公司开发的一款ROOT软件,整合大量漏洞,提供一键ROOT功能,被病毒利用。

ELF病毒对传统杀软的挑战

1.权限

  • 大量ELF病毒都是主动利用漏洞对中毒手机进行ROOT,大量病毒还会删除原有ROOT管理程序,使得其他应用无法使用ROOT权限。

  • 安全软件需要在已经获取ROOT权限的手机上申请ROOT权限,这就导致杀软获取ROOT权限的数量比ELF病毒获取ROOT权限的数量少很多,处于被动。

2.残留

  • 普通杀软在处理Android病毒时,一般的手段是直接卸载,对于system的应用引导用户进行停用,这样的处理无法满足对ELF病毒的处理(elf进程将备份的病毒还原或启动)。

  • 残留的ROOT后门,可以被其他病毒直接使用。

    1)案例:用病毒残留的后门文件PPM将sdcard目录下的apk程序拷贝到/system/app/目录,当手机重启后达到安装app的目的。

25.png

2)案例:运行病毒残留/system/bin/.alpha 直接获得ROOT权限 

26.png

近两个月(20160524-20150726)残留的root后门(elf文件)

27.png

3.针对性

  • 普通杀软难于针对性的对不同危害的ELF进行处理。

专杀的解决方案

  • 加强引导,在用户授权的情况下,积极获取ROOT权限,使专杀和病毒处于同一起跑线。

  • 采用模块化架构,可以针对不同危害采取不同的模块进行查杀、修复。

  • 由于权限的提高可以完全将残留的ELF文件删除。

木马专杀下载地址:http://cn.cmcm.com/activity/push/cm/stk/1/

查杀效果

28.png29.png

* 本文作者:猎豹移动安全实验室

未经允许不得转载:安全路透社 » 安卓ELF恶意软件深度分析

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册