APP客户端安全评估思路及工具分享

APP客户端安全评估工具分享

所有工具都在APP客户端安全评估工具.zip中,需要的转存到夸克网盘自行下载,及时保存防止失效

https://pan.quark.cn/s/a7fa88275300

反编译保护评估工具

apkscanpkid_jb51.rar

jadx-gui-1.5.3-with-jre-win.zip

安装包签名校验工具

keytool.exe

APP测试神器AndroidKiller(后续很多测试都是用的这款工具)

androidkiller_69033

组件安全测试必备工具(drozer低版本比较稳定)

drozer-installer-2.3.4.zip

夜神模拟器安装包(手机测试效果更佳,有些应用会检测虚拟环境)

夜神模拟器_bh231786891.exe

APP客户端安全评估思路

客户端程序安全

1.反编译保护

双击运行解压出来的jadx-gui-1.5.3.exe
将apk包拖入即可

2.安装包签名

使用keytoll.exe即可查看签名
复制代码
keytool -printcert -jarfile xxxxxx.apk

3.应用完整性校验(可以重新打包是高风险)

配置工具

Android Killer、apktool(官网下载最新版本即可)

替换Android Killer 里的apktool为最新版
新增test.txt看能否重新打包即可

4.程序数据任意备份

查找android:allowBackup

当在AndroidManifest.xml文件中未设置android:allowBackup属性值或,设置android:allowBackup="true"时,可对应用程序私有目录下的所有数据进行备份。

5.程序可被任意调试

查找android:debuggable

当在AndroidManifest.xml文件中设置android:debuggable="true"时,应用程序可以以调试模式启动,并被任意调试器附加调试。

6.资源文件保护

Android apk中的资源主要分为assets资源和res资源两类.Assets资源存放在APP的assets目录下,该类文件是一些原始文件,APP打包时并不会对其进行编译,而是直接打包到APP中,对于这一类资源文件的访问,应用层代码需要通过文件名对其进行访问。Res资源则存放在APP的res目录下,该类资源在APP打包时大多会被编译,变成二进制文件,并会为每个该类文件赋予一个resource id。对于该类资源的访问,应用层代码则是通过resource id进行访问的.Android apk开发过程中公司大都提倡命名规范化,因此通过文件名称非常容易理解其含义,这样有利于开发者理解和维护应用,但是同时也给应用破解者提供了方便,破解者通过这些命名很容易便可找到他们需要的文件位置,并理解这些文件的意图。

看反编译后的代码有没有进行混淆

组件安全

测试工具准备

Android Killer、apktool(官网下载最新版本即可)、夜神模拟器(安装包在压缩包中)

首先运行setup.exe安装drozer程序
夜神模拟器安装并运行agent

在夜神模拟器上安装agent.apk,安装完成后运行,点击右下角显示为"关闭"的按钮使其转变为"开启"状态:

进行adb连接

打开夜神模拟器的bin目录,该目录中有adb程序nox_adb.exe,打开命令行运行以下命令:>nox_adb.exe forward tcp:31415 tcp:31415

打开drozer的安装目录,打开命令行运行以下命令进行连接:

>drozer console connect

1.Activity组件越权

待测APP的包名在工程信息中,com.xxx.xxx.xxx

列出可被调用的activity组件

run app.activity.info -a package name

2.Activity拒绝服务

在模拟器中打开测试app,然后在drozer命令行中使用以下命令逐个调用activity组件,观察是否会引起app崩溃,造成拒绝服务:

逐个调用activity组件

run app.activity.start --component package name component name

3.Activity劫持

Activity劫持是指当启动某个窗口组件时,被恶意应用探知.若该窗口界面是恶意程序预设的攻击对象,恶意应用将启动自己仿冒的界面覆盖原界面。用户在毫无察觉的情况下输入登录信息,恶意程序在把获取的数据返回给服务端。

使用Activity劫持测试工具,网上自行搜索

4.Service组件越权

列出待测app可被外部调用的Service组件列表

run app.service.info -a package name

逐个调用Service,检查是否会能进行进程管理或其他越权操作

run app.service.start --component package name component name

5.Service拒绝服务

逐个调用Service组件,观察是否会引起app崩溃,造成拒绝服务

run app.service.start --component package name component name

6.BroadcastReceiver组件越权

列出待测app可被外部调用的Receiver组件列表

run app.broadcast.info -a package name

7.BroadcastReceiver拒绝服务

逐个调用Receiver组件,观察是否会引起app崩溃,造成拒绝服务:

run app.broadcast.send --component package name component name

8.Content Provider SQL注入

列出待测app可被外部调用的Provider组件列表:

run app.provider.info -a package name

使用以下命令查看有哪些uri可以访问

run scanner.provider.finduris -a package name

检测是否存在本地SQL注入漏洞

run scanner.provider.injection -a package name

9.Content Provider目录遍历

列出待测app可被外部调用的Provider组件列表:

run app.provider.info -a package name

使用以下命令可检测是否存在目录遍历漏洞:

run scanner.provider.traversal -a package name

10.WebView远程代码执行

检测是否有调用addJavascriptInterface接口:

全局搜索关键字Landroid/webkit/WebView;->addJavascriptInterface(,检查是否有使用addJavascriptInterface接口。

11.WebView未移除系统默认接口

检查是否处在漏洞影响范围

该漏洞影响范围为Android 4.2及以下,即SDK 17及以下,所以首先检查待测APK限制的最低SDK版本是否是17或以下。

运行环境检测

1.Root环境检测

2.Ptrace注入检测

3.网络环境监测

4.模拟器运行检测

敏感信息安全

1.SharedPreferences明文保存敏感信息

2.SharedPreferences未作加密保护

3.SQLite明文保存敏感信息

4.SQLite未作加密保护

5.Log输出敏感信息

网络通信安全

1.通信加密检测

2.关键字段加密

3.安全退出检测

4.网络切换保护

5.开放端口检测

6.证书有效性

安全策略设置

手势密码安全性

资料来源内部文档,不能提供特别详细教程请见谅

可以看看我的面试题,入职看完整版

https://blog.csdn.net/2301_79090248/article/details/156995183

相关推荐
九硕智慧建筑一体化厂家12 分钟前
直流智能照明|一站式低碳照明解决方案,安全、节能、降本、全场景适配
安全
小程故事多_805 小时前
算力工厂与安全沙箱,企业AI规模化落地的两条核心生命线
人工智能·安全
Demons_kirit6 小时前
实验:文件路径遍历,简单情况(Lab: File path traversal, simple case)
网络安全
牛马工作号6 小时前
Zigbee 专业详解:从协议到排障
网络·物联网·安全
延凡科技6 小时前
智慧燃气解决方案:管道煤气监管应用管理系统(三维GIS+IoT+大数据落地实战)
大数据·人工智能·科技·物联网·安全
spear8006 小时前
高压绝缘测试安全指南:击穿保护、燃弧定位、快速放电、抗干扰滤波详解
安全·绝缘电阻·三级承装承修承试资质公司设备·电缆绝缘电阻
sbjdhjd7 小时前
SQL 注入零基础详解:原理、手工注入流程与 Sqli-Labs 靶场实战1~5关和第9关思路
数据库·sql·计算机网络·web安全·网络安全·网络攻击模型·安全架构
liukuang1108 小时前
Zara“夺命裤”风波,白晨铭的安全大考
安全
Android小码家8 小时前
OWASP 移动应用安全之授权(MASTG-DEMO-0090)
android·安全·frida
测试老哥8 小时前
接口自动化测试分层设计与实践总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试