主页 > 网络知识 > 手机APP客户端安全性测试相关(5)

手机APP客户端安全性测试相关(5)

 

手机APP客户端安全性测试相关

第一行是知名root管理的软件包名,第二行是root获取的软件包名。第三行第四行均是相关只有root权限才能访问的目录。

 

那么如何绕过中国建设银行客户端的root检测,让中国建设银行客户端也可以在已root设备上面正常运行呢???

第一种方法,MT管理器 访问手机目录”/system/xbin/”。

 

手机APP客户端安全性测试相关

 

删除su 文件,然后重启手机再重新打开即可绕过中国建设银行的root检测,因为su文件不存在,但是也会导致你无法重新访问手机根目录(慎用)。

第二种方法、Hook 方式绕过中国建设银行root检测

HookMain2的方法代码:

public class HookMain2 implements IXposedHookLoadPackage { private static String TAG = HookMain2.class.getSimpleName();@Overridepublic void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpParam) throws Throwable { if (!XPrefUtils.ignoreCBCWarnEnable()) { return;} if ("com.chinamworld.main".equals(lpParam.packageName)) { /*过滤中国建设银行客户端客户端 APP 包名*/getClassLoader(lpParam);/*调用getClassLoader "获取类加载"的方法*/} }

这个是在进程中捕获中国建设银行客户端的包名(com.chinamworld.main)、如果捕获到相关包名进程则 调用getClassLoader的方法代码:

private void getClassLoader(final XC_LoadPackage.LoadPackageParam lpParam) { try { XposedBridge.log("========================================== 成功获取到相关加载类名!!!");String className = "com.secneo.apkwrapper.ApplicationWrapper";/*加载类名*/Class clazz = lpParam.classLoader.loadClass(className); if (clazz != null) { XposedHelpers.findAndHookMethod(clazz,"attachBaseContext", Context.class, new XC_MethodHook() { @Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable { super.afterHookedMethod(param);Context context = (Context) param.args[0];ClassLoader classLoader = context.getClassLoader(); if ("com.chinamworld.main".equals(lpParam.packageName)) { XposedBridge.log("成功在到此设备检测到中国建设银行客户端运行");hookMainActivity(classLoader);XposedBridge.log("中国建设银行 绕过成功");} } });} } catch (Exception e) { LogUtil.e(TAG, "getClassLoader error: " + e.getLocalizedMessage());} }

hookMainActivity核心代码

private void hookMainActivity(ClassLoader classLoader) throws ClassNotFoundException { XposedBridge.log("尝试Hook绕过!!!");/*中国建设银行-Hook劫持绕过Root检测*/String className = "com.ccb.start.MainActivity";Class loadClass = classLoader.loadClass(className);XposedHelpers.findAndHookMethod(loadClass, "checkRoot", Context.class, new XC_MethodReplacement() { @Overrideprotected Object replaceHookedMethod(MethodHookParam param) throws Throwable { return null;} });XposedBridge.log("Hook 绕过成功!!!");} }

replaceHookedMethod 会完全替换返回checkRoot 原方法的值为null,则root状态为false ,否则为ture,弹出设备已root警告=>强制退出客户端

Xposed 日志:

 

手机APP客户端安全性测试相关

 

手机APP客户端安全性测试相关

 

可以看到已经成功绕过中国建设银行root检测,至于危害性有多大需要根据攻击者的自身的实力来断定;攻击者可以利用绕过中国建设银行的噱头来骗取小白安装,然后在模块中嵌入一个后门(https://blog.csdn.net/ALDYS4/article/details/102878693),实现反弹shell ,Metasplot 植入Xposed 模块反弹shell 

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!