Root环境检测

0x01 漏洞描述

Android安全架构是基于Linux多用户机制的访问控制。在Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者。在系统中,每个文件、目录和进程,都归属于某一个用户,没有用户许可其它普通用户是无法操作的,但对root除外。

root用户的特权性还表现在:

  • 对文件或目录进行读取、修改或删除;
  • 对可执行程序的执行、终止;
  • 对硬件设备的添加、创建和移除等;
  • 对文件和目录进行属主和权限进行修改,以适合系统管理的需要;
  • root是超越任何用户和用户组的,基于用户ID的权限机制的沙盒是无法隔离的。

0x02 漏洞危害

攻击者可在root的终端上对应用程序进行动态调试、内存访问篡改、Hook应用程序与服务端交互流量等。

0x03 修复意见

3.1 查看系统是否为测试版

可以查看发布的系统版本,是test-keys(测试版),还是release-keys(发布版)。

可是在实际情况下,也有某些厂家的正式发布版本也是test-keys

3.2 检查是否存在Superuser.apk

Superuser.apk是一个被广泛使用的用来root安卓设备的软件,所以可以检查这个app是否存在。

3.3 检查su命令

su是Linux下切换用户的命令,在使用时不带参数,就是切换到超级用户。通常我们获取root权限,就是使用su命令来实现的,所以可以检查这个命令是否存在。

3.4 执行busybox

BusyBox集成压缩了 Linux 的许多工具和命令,所以若设备root了,很可能Busybox也被安装上了。

3.5 访问/data目录,查看读写权限

在Android系统中,有些目录是普通用户不能访问的,例如 /data/system/etc等。

可以以/data为例,来进行读写访问。先写入一个文件,然后读出,查看内容是否匹配,若匹配,才认为系统已经root了。

具体代码可参考:

Android root检测方法小结

模拟器环境检测

0x01 漏洞描述

安卓模拟器是一种可以运行在电脑上的虚拟设备,通过它可以实现应用的跨平台操作,让移动端APP无需任何改动即可在PC上执行。

模拟器作为一种虚拟机,配合改机工具,能够以较低成本实现设备多开,因此而备受黑灰产的青睐。

0x02 漏洞危害

  • 可利用PC端其他辅助工具完成对移动端应用的支持,如通过按键精灵完成自动挂机等操作。
  • 通过模拟器多开功能,零成本体验同时多部手机、多个账户开小黑屋,实现刷单、薅羊毛。
  • 通过模拟器虚拟定位伪造真实地理位置。
  • 。。。

0x03 修复意见

在客户端代码中增加模拟器检测代码。

模拟器的检测秉持一句话:抓取特征值与真机比较。

可参考下列文章:

Android模拟器检测体系梳理)

检测Android虚拟机的方法和代码实现

代理环境检测

0x01 漏洞描述

APP客户端通过宿主机与服务器进行流量交互,攻击者可通过设置Wi-Fi、网卡代理进行中间人劫持,抓取通信过程中的流量包,进行进一步分析利用。

0x02 漏洞危害

攻击者可利用Charles、fiddler、BurpSuite等抓包工具,抓包分析网络流量及api接口信息,从而进一步分析相关接口、参数等安全问题。

0x03 修复意见

  • 检查是不是用了Http代理,如果是,客户端不发送网络请求;
  • 通过Okhttp设置默认代理;

代码可参考:

Android检测代理

最后修改:2021 年 06 月 23 日 11 : 48 PM
如果觉得我的文章对你有用,请随意赞赏