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

相关推荐
蝎蟹居2 小时前
GBT 4706.1-2024逐句解读系列(28) 第7.8条款:X,Y型连接正确标示接地符号
人工智能·单片机·嵌入式硬件·物联网·安全
毕设源码-邱学长2 小时前
【开题答辩全过程】以地铁安全管理信息系统设计与实现为例,包含答辩的问题和答案
安全
夜未央312 小时前
HTTPS 原理与 PHP 文件包含及伪协议详解
运维·服务器·安全·网络安全
弓.长.3 小时前
React Native 鸿蒙跨平台开发:SafeAreaView 安全区域
安全·react native·harmonyos
云安全干货局3 小时前
深度解析:高防 IP 如何实现 “隐藏源站 IP”?核心技术原理拆解
网络·网络安全·高防ip
青衫客363 小时前
从应用到安全根:浅谈端侧系统能力、SA 与 REE / TEE 的技术体系
安全·操作系统
冬奇Lab3 小时前
【Kotlin系列08】泛型进阶:从型变到具体化类型参数的类型安全之旅
android·开发语言·windows·安全·kotlin
manok3 小时前
库博(CoBOT)vs 主流SAST工具:嵌入式高安全领域的差异化优势全景解析
安全·静态分析·代码审计·sast
祁白_3 小时前
文件包含笔记整理
笔记·学习·安全·web安全