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的扫描器扫描