Android.KungFu手机病毒原理及清理方法
原文链接:http://jingyan.baidu.com/article/363872ec8ad56b6e4ba16fb1.html
Android.KungFu手机病毒清理方法
- 浏览:3333
- |
- 更新:2012-02-17 15:27
- |
- 标签: android
Android.KungFu最早在6月份被安全厂商截获,随后又出现了至少3种不同的变种,截止到发文为止,这款病毒仍然在不断演化。KungFu系列病毒的特征非常典型,感染此病毒的手机会自动在后台静默下载并安装某些软件,当手机感染此病毒后使用常规安全软件无法彻底清除,甚至将手机恢复至出厂设置也无法解决问题,这款病毒通常会捆绑在某些合法软件内,在第三方Android应用市场和论坛中传播,常见的宿主包括一键XXX(免费)、音乐随身听等,截止到发文为止,LBE团队已经通知各大第三方Android应用市场和论坛关注该类型的应用。
步骤/方法
Android.KungFu整体架构由两个模块构成,第一个模块(Loader)会在宿主运行到特定场景时激活,随后执行提权操作,并加载第二个模块(Payload),Payload模块则常驻内存,执行各种威胁手机安全的操作。Android.KungFu不同的变种之间,区别主要在于不同的Loader,Payload模块则基本相同。当Loader模块被激活后,首先会试图获得ROOT权限。根据宿主软件的不同,Loader会采用不同的策略,如果Loader宿主本身需要ROOT 权限,Loader就会附着在宿主需要以ROOT权限执行的代码之后运行(例如一键XXX免费版,其中捆绑的Android.KungFu会嵌入在安装 XXX的代码中)。如果宿主本身不需要ROOT权限,Loader会利用公开的漏洞(NPROC_RLIMIT)在后台静默获取ROOT权限(例如音乐随 身听)。由于这个漏洞广泛的存在于Android2.1和2.2设备上,所以,即使手机没有ROOT权限,多数手机依然会受这个病毒威胁。

然后,随后,Loader会进行以下操作(不同的变种具体细节可能不同):
将系统分区设置为可写
获取设备信息,包括系统版本,手机品牌,Device ID,SDK版本等数据,写mycfg.ini,并将此ini文件复制到/system/etc下重命名为.rild_cfg
使用AES加密算法解密Payload(Payload通常保存在宿主的assets中,名为Webview.db.init),并将Payload复制以下位置:
/system/etc/.dhcpcd
/system/xbin/ccb
/system/bin/installd(将原始文件备份为/system/bin/installdd)
/system/bin/dhcpcd(将原始文件备份为/system/bin/dhcpcdd)
/system/bin/bootanimation(将原始文件备份为/system/bin/bootanimationd)
恢复系统分区为只读,并执行/system/xbin/ccb
至此,Payload已经完成金蝉脱壳,从宿主APK中成功的被释放出来了。由于病毒替换的关键系统文件(installd, dhcpcd, bootanimation)在开机过程中会自动启动,因此病毒实际上具备了以ROOT权限开机自动启动的能力。同时,由于Payload已经脱离APK 藏身于系统分区内,即使安全软件检测到病毒,也无法进行清理操作。
当Payload随系统自动启动之后,会尝试连接以下地址,获取攻击命令:http://search.gongfu-android.com:8511
http://search.zi18.com:8511
http://search.zs169.com:8511
由于Payload感染了多个系统进程,为避免相互冲突,当任意一个Payload进程连接至控制服务器后,便创建/system/etc/dhcpcd.lock文件锁来进行进程同步。
目前Payload已知的功能包括:
自动下载APK软件包至本地
静默安装APK软件包
启动指定APK软件包
静默卸载APK软件包
设置浏览器首页(未使用)
至此,病毒就会源源不断的向受感染的手机中自动下载并安装软件,从中获取高额利益了。
清除方法
使用专杀工具
由于Android.KungFu的特殊性,常规安全软件无法完全清除此病毒,因此LBE小组提供了针对Android.KungFu的专杀工具,彻底清理Android.KungFu在系统内的残留,您可以从http://www.lbesec.com/下载到此工具。需要注意的是,使用此工具之前,您必须使用安全软件全盘扫描,确保所有感染病毒的APK文件已被清理,否则有可能清除不彻底导致重新感染。
手工清理
我们推荐用户使用专杀工具,方便快捷,但如果您希望能自己动手的话,也可以手工清除Android.KungFu残留。同样在手工清除前,请使用安全软件全盘扫描,确保所有感染病毒的APK文件已被清理,否则有可能清除不彻底导致重新感染。
如果您的手机未安装过Busybox,请首先安装Busybox https://market.android.com/details?id=stericson.busybox
使用超级终端软件,或者在PC上使用adb shell连接至手机,获取root权限后,执行以下命令:
busybox mount –o remount,rw /system
busybox chattr –i /system/etc/.dhcpcd
busybox rm /system/etc/.dhcpcd
busybox chattr –i /system/etc/dhcpcd.lock
busybox rm /system/etc/dhcpcd.lock
busybox chattr –i /system/etc/.rild_cfg
busybox rm /system/etc/.rild_cfg
busybox chattr –i /system/xbin/ccb
busybox rm /system/xbin/ccb
如果/system/bin/installdd文件存在的话,执行以下操作
busybox rm /system/bin/installd
busybox mv /system/bin/installdd /system/bin/installd
如果/system/bin/dhcpcdd文件存在的话,执行以下操作
busybox rm /system/bin/dhcpcd
busybox rm /system/bin/dhcpcdd /system/bin/dhcpcd
如果/system/bin/bootanimationd文件存在的话,执行以下操作
busybox mv /system/bin/bootanimation
busybox mv /system/bin/bootanimiationd /system/bin/bootanimation
最后,重启手机,完成清理
reboot
对以上操作的一些说明:
chattr命令是用来去除文件的EXT2_IMMUTABLE_FL标志位。如果系统分区使用ext文件系统的话,病毒会给所有受感染的文件设置此标志 位,此标志位可以防止文件被删除(这也是有些用户尝试用RE管理器删除失败的原因)。如果您在执行chattr命令的时候出现错误,也不要惊慌,这说明您 的系统分区不是ext文件系统,只要随后的rm命令能够成功执行,就表示清理操作已成功。
结语和分析
以破坏系统、炫耀技术为目标的恶意软件早已淡出视线,如今的恶意软件都以明确的利益为导向,Android.KungFu也不例外。根据用户报告,该病毒 会自动向用户手机中安装并激活下列软件:大众点评、游戏快递、有你短信、京东商城、当当网、银联、盛大切客、云中书城等。很明显,这是一款通过自动推送并 静默安装软件,以获取推广费用为目的的恶意软件。根据当前市场上一个有效激活大约2元人民币的价格,我们不难算出病毒作者以损害用户经济利益为代价,轻易 攫取了高额的回报。
目前多数安全软件(包括我们LBE小组的软件在内)仅仅会扫描APK文件,而以Android.KungFu为代表的恶意软件,则已经具备初步的感染ELF文件的能力。安全厂商应尽快跟进,加强ELF文件扫描的能力。
由于Android平台的漏洞的频频出现,而厂商在ROM更新方面相对滞后,导致相当一部分Android设备暴漏在提权漏洞的威胁中。作为Android用户,您切不可认为不ROOT就等于安全(更何况,还有相当多的恶意软件无需ROOT也可以运行)。我们建议您:只通过安全的途径下载使用软件,不安装来历不明的软件(谨慎安装各种汉化版、破解版软件),使用一款安全软件,通过以上途径来保护您手机的安全。
Android.KungFu手机病毒原理及清理方法的更多相关文章
- Android自复制传播APP原理学习(翻译)
Android自复制传播APP原理学习(翻译) 1 背景介绍 论文链接:http://arxiv.org/abs/1511.00444 项目地址:https://github.com/Tribler ...
- (转)Android 系统 root 破解原理分析
现在Android系统的root破解基本上成为大家的必备技能!网上也有很多中一键破解的软件,使root破解越来越容易.但是你思考过root破解的 原理吗?root破解的本质是什么呢?难道是利用了Lin ...
- Android/IOS手机使用Fiddler抓包
对于Android和IOS开发及测试的同事来说抓包是一个很重要的事,有利于排查问题所在,快速定位问题.但长期以来一直没有一款可以快速抓包的工具,直到有了Fiddler2. 使用步骤: 1. Fidd ...
- 腾讯技术分享:Android版手机QQ的缓存监控与优化实践
本文内容整理自公众号腾讯Bugly,感谢原作者的分享. 1.问题背景 对于Android应用来说,内存向来是比较重要的性能指标.内存占用过高,会影响应用的流畅度,甚至引发OOM,非常影响用户体验.因此 ...
- Wireshark-配合tcpdump对Android(安卓)手机抓包
环境:Windows, 安装真机(可以获取Root权限), adb, Wireshark, tcpdump 原理: 使用 tcpdump 进行抓包, 然后用 Wireshark 进行分析 1.获取手机 ...
- 028 Android 旋转动画+病毒查杀效果+自定义样式的ProgressBar
1.目标效果 旋转动画+病毒查杀效果 2.xml布局文件 (1)activity_kill_virus.xml <?xml version="1.0" encoding=&q ...
- Android端代码染色原理及技术实践
导读 高德地图开放平台产品不断迭代,代码逻辑越来越复杂,现有的测试流程不能保证完全覆盖所有业务代码,测试不到的代码及分支,会存在一定的风险.为了保证测试全面覆盖,需要引入代码覆盖率做为测试指标,需要对 ...
- Android敲诈者病毒“安卓性能激活”分析(2015年9月版)
一.情况简介 前几天分析了论坛里的一个Android敲诈者病毒,感觉还是很有收获,后面有空多研究研究Android病毒.说句题外话, 根据前面分析的Android敲诈者病毒的隐藏手法,应该可以实现&q ...
- 深入探索Android热修复技术原理读书笔记 —— 代码热修复技术
在前一篇文章 深入探索Android热修复技术原理读书笔记 -- 热修复技术介绍中,对热修复技术进行了介绍,下面将详细介绍其中的代码修复技术. 1 底层热替换原理 在各种 Android 热修复方案中 ...
随机推荐
- 使用base64对图片的二进制进行编码,使其可以利用ajax进行显示
有时候我们需要动态的将图片的二进制在页面上进行显示,如我们需要弄一个验证码的功能,那么如果我们的验证码的图片在后台得到的是该图片的二进制,那么当我们需要在页面上点击一个按钮利用ajax进行切换的时候, ...
- PHP abstract与interface之间的区别
1.php 接口类:interface 其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口 ...
- Python与数据结构[4] -> 散列表[2] -> 开放定址法与再散列的 Python 实现
开放定址散列法和再散列 目录 开放定址法 再散列 代码实现 1 开放定址散列法 前面利用分离链接法解决了散列表插入冲突的问题,而除了分离链接法外,还可以使用开放定址法来解决散列表的冲突问题. 开放定 ...
- ASP.NET Core 2.2 基础知识(一) 依赖注入
依赖: 类A用到了类B,我们就说类A依赖类B.如果一个类没有任何地方使用到,那这个类基本上可以删掉了. public class Test { private MyDependency md = ne ...
- [姿势]cpp - memset
头文件:memory.h 可以刷的有: memset(array,,sizeof(array)); //全部赋0 memset(array,-,sizeof(array)); //全部赋-1 用法和用 ...
- 3.3常用类(java学习笔记)Runtime与Process
一.Runtime 我们来看下文档中对Runtime的说明: 每一个java程序都有一个属于Runtime类的实例,它允许程序连接到程序运行环境. 当前runtime可以用getRuntime()方法 ...
- MAC接普通外置键盘的修改键位的方法
使用mac电脑已经有一年多,现在对它的喜欢是每天都在增加,甚至有些离不开了.今天突然想接个外置键盘,在使用过程中,遇到一些问题,记录一下. 使用过mac的同学都知道,mac键盘有一个最大的特点是: 比 ...
- 关于MYsql 多字段排序
SELECT switch_data.* , lan_data.ename FROM switch_data , lan_data WHERE switch_data.address = '佳合丽景' ...
- Matlab与神经网络入门
第一节.神经网络基本原理 1. 人工神经元( Artificial Neuron )模型 人工神经元是神经网络的基本元素,其原理可以用下图表示: 图1. 人工神经元模型 图中x1~xn是从其他神经 ...
- Inno Setup入门(十三)——Pascal脚本(2)
事件函数(2) function CheckPassword(Password: String): Boolean; 如果安装程序在Pascal 脚本中发现该函数,它自动显示密码页并调用CheckPa ...