Android之APP安全测试篇
- 2019 年 11 月 12 日
- 筆記
0x00:简介
偶遇app测试,然,记录下所用到的笔记。乃,分享心得,做记录之用!
0x01:信息获取
1、基础信息获取(这里用一个邮箱的app做演示)
利用工具(APK-Info v0.2)

2、查壳
利用工具(ApkScan-PKID)

3、证书与签名的查看
利用工具(apktool)

注:jre默认安装apktool,只需要在当前目录执行CMD就可以调用运行
首先要把apk的后缀名改为rar
解压找到rsa后缀的文件

这个RSA文件挺难找的,汗。
keytool -printcert -file rsa文件地址

4、源码查看
利用工具(AndroidKiller)

5、组件查看
android四大组件
ActivityServiceContent providerBroadcast receiver
Activity组件
反编译 apk 文件,在AndroidManifest.xml 中查找Activity组件
1、当Activity返回数据时需关注目标Activity是否有泄露信息的安全风险。
2、验证所对应的目标Activity是否恶意App,规避受到intent欺骗,可用hash签名作为验证。
3、签名验证其内部(in-house)App。
Service组件
反编译 apk 文件,在AndroidManifest.xml 中查找配置了 intent-filter 的 action值的,或者显示设置了android:exported="true"的。
android:exported
Service组件的设置错误可以被第三方APP任意调用,导致敏感信息泄露,并可能受到权限提升、拒绝服务等安全风险
Content provider组件
反编译 apk 文件,在AndroidManifest.xml 中查找content provider组件查看
android:exported
content provider该属性的配置错误可以被其他第三方程序任意调用。
当Content Provider组件可以被第三方app任意调用时,会导致敏感信息泄露,并可能受到目录遍历、SQL注入等攻击等安全风险。
Broadcast receiver组件
通常是用来处理系统级事件的组件
反编译 apk 文件,在 AndroidManifest.xml 中查找配置了 intent-filter 的 action 值的,或者显示设置了 android:exported="true" 的。
Broadcast receiver该属性的配置错误可能会导致敏感信息泄漏,本地拒绝服务器漏洞、有序广播导致的安全问题。
0x02:测试框架
推荐一个:移动安全漏洞测试框架(MobSF)是一种自动化的多合一移动应用程序(安卓/苹果/PC端)可以进行静态和动态分析的安全测试,恶意软件分析和安全评估框架。
https://github.com/MobSF/Mobile-Security-Framework-MobSF
Docker下的MobSF的安装与运行
docker pull opensecurity/mobile-security-framework-mobsfdocker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest

谷歌自带翻译,有点乱
该工具还支持动态分析
0x03:ADB测试
推荐工具(Drozer)
Drozer是一款Android安全测试框架。
是目前最好的Android安全测试工具之一。
https://labs.f-secure.com/tools/drozer/
安卓手机安装drozer Agent工具,并打开Embbdded Server,下一步需要让电脑连上手机的agent,默认可以看到手机端默认端口开启的是31415

这时候在电脑上cmd下输入:
adb forward tcp:31415 tcp:31415
正常情况应该是这样:

操作详细请参考
http://www.360doc.com/content/15/0228/04/21863855_451377867.shtmlhttps://www.cnblogs.com/bluesky4cn/p/4269031.html
部分模块功能如下:

0x04:抓包测试
推荐工具(Burp Suite)

手机设置完代理
抓到app的数据包后
类似于PC版本web端抓包测试。

手机挂上代理,设置好爬虫网址
手机不断的去点击app的所有功能点

BP就能爬去APP的一大部分网址链接
再利用BP的扫描器扫描