Android环境检测与绕过对抗

Android环境检测与绕过对抗

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

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

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

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

提示

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

常见的环境检测方案#

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

对抗检测#

Root 对抗#

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

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

2. 安装 Shamiko 模块#


直达链接

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

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


直达连接

4. 开启 Shamiko 白名单#

注意

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

至此完成 Root 检测屏蔽

应用检测对抗#

1. 安装 HideMyAppList#


直达链接

2. 安装 HideMyAppList 的 Magisk 插件#

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

3. 创建应用隐藏模板#

4.对目标 App 进行隐藏#

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

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

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

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

代理检测对抗#

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

注意

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

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

 
  1. adb shell
  2. su root
  3. cd /data/misc/user/0/cacerts-added
  4. mount -o remount,rw /system
  5. cp * /etc/security/cacerts/
  6. mount -o remount,ro /system
  • 方案一:使用安卓端 VPN 抓包工具 HttpCanary
    直达链接,建议下载 3.3.6 版本

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

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

单向认证#

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

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

双向认证#

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

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

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

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

SELinux 检测对抗#

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

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

加壳对抗#

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

  • 一代壳二代壳用 BlackDex 脱壳效果不错:
    链接直达
  • Dex-dump 也是不错的选择,针对爱加密有奇效:
    链接直达
  • 手动编译一个安卓脱壳机来脱壳:
    链接直达

常见问题定位技巧#

以下只是方便快速定位 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,他会告诉你是什么原因导致的抓包失败,并告诉你解决方案。

原文地址:Android环境检测与绕过对抗原创 | CN-SEC 中文网

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值