android逆向android权限(adb降权相关的属性|ro.secure属性|ro.debuggable属性|service.adb.root属性)(代(代码片段)

韩曙亮 韩曙亮     2023-01-19     134

关键词:





一、adb 降权



远程 adb 命令 , 需要通过 adbd 服务程序处理 ;

adbd 文件的权限 , 属于 root 权限 , shell 分组 ; 因此这里涉及到 adb 的降权 ( Drop Privileges ) 问题 ,

-rwxr-xr-x 1 root   shell    1758824 2009-01-01 16:00 adbd

一些系统属性可以影响 adb 是否降权 ; adb 的权限初始为 root 权限 ;


1、ro.secure 属性


ro.secure 属性 , 配置 是否开启安全防护 ; 如果该属性配置为 1 , 则 adb 的权限就会降权 ;

调用 getprop ro.secure 命令 , 获取该属性的属性值 ;

对应 /system/core/adb/adb_main.cpp 源码位置 :

#if defined(ALLOW_ADBD_ROOT)
	// 影响'adb root'和'adb unroot'的属性是ro.secure和
	// 可调试的。在此上下文中,名称不会产生预期的行为 特别明显。
	//
	// ro.debugable:
	// 允许成为根,但不一定是默认值。在上设置为1
	// eng和userdebug构建。
	//
	// ro.secure:
	// 默认情况下删除特权。在用户调试和用户生成时设置为1。
    property_get("ro.secure", value, "1");
    bool ro_secure = (strcmp(value, "1") == 0);
#else
    return true; // "adb root" not allowed, always drop privileges.
#endif /* ALLOW_ADBD_ROOT */

#endif /* ADB_HOST */

Android 源码地址 : /system/core/adb/adb_main.cpp


2、ro.debuggable 属性


ro.debuggable 属性 , 配置 是否可以调试 ;

调用 getprop ro.debuggable 获取的属性为 0 ;

对应 /system/core/adb/adb_main.cpp 源码位置 :

#if defined(ALLOW_ADBD_ROOT)

    property_get("service.adb.root", value, "");
    bool adb_root = (strcmp(value, "1") == 0); // adb_root 值为 false ; 
    bool adb_unroot = (strcmp(value, "0") == 0); // adb_unroot 值为 true 

    // ...except "adb root" lets you keep privileges in a debuggable build.
    //adb_root 为 false , 该分支不会进入 
    if (ro_debuggable && adb_root) 
    	// 该分支永远不会进来 
    	// 但是只要进来了 , 就意味着 adb 不降权 , 持有 root 权限 
        drop = false;
    

    // ...and "adb unroot" lets you explicitly drop privileges.
    if (adb_unroot) 
        drop = true;
    

    return drop;
#else
    return true; // "adb root" not allowed, always drop privileges.
#endif /* ALLOW_ADBD_ROOT */

#endif /* ADB_HOST */

Android 源码地址 : /system/core/adb/adb_main.cpp


3、service.adb.root 属性


service.adb.root 属性 , 配置 adb 是否拥有 root 权限

调用 getprop service.adb.root 命令 , 获取的值为空 ;


4、ro.kernel.qemu 属性


ro.kernel.qemu 属性 , 该属性只有模拟器有 , 手机真机没有改配置 ;

调用 getprop ro.kernel.qemu 获取的属性为空 ;

对应 /system/core/adb/adb_main.cpp 源码位置 :

#if defined(ALLOW_ADBD_ROOT)

	// 模拟器永远都不安全,所以不要在那里放弃特权。
	// TODO:这看起来像一个bug——仿真器的行为不应该像一个设备吗?
    property_get("ro.kernel.qemu", value, "");
    if (strcmp(value, "1") == 0) 
    	// 该分支永远不会命中 , 不会被执行到
        return false;
    

#else
    return true; // "adb root" not allowed, always drop privileges.
#endif /* ALLOW_ADBD_ROOT */

#endif /* ADB_HOST */

Android 源码地址 : /system/core/adb/adb_main.cpp

android逆向android权限(android逆向中使用的android.permission权限|android系统中的linux用户权限)

文章目录一、Android逆向中使用的android.permission权限二、Android系统中的Linux用户权限一、Android逆向中使用的android.permission权限Android逆向中使用的权限:android.permission.SET_DEBUG_APP:调试程序,应用有该权限后,可以指定调试相关的程序;an... 查看详情

android逆向android权限(android逆向中使用的android.permission权限|android系统中的linux用户权限)

文章目录一、Android逆向中使用的android.permission权限二、Android系统中的Linux用户权限一、Android逆向中使用的android.permission权限Android逆向中使用的权限:android.permission.SET_DEBUG_APP:调试程序,应用有该权限后,可以指定调试相关的程序;an... 查看详情

通过 adb 列出 Android 应用程序的权限

】通过adb列出Android应用程序的权限【英文标题】:ListingpermissionsofAndroidapplicationviaadb【发布时间】:2014-02-0104:23:40【问题描述】:使用adb,我如何知道Android应用程序需要哪些权限?因为我想在不同的设备上显示多个应用的​​... 查看详情

android逆向修改android系统文件(android逆向中需要经常修改的文件和目录|在root后的设备中获取/目录的rw权限后注意事项)(代码片段)

文章目录一、Android逆向中需要经常修改的文件和目录二、在root后的设备中获取/目录的rw权限后注意事项1、不要随意执行wipe命令2、不要随意执行rm命令一、Android逆向中需要经常修改的文件和目录系统配置文件:/default.prop文件是... 查看详情

android逆向修改android系统文件(android逆向中需要经常修改的文件和目录|在root后的设备中获取/目录的rw权限后注意事项)(代码片段)

文章目录一、Android逆向中需要经常修改的文件和目录二、在root后的设备中获取/目录的rw权限后注意事项1、不要随意执行wipe命令2、不要随意执行rm命令一、Android逆向中需要经常修改的文件和目录系统配置文件:/default.prop文件是... 查看详情

android逆向第一步之开启root权限(代码片段)

Android逆向第一步之开启root权限前言最近看了一些Frida相关的文章,自己也想实际手动来几个逆向操作_。恰巧手头有一款小米8的Android手机(PS:听说是最容易能拿到Root权限的国产机),想着用个把小时搞一下... 查看详情

android逆向第一步之开启root权限(代码片段)

Android逆向第一步之开启root权限前言最近看了一些Frida相关的文章,自己也想实际手动来几个逆向操作_。恰巧手头有一款小米8的Android手机(PS:听说是最容易能拿到Root权限的国产机),想着用个把小时搞一下... 查看详情

android逆向第一步之开启root权限(代码片段)

Android逆向第一步之开启root权限前言最近看了一些Frida相关的文章,自己也想实际手动来几个逆向操作_。恰巧手头有一款小米8的Android手机(PS:听说是最容易能拿到Root权限的国产机),想着用个把小时搞一下... 查看详情

android逆向android进程注入工具开发(so进程注入环境及root权限获取|进程注入时序分析)(代码片段)

...root权限后,才能调用ptrace相关函数;SO注入环境有两种情况,Android模拟器或真实手机;这里特别推荐使用雷电模拟器进行逆向操作,在真机上会出现各种问题;使用Android模拟器,如雷电模拟器,使用ld工具查看日志,查看日志命令为:ld.exel 查看详情

android逆向android逆向通用工具开发(android逆向通用工具组成部分|各模块间的关联)(代码片段)

文章目录一、Android逆向通用工具组成部分二、Android逆向通用工具各模块间的关联一、Android逆向通用工具组成部分Android逆向通用工具肯定是跨平台的,涉及到多个平台,多个CPU架构的程序;涉及如下444个程序;在PC机上运行hacktool程序... 查看详情

adb remount 权限被拒绝,但能够在 shell 中访问超级用户 -- android

】adbremount权限被拒绝,但能够在shell中访问超级用户--android【英文标题】:adbremountpermissiondenied,butabletoaccesssuperuserinshell--android【发布时间】:2012-10-1621:10:47【问题描述】:所以,我正在尝试将一些文件推送到android设备(zte)上的/s... 查看详情

android逆向android进程注入工具开发(远程进程注入动态库文件操作|android进程读取文件所需的权限|fopen打开文件标志位|验证文件权限)(代码片段)

文章目录前言一、Android进程读取文件所需的权限二、fopen打开文件标志位三、验证文件权限前言一、Android进程读取文件所需的权限通过注入工具,将libbridge.so注入到远程进程后,远程进程中,会为libbridge.so动态库分配一块内存,并将... 查看详情

android逆向android进程注入工具开发(远程进程注入动态库文件操作|android进程读取文件所需的权限|fopen打开文件标志位|验证文件权限)(代码片段)

文章目录前言一、Android进程读取文件所需的权限二、fopen打开文件标志位三、验证文件权限前言一、Android进程读取文件所需的权限通过注入工具,将libbridge.so注入到远程进程后,远程进程中,会为libbridge.so动态库分配一块内存,并将... 查看详情

android逆向linux文件权限(linux权限简介|系统权限|用户权限|匿名用户权限|读|写|执行|更改组|更改用户|粘滞)(代码片段)

文章目录一、Linux权限简介二、系统权限/用户权限/匿名用户权限1、系统权限2、用户权限3、匿名用户权限一、Linux权限简介Linux是基于文件的系统,内存,设备,各种机制等,一切皆文件;Linux中的每个文件都有自己的权限;使用ls-ll命令... 查看详情

常见的adb命令

ADB命令ADBAndroidDebugBridge安卓调试桥adbdevices(★)listallconnecteddevices罗列所有已连接的设备(检查电脑上连接的Android设备)adbkill-server停止ADB服务adbstart-server开启ADB服务adbconnect(★)连接Android设备adbdisconnect断开已连接的Android设... 查看详情

android逆向linux文件权限(linux权限简介|系统权限|用户权限|匿名用户权限|读|写|执行|更改组|更改用户|粘滞)(代码片段(代码片段)

文章目录一、Linux权限简介二、系统权限/用户权限/匿名用户权限1、系统权限2、用户权限3、匿名用户权限一、Linux权限简介Linux是基于文件的系统,内存,设备,各种机制等,一切皆文件;Linux中的每个文件都有自己的权限;使用ls-ll命令... 查看详情

android逆向android权限(ro.product.cpu.abi属性|ro.zygote属性|dhcp.eth0属性|net.*属性)(代码片段)

文章目录一、Android权限相关的重要的系统属性1、ro.product.cpu.abi属性2、ro.zygote属性3、dhcp.eth0属性4、net.*属性一、Android权限相关的重要的系统属性1、ro.product.cpu.abi属性ro.product.cpu.abi属性:该属性用于配置CPU架构类型;一般的正常的... 查看详情

android逆向android权限(ro.product.cpu.abi属性|ro.zygote属性|dhcp.eth0属性|net.*属性)(代码片段)

文章目录一、Android权限相关的重要的系统属性1、ro.product.cpu.abi属性2、ro.zygote属性3、dhcp.eth0属性4、net.*属性一、Android权限相关的重要的系统属性1、ro.product.cpu.abi属性ro.product.cpu.abi属性:该属性用于配置CPU架构类型;一般的正常的... 查看详情