Android环境检测与绕过对抗原创

admin 2022年10月30日19:37:57Android环境检测与绕过对抗原创已关闭评论1,461 views1字数 2024阅读6分44秒阅读模式

近几年,各个厂商安全意识提高了~这本来是件好事....

可是吧...总感觉方向错了....

一直孜孜不倦的加强客户端的代码保护、环境检测....

PC 端各种客户端加壳、虚拟机检测等保护早就证明了一个道理:客户端安全永远比不上服务端安全。

提示

此处的环境以 Lsposed(Zygisk 版)+Magisk(Zygisk 模式)为例。

常见的环境检测方案#

  • 检测 Root 权限,例如直接请求 root 权限,或者查找 su 文件;
  • 检测是否存在 Magisk、Xposed 管理器以及 Xposed 模块;
  • 进行进程 Trace,检测是否存在 Xposed 进程、Frida 进程;
  • 进行代理检测,检测是否通过代理连接网络;
  • 进行 VPN 检测,检测是否通过 VPN 连接网络;
  • 采用单向认证、双向认证方案;
  • 检测 SELinux 状态,检测是否为开启状态;
  • 加各种乱七八糟的壳;
  • 检测 Bootloader 锁定情况,默认为锁定;
  • 检测是否开启调试模式;

对抗检测#

Root 对抗#

Magisk 需要安装最新版本:
直达链接

1. 按照下图配置开启 Zygisk#

image-20220705134737164

2. 安装 Shamiko 模块#


直达链接

下载下来的是 magisk 模块,通过内置选择器安装。

image-20220705135531434

3. 安装 Shamiko 白名单管理工具#


直达连接

4. 开启 Shamiko 白名单#

注意

shamiko 开启白名单后会屏蔽所有 root 请求,只有关闭白名单才能收到 root 请求

image-20220705135958529

至此完成 Root 检测屏蔽

应用检测对抗#

1. 安装 HideMyAppList#


直达链接

2. 安装 HideMyAppList 的 Magisk 插件#

需要关闭 shamiko 的白名单模式,安装完成后重新启动

image-20220705140555487

3. 创建应用隐藏模板#

image-20220705141058580

4.对目标 App 进行隐藏#

隐藏完成后需要重新启动 app

image-20220705141725025

进程 Trace 对抗、VPN 检测对抗#

使用对话框取消这个模块来搞定,
直达链接

image-20220705143402332

frida 检测问题可以采用去特征的 Frida:
链接直达

代理检测对抗#

该方案适用于检测代理或者 App 干脆不走代理的情况。

注意

安卓 7 以上版本,系统不再信任用户安装的证书,可以手动操作移动到系统目录;

安卓 11 以上版本不支持直接将证书移动到系统目录,可以使用 Magisk 模块 MagiskTrustUserCerts 解决:https://github.com/NVISOsecurity/MagiskTrustUserCerts/releases,安装完证书后需要重新启动;



adb shell 

su root 

cd /data/misc/user/0/cacerts-added 

mount -o remount,rw /system 

cp * /etc/security/cacerts/ 

mount -o remount,ro /system 
  • 方案一:使用安卓端 VPN 抓包工具 HttpCanary
    直达链接
    ,建议下载 3.3.6 版本

image-20220705154451331

  • 方案二:使用 drony,开启虚拟 VPN,让 VPN 走代理即可,
    直达链接

image-20220705160023440

单向认证、双向认证对抗#

单向认证#

使用 JustTrustMe++ 模块,
直达链接
,使用方式比较傻瓜,推荐使用。

或者使用 Frida 脚本 ssl-pining-bypass:
直达链接

双向认证#

  • 先用单向认证的办法搞定一半

  • 解包,找证书(一般为 P12 后缀)

    tree -NCfhl |grep -i p12
    
    
  • 抓密码,这是最麻烦的一点

    • 采用 frida 脚本 hook 快速定位:
      直达链接
    • 自己手动去跟踪~
  • 将证书和密码导入代理工具,例如 burp~

SELinux 检测对抗#

一般的 rom 是默认开启 selinux 的,有的定制的 rom 可能会关闭 selinux。

检测 selinux,目前就遇到一个天翼支付会检测这个东西。

加壳对抗#

永远不要把你解决加壳问题的办法告诉客户,不然你会陷入无休止的 加壳-> 脱壳-> 加壳 中来~

常见问题定位技巧#

以下只是方便快速定位 app 可能做了哪些防护措施

打开 app 直接闪退#

  • 检测 root、检测 Magisk 环境等...
  • 检测进程、检测 xposed、检测 frida 等....
  • 检测虚拟机...
  • app 所使用的 api 不支持(比如安卓 10 使用安卓 12 的 api)
  • app 中使用 C++/C 编写的拓展没有编译对应平台(比如你在模拟器运行 apk 闪退,真机运行正常,这个情况就是 apk 没有编译 x86 的 so 文件导致的)

弹出环境异常并存在退出按钮#

一个不一定可以用,但是测试过的方法可以绕过:

使用**进程 Trace 对抗、VPN 检测对抗**中的对话框取消功能,开启作用之后,点弹窗的其他位置,理想情况下是直接关闭弹窗并进入 app,不理想的情况下就是直接退出 app。

  • 检测 root、检测 Magisk 环境等...
  • 检测进程、检测 xposed、检测 frida 等....
  • 检测虚拟机...

弹出网络异常#

  • 检测代理或者 VPN 了
  • 证书存在问题
  • 网络真的挂了

定位网络问题我比较推荐使用 HttpCanary,他会告诉你是什么原因导致的抓包失败,并告诉你解决方案。

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月30日19:37:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Android环境检测与绕过对抗原创http://cn-sec.com/archives/1379961.html