安卓ELF恶意软件深度分析

ELF病毒背景

1.Android病毒发展趋势

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

  • 经过多年发展程序编写人员水平普遍提高,大量的linux程序移植到android系统,病毒也随之发展。
  • android系统碎片化严重,提取漏洞不断累积导致病毒攻击方式多元化 ,
  • elf文件具有比dex程序更难分析的特点。
  • 常规杀软没有root权限,难以查杀病毒。

2.ELF病毒纪元图

感染情况:

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

主要两大家族感染量

3.感染用户案例

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

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

文件列表(都为提供ROOT 权限服务): /system/xbin/su8 /system/xbin/sugote /system/xbin/supolicy /system/xbin/daemonsu

2.对抗

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

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

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

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

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

  • 创建守护进程 创建守护进程,时刻监控自身进程或文件,当进程被结束或者并文件被删除时及时启动进程或恢复病毒文件。如:病毒ghostpush,舞毒蛾。
  • 修改病毒隐藏权限 病毒给衍生文件和apk包设置隐藏属性(+i),使其无法被删除,无法被卸载。 linux文件系统可以设置文件隐藏属性,如下图:

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

3.云控

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

  • 通过云控获取ROOT方案 病毒通过上传感染机器的实际环境,获取相对应的ROOT方案,如danpay家族的client病毒。 client下载加密的ROOT提权工具压缩包并根据不同的手机设备下载对应的ROOT工具下载地址和方案: http://abcll0.us:9009/gamesdk/doroot.jsp http://my2014.us:9009/gamesdk/advert.jsp

4.注入

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

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

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

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

正常访问网络流程:

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

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

1.所在目录

  • /system/bin 系统内可执行文件所在路径,内存在大量系统服务,在系统PATH内。
  • /system/xbin 系统内可执行文件所在路径,在系统PATH内。
  • /sbin Android系统只读分区,里面存放了几个重要守护进程的二进制文件,通过更新boot.img可将病毒刷到此目录。
  • /system/etc/ Linux系统的目录,存放配置文件。
  • /system/usr 用户文件夹,包含共享、键盘布局、时间区域文件等。
  • /data/local/tmp/ data目录中的可以提权目录,一般用来运行可执行文件

2.目录特点

  • 目录占比图:
  • 除了/data/local/tmp/目录外都需要ROOT权限 1)ELF病毒绝大多数都具有ROOT权限。 2)病毒运行后首要的行为是获取ROOT权限。
  • /system/bin、/system/xbin目录占绝大多数 1)这两个目录是path路径方便ROOT提权。 2)bin目录方便伪装成系统服务。

ELF病毒ROOT(提权)方案

1.分类

  • 按照方案获取分为云端获取和本地释放两种。
  • 按照ROOT程序分为特定漏洞提权和ROOT工具提权

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的目的。

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

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

3.针对性

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

专杀的解决方案

  • 加强引导,在用户授权的情况下,积极获取ROOT权限,使专杀和病毒处于同一起跑线。
  • 采用模块化架构,可以针对不同危害采取不同的模块进行查杀、修复。
  • 由于权限的提高可以完全将残留的ELF文件删除。

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

查杀效果

* 本文作者:猎豹移动安全实验室,转载请注明来自FreeBuf.COM

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2016-09-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏walterlv - 吕毅的博客

安装 Windows 需要知道的 256 个问题

2018-02-22 12:57

641
来自专栏听雨堂

jquery获取父级一级节点的序号

结构为:          <ul id="zdcd" style="display:none">             <li>              ...

2376
来自专栏用户2442861的专栏

支付宝即时到帐接口的python实现,示例采用django框架

http://blog.csdn.net/hornbills/article/details/40338949

3621
来自专栏腾讯云安全的专栏

刚需 |Wannacry 勒索蠕虫病毒用户修复指引

2145
来自专栏二次元

程序员日常中病毒系列

事情是这样的,一朋友发来源码让我看下,手残不小心点到里头的一个exe文件,弹出联网请求,我便迅速关掉,之后发现同目录多了一个伪装成系统音乐文件夹的exe可执行...

1410
来自专栏晓晨的专栏

ASP.NET Core 2.0 支付宝当面付之扫码支付

2102
来自专栏FreeBuf

揭秘来自中国的数字货币“挖矿”军团 – Bondnet僵尸网络

最近,以色列安全公司GuardiCore发现了一个名为Bondnet的僵尸网络,该僵尸网络由数万台被控制的具备不同功率的服务器肉鸡组成。从目前的情况来看,幕后运...

24710
来自专栏云鼎实验室的专栏

WannaCry 勒索病毒用户处置指南

2017年5月12日晚,勒索软件 WannaCry 感染事件爆发,全球范围99个国家遭到大规模网络攻击,被攻击者电脑的文件被加密,被要求支付比特币以解密文件。腾...

7.4K0
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–自建资产(资本投资订单)(164)-6 KO04维护最终结算的结算规则

4.8 KO04维护最终结算的结算规则 在本步骤中,将维护最终结算的结算规则。投资订单的状态将被设置为“技术性结账”。这一状态将允许订单的最终结算。 必须成功...

4036
来自专栏企鹅号快讯

细数那些在2017年被黑客滥用的系统管理工具和协议

“用指尖改变世界” ? 系统管理工具和合法协议原本是为了给系统管理员、信息安全专业人员、开发人员和程序员的日常工作提供灵活性和高效性而设计的。然而,当被黑客、网...

2196

扫码关注云+社区

领取腾讯云代金券