Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

安卓ELF恶意软件深度分析

$
0
0
ELF病毒背景 1.Android病毒发展趋势

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

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

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

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

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

2.ELF病毒纪元图
安卓ELF恶意软件深度分析

感染情况:

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


安卓ELF恶意软件深度分析

主要两大家族感染量


安卓ELF恶意软件深度分析
安卓ELF恶意软件深度分析
3.感染用户案例

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


安卓ELF恶意软件深度分析
安卓ELF恶意软件深度分析
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。


安卓ELF恶意软件深度分析

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


安卓ELF恶意软件深度分析

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

/system/xbin/su8

/system/xbin/sugote

/system/xbin/supolicy

/system/xbin/daemonsu

2.对抗

伪装替换系统服务

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


安卓ELF恶意软件深度分析

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


安卓ELF恶意软件深度分析

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

感染boot.img

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


安卓ELF恶意软件深度分析

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

创建守护进程

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


安卓ELF恶意软件深度分析

修改病毒隐藏权限

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

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


安卓ELF恶意软件深度分析
安卓ELF恶意软件深度分析

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


安卓ELF恶意软件深度分析
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


安卓ELF恶意软件深度分析
4.注入

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

注入浏览器进行流量劫持

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

ringect注入器(通过ptrace):


安卓ELF恶意软件深度分析

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


安卓ELF恶意软件深度分析

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


安卓ELF恶意软件深度分析

正常访问网络流程:


安卓ELF恶意软件深度分析

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


安卓ELF恶意软件深度分析

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

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


安卓ELF恶意软件深度分析
ELF病毒所在目录 1.所在目录

/system/bin

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

/system/xbin

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

/sbin

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

/system/etc/

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

/system/usr

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

/data/local/tmp/

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

2.目录特点 目录占比图:
安卓ELF恶意软件深度分析

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

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

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

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

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

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

ELF病毒ROOT(提权)方案 1.分类

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

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


安卓ELF恶意软件深度分析
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的目的。


安卓ELF恶意软件深度分析

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


安卓ELF恶意软件深度分析

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


安卓ELF恶意软件深度分析
3.针对性 普通杀软难于针对性的对不同危害的ELF进行处理。 专杀的解决方案

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

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

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

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

查杀效果


安卓ELF恶意软件深度分析
安卓ELF恶意软件深度分析

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


Viewing all articles
Browse latest Browse all 12749

Trending Articles