首页 > 代码库 > Xposed恶意插件
Xposed恶意插件
Post by 南山
安天移动安全团队最近发现了一个使用Xposed恶意插件来实现隐藏和伪装自己的恶意样本,并通过HOOK Activity相关的系统API,来获取重要Activity上的用户输入,如支付宝、手机银行、QQ等登录界面的账号和密码。
Xposed框架是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。(需root权限)
一、隐藏自己。
HOOK–android.app.ApplicationPackageManager->getInstalledApplications
HOOK–android.app.ApplicationPackageManager->queryIntentActivities
HOOK–android.app.ActivityManager->getRunningServices
HOOK–android.app.ActivityManager->getRunningAppProcesses
在上述api调用完成后,即afterHookedMethod中,将过滤下列相关信息。
应用本身的信息”com.android.os.backup”;
提权应用的信息”eu.chainfire.supersu”、”com.koushikdutta.superuser”、”com.qihoo.permroot”;
xposed框架应用”de.robv.android.xposed.installer”;
如getInstalledApplications被hook后的处理方法:
二、伪装成系统应用。
HOOK–getPackagesForUid
在通过getPackagesForUid获取指定id的包名时,hook该api方法后,将”com.android.os.back”替换成”android”,伪装成系统应用。
三、干涉应用权限的检查。
HOOK–android.app.ApplicationPackageManager->checkPermission
HOOK–android.app.ContextImpl->checkPermission
hook了两处权限检查,只要是qihao360的权限检查,则一律拦截,而对该应用本身的权限检查,则全部放行。
四、获取Activity中EditText输入的内容。
HOOK–android.widget.TextView->setInputType
HOOK–android.app.Activity->onPause
hook住setInputType方法后,将触发这个操作的类名保存下来。
HOOK住Activity->onPause方法后,在确认有EditText输入操作发生后,将会获取该Activity所属于的包名、标题等信息,在进一步的操作中会继续获取EditText中的输入内容和Hint内容,然后保存到数据库,等待上传。
通过这种方式,可以获取如支付宝、手机银行、QQ等重要应用中的账户信息。
该样本利用Xposed恶意插件实现隐藏、伪装,并窃取重要Activity的输入信息,达到了以低成本低开发难度来实现更多高难度的技术及行为。用户可以下载安装AVL Pro对该类木马进行检测和查杀,AVL Pro实时防护,帮助大家摆脱病毒营造良好手机环境!
Xposed恶意插件