首页 > 代码库 > 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中,将过滤下列相关信息。

  1. 应用本身的信息”com.android.os.backup”;

  2. 提权应用的信息”eu.chainfire.supersu”、”com.koushikdutta.superuser”、”com.qihoo.permroot”;

  3. 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恶意插件