【APP渗透测试】 Android APP渗透测试技术实施以及工具使用(客户端服务端)

news2024/12/27 17:29:01

文章目录

  • 前言
  • 一、安全威胁分析
  • 二、主要风险项
  • 三、Android测试思维导图
  • 四、反编译工具
  • 五、Android客户端
    • 漏洞一、Jnaus漏洞
    • 漏洞二、数据备份配置风险漏洞
    • 漏洞三、Activity组件泄露漏洞
    • 漏洞四、BroadcastReceiver组件泄露漏洞
    • 漏洞五、允许模拟器Root环境登录漏洞
    • 漏洞六、未识别代理环境漏洞
    • 漏洞七、未使用随机布局键盘漏洞
    • 漏洞八、键盘密码截屏漏洞
    • 漏洞九、数字签名检测
    • 漏洞十、反编译保护


前言

本篇文章针对Android APP渗透测试相关技术实施以及工具的使用,文中难免会出现其他问题,麻烦各位的大佬及时指出,共同学习,再此感谢!!!


一、安全威胁分析

安全威胁从三个不同环节进行划分,主要分为客户端威胁 数据传输端威胁服务端的威胁。
在这里插入图片描述

二、主要风险项

在这里插入图片描述

三、Android测试思维导图

在这里插入图片描述

四、反编译工具

有两种反编译方式:dex2jar apktool,两个工具反编译的效果是不一样的,dex2jar反编译出java源代码,apktool反编译出来的是java汇编代码。dex2jar主要是用来把之前zip解压出来的classed.dex转成jar包的jd-gui主要是用来打开Jar包的。

五、Android客户端

漏洞一、Jnaus漏洞

测试目标:APP应用包

格式:*.apk

测试工具下载https://github.com/bihe0832/Android-GetAPKInfo

测试步骤

使用工具包内GetAPKInfo.jar 命令:java -jar GetAPKInfo.jar *.apk
在这里插入图片描述
漏洞危害

攻击者可利用Janus漏洞将一个恶意的DEX文件与原始APK文件进行拼接,从而不影响APK文件的签名。替代原有正常的App做下载、更新,用户端安装了恶意仿冒的App后,不仅会泄露个人账号、密码、照片、文件等隐私信息,手机更可能被植入木马病毒,进而或导致手机被ROOT甚至被远程操控。

安全建议

1、将APP的APK升级到最新的Signature scheme V2签名机制;
2、开发者及时校验App APK文件的开始字节,以确保App未被篡改。

漏洞二、数据备份配置风险漏洞

测试目标:APP应用包

格式:*.apk

测试工具下载https://github.com/MobSF/Mobile-Security-Framework-MobSF

测试步骤

本地安装该工具(安装步骤忽略),KALI中启动该工具并访问http://X.X.X.X:8000
打开网址,上传APK安装包,查看Android配置文件(AndroidMainifest.xml)
在这里插入图片描述
在这里插入图片描述
或直接将APK安装包后缀改为.zip,然后使用工具AMLPrinter2.jar输出.txt。

命令java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt

使用NotePad++ 打开即可看到配置文件信息

在这里插入图片描述

漏洞危害

第三方应用开发者需要在APP的AndroidManifest.xml文件中配置 allowBackup 标志(默认为 true )来设置应用数据是否能能够被备份或恢复。当这个标志被设置为 true 时应用程序数据可以在手机未获取 ROOT 的情况下通过adb调试工具来备份和恢复。在接触用户手机的情况下攻击者可以在启动手机USB调试功能来窃取那些能够受到AllowBackup漏洞影响的APP数据,造成用户敏感信息泄露甚至财产损失。

安全建议

AndroidManifest.xml文件中Application节点的android:allowBackup属性设置为 false 或是 删除该属性。

漏洞三、Activity组件泄露漏洞

测试目标:APP应用包

格式:*.apk

测试工具下载https://github.com/MobSF/Mobile-Security-Framework-MobSF AMLPrinter2.jar

测试步骤

通过AndroidManifest.xml文件查找关键字符串

com.******.******.icbcPay.PayResultHandler
com.******.******.wxapi.WXPayEntryActivity
com.******.******.alipay.AliPayEntryActivity
com.******.******.PushMessagesActivity
com.******.******.wxapi.WXEntryActivity
com.******.payment.thirdpay.channel.wx.WXEntryActivity
com.******.******.wxapi.WXPayEntryActivity
com.******.payment.thirdpay.channel.qq.QQPayEntryActivity

在这里插入图片描述
漏洞危害

导出的Activity组件能被第三方APP任意调用,攻击者可构造恶意payload进行攻击,导致敏感信息泄露,并可能受到绕过认证、恶意代码注入等攻击风险。

安全建议

1、如果Activity组件不需要与其它系统共享数据或交互,应在AndroidManifest.xml 配置文件中将该Activity组件的android:exported 属性值设置为false。如果Activity组件需要与其它APP共享数据或交互,应对Activity组件进行权限控制和参数校验。
2、在界面切换时,检测下一界面的Activity类,如不是被测系统内的界面,则提示并退出。

漏洞四、BroadcastReceiver组件泄露漏洞

测试目标:APP应用包

格式:*.apk

测试工具下载https://github.com/MobSF/Mobile-Security-Framework-MobSF AMLPrinter2.jar

测试步骤

漏洞成因:com.gotop.yjdtzt.MyBroadCastReceiver没有被保护
在这里插入图片描述
漏洞危害

导出的Broadcast Receiver组件能被第三方APP任意调用,攻击者可构造恶意payload进行攻击,攻击者可构造恶意payload进行攻击,造成用户敏感信息泄露、拒绝服务攻击等风险。

安全建议

如果组件不需要与其它系统共享数据或交互,应在AndroidManifest.xml配置文件中将该receiver的android:exported属性值设置为false。如果该receiver需要与其它APP共享数据或交互,应对receiver进行权限控制和参数校验。

漏洞五、允许模拟器Root环境登录漏洞

tips:该测试环境需要使用模拟器,可支持Root模式模块的

测试目标:APP应用包

格式:*.apk

测试工具:逍遥模拟器

测试步骤:

打开工具配置,将模式改为Root模式运行,点击启动应用
在这里插入图片描述
可以看出启动应用并未提示有关警告类消息,存在问题。

漏洞危害:允许root设备/模拟器登录会存在不安全的风险。

安全建议:检测到root或模拟器设备,提醒当前环境存在风险。

漏洞六、未识别代理环境漏洞

测试目标:APP应用包

格式:*.apk

测试工具:逍遥模拟器

漏洞成因:当设置网络代理后,APP未检测到代理,攻击者会通过客户端所操作产生的数据流量进行劫持,获取敏感信息。

测试步骤:测试机中设置代理,并启动APP应用
在这里插入图片描述
启动应用过程中,并未显示警示类消息,该行为存在问题。

漏洞危害:APP未检测网络代理时,不安全的网络代理会劫持通讯数据,存在中间人劫持的风险。

安全建议:检测当前网络环境,当设置代理时提醒用户。

漏洞七、未使用随机布局键盘漏洞

测试目标:APP应用包

格式:*.apk

测试工具:逍遥模拟器

测试步骤:打开应用,点击输入账号密码,可从底部弹出输入法
在这里插入图片描述
漏洞危害:测试客户端程序在登录密码等输入框未设置随机软键盘,容易被木马根据点位获取登录密码。

安全建议:自定义随机布局键盘。

漏洞八、键盘密码截屏漏洞

测试目标:APP应用包

格式:*.apk

测试工具:逍遥模拟器

测试步骤:打开应用,在输入账号密码时进行屏幕截图。
在这里插入图片描述
输入密码时,可通过按键回应截屏得到密码等信息。

漏洞危害:通过连续截图,可以捕捉到用户密码输入框的密码。

安全建议:建议以震动方式代替回显效果给用户反馈输入信息。

漏洞九、数字签名检测

测试目标:APP应用包

格式:*.apk

测试工具jarsigner.exe

测试命令:jarsigner.exe -verify -verbose -certs *.apk

当输出的结果为jar已验证时,表示签名正常
在这里插入图片描述
检测签名的 CN 及其他字段是否正确标识客户端程序的来源和发布者身份
在这里插入图片描述
只有在使用直接客户的证书签名时,才认为安全。 Debug 证书、第三方(如开发方)证书等等均认为风险。

漏洞十、反编译保护

问题描述:APP源代码对于一个公司是非常重要的信息资源,对APP的保护也尤为重要,APP的反编译会造成源代码被恶意者读取,以及APP的逻辑设计。

反编译方法:我们一般想要反编译一个APK,无非就是要想获得三样东西:图片资源XML资源代码资源

图片资源获取:首先准备一个APK(.apk文件),我们将其后缀改为.zip,打开zip文件在res目录下,我们就可以获取到我们需要的图片了。

XML资源获取: 想要获取.xml文件,在我们打开zip压缩包里面可以看到存在一个.xml的文件,但是呢!直接打开的话会显示乱码或者空白,那我们该如何获取这个XML资源呢,这时就需要借助一个工具AXMLPrinter2.jar,将这个工具放在与XML同一目录下使用cmd命令执行java -jar AXMLPrinter2.jar xxxxx.xml>xxxxx.txt,这个时候你就能获取到xml里的东西啦。

代码资源获取:这个就比较重要了,但这里存在一个点,这里能够正确反编译出来的只有未加密或者没有混淆的代码,如果想要反编译一些加密或者混淆后代码,我们就需要其他途径解决了。首先需要准备两样东西:dex2jar.rarjd-gui.zip这两个工具。dex2jar主要是用来把之前zip解压出来的classed.dex转成jar包的,jd-gui主要是用来打开jar包的。

Apktool用法:使用命令 java -jar apktool.jar d -f *.apk -o 文件夹名
在这里插入图片描述
dex2jar用法:把dex2jar解压后,然后将之前的zip的classes.dex放到dex2jar目录下,这里必须要与dex2jar.bat是同级目录。然后又要用到cmd。Cd到dex2jar目录下,打命令行 dex2jar.bat classes.dex,然后你的目录里会多一个jar包,多了一个classes-dex2jar.jar文件,再用jd-gui把jar打开,最终apk的代码就被剥离出来了。

检测方法:通过反编译工具看是否能够对APP进行反编译。

工具下载:
https://bitbucket.org/iBotPeaches/apktool/downloads/ -> apktool (资源文件获取)
https://github.com/pxb1988/dex2jar/releases -> dex2jar (源码文件获取)
http://java-decompiler.github.io/ -> jd-gui (源码查看)

工具介绍:
Apktool 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看。
dex2jar 作用:将apk反编译成java源码(classes.dex 转化成jar文件)。
Jd-gui 作用:查看APK中classes.dex转化为jar文件,即源码文件。

在这里插入图片描述
使用jd-dui将jar包打开
在这里插入图片描述
可以看到上图中被混淆过的class反编译后的效果图,(类文件名称以及里面的方法名称都会以a,b,c….之类的样式命名,较为安全,不会被轻易获取源码数据)。

在这里插入图片描述
修复方法:采用加密和混淆技术达到反编译保护。混淆技术作用是增加了用户反编译后阅读代码的难度。

未完,待续!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/352677.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode 刷题之 BFS 广度优先搜索【Python实现】

1. BFS 算法框架 BFS:用来搜索 最短路径 比较合适,如:求二叉树最小深度、最少步数、最少交换次数,一般与 队列 搭配使用,空间复杂度比 DFS 大很多DFS:适合搜索全部的解,如:寻找最短…

C++类和对象补充

目录 前言: 1. 构造函数->初始化列表 1.1 初始化列表出现原因 1.2 初始化列表写法 2. explicit关键字 2.1 explict的出现 2.2 explict的写法 3. static成员 4. 友元 4.1 友元函数 4.2 友元类 5. 内部类和匿名对象 5.1 内部类 5.2 匿名对象 前言&a…

python|第五章考试题及练习题

本篇文章是对北京理工大学嵩天老师的《Python语言程序设计》第五章考试题及练习题的学习记录。 一、考试题 1、随机密码生成 问题描述: 描述 补充编程模板中代码,完成如下功能:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪…

Altium Designer 18中原理图DRC编译和PCB DRC检查-AD DRC

一、原理图编译 原理图检查的主要内容有: 1、元件位号冲突。也即多个元件编号相同,例如两个电容在原理图中都被命名为C2,显然肯定是无法生成PCB的。 2、网络悬浮。也即网络标号没有附着在电气走线上,一般这种是人操作失误&…

【Azure 架构师学习笔记】-Azure Logic Apps(7)- 自定义Logic Apps 调度

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Logic Apps】系列。 接上文【Azure 架构师学习笔记】-Azure Logic Apps(6)- Logic Apps调用ADF 前言 在稍微了解Logic Apps的使用之后,需要开始考虑如何调度起来。在Logic Apps里面…

ChatGPT会让6个低端岗位失业

​我是卢松松,点点上面的头像,欢迎关注我哦! 其实最近我们也是研究探索ChatGPT的商业应用方向:比如账号买卖、卖文章、论文、脚本文案、卖使用次数和时长、OEM系统等等。 目前来看,ChatGPT会让一部分低端的岗位失业&…

GEE学习笔记 七十八:干涸的洪泽湖

今天看了一篇报道直击60年一遇气象干旱:洪泽湖缩小近一半,鱼蟹受灾严重!_新华报业网(直击60年一遇气象干旱:洪泽湖缩小近一半,鱼蟹受灾严重!),既然玩GEE那就要玩出点花样…

图学习——03预备知识

本章我们介绍关于图的基础知识,包括图的定义、类型和性质、图谱理论、图的傅里叶分析等。在之后介绍图神经网络会基于这些基础知识展开, 想要简单运用图神经网络,这部分知识可以不用学。想要系统的理解图神经网络的来源和本质,这…

2019蓝桥杯真题年号字串(填空题) C语言/C++

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小明用字母 A 对应数字 11,B 对应 2,以此类推,用 Z 对应 26。对于 27 以上的数字,小明用两位或更长位的字符串来对应&…

在Windows10上安装虚拟机---VMware 17 Pro下载与安装

在Windows10上安装虚拟机---VMware下载与安装0 前言1 下载VMware 17 pro2 安装VMware 17 Pro3. 打开Vmware0 前言 电脑原生系统:Windows10虚拟机软件:VMware 17 pro准备好安装虚拟机的文件夹路径 1 下载VMware 17 pro 下载网址:VMware 官网…

采用工时表软件能为企业员工带来哪些好处

如今社会人力成本一直在攀升,企业对提升人员工作饱和度和有效分配和利用人力资源非常在意,而工时表软件是现代被广泛应用于各行业领域,用来解决项目及非项目上的人员时效管理问题的手段之一。 企业员工工时管理不一定是一件麻烦事。采用像8M…

12.centos7部署sonarqube9.6

12.centos7部署sonarqube9.6环境:sonarqube9.6Postgresql13JDK11sonarqube9.6下载地址:Postgresql13 rpm下载地址:JDK11下载地址:准备工作:修改文件句柄数(最大文件数)和用户最大进程数限制修改…

图扑数字孪生智慧机场,助推民航“四型机场“建设

前言 民航局印发的《智慧民航建设路线图》文件中,明确提出智慧机场是智慧民航的四个核心抓手之一。并从机场全域协同运行、作业与服务智能化、智慧建造与运维方面,为智慧机场的发展绘制了清晰的蓝图。 效果展示 图扑软件应用自主研发核心产品 HT for …

Vue-Router 介绍及路由原理分析

文章目录Vue-Router 路由模式单页面与传统页面跳转的区别Hash 模式History 模式abstract 模式原理解析Hash 模式原理History 模式原理路由使用引入 Vue-Router获取全局路由跳转参数的变化获取路由中带的参数重定向页面Vue-Router 路由模式 单页面与传统页面跳转的区别 单页面…

Spark Catalyst 查询优化器原理

这里我们讲解一下SparkSQL的优化器系统Catalyst,Catalyst本质就是一个SQL查询的优化器,而且和 大多数当前的大数据SQL处理引擎设计基本相同(Impala、Presto、Hive(Calcite)等)。了解Catalyst的SQL优化流程&…

Spring 入门教程详解

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

Web3中文|1月数据显示复苏迹象,涉及NFT、DeFi、Dapp、链游……

本期看点 1、Dapp行业概述 2、DeFi的TVL增长26.8%,有回暖迹象 3、NFT市场数据飙升,交易额达9.46亿美元 4、链游使用量占行业48% 5、与去年相比,1月份区块链漏洞损失最低 区块链领域正在多元化发展,2023年1月,从各…

从一致性角度考虑推荐冷启动长尾推荐问题(二)

前言:在推荐系统中user&item emb往往是最重要的特征之一,在冷启动和长尾优化的工作中,往往也是优化的重点,相当一部分工作是围绕着emb优化展开,所以这里单独开了一章。4)emb分布一致性主要思路在于冷启内容emb和高…

PTP GPTP芯片资料翻译88E6352

88E6352应用 网关 车载信息娱乐 车身域控制器 PTP PTP通过周期型地交换控制包实现 选择其中网络最佳质量时钟元素,作为PTP网络中Grand Master.没有Grand Master 节点变成PTP slave节点。PTP节点从Grand Master节点获得他们驱动频率和时间信息。 基本观念是PTP帧…

21- 朴素贝叶斯 (NLP自然语言算法) (算法)

朴素贝叶斯要点 概率图模型算法往往应用于NLP自然语言处理领域。根据文本内容判定 分类 。 概率密度公式: 高斯朴素贝叶斯算法: from sklearn.naive_bayes import GaussianNB model GaussianNB() model.fit(X_train,y_train) 伯努利分布朴素贝叶斯算法 fro…