# APP 信息收集
有很多小工具就可以完成部分信息收集,但是信息收集不完整
APK Messenger - 基本信息、资源文件与开启权限等,可以提取到此 apk 中的
图片资源,xml 资源,其他数据等。
# AppInfoScanner 采集
一款适用于以 HW 行动 / 红队 / 渗透测试团队为场景的移动端 (Android、iOS、 WEB、H5、静态网站) 信息收集扫描工具,可以帮助渗透测试工程师、攻击队 成员、红队成员快速收集到移动端或者静态 WEB 站点中关键的资产信息并提供 基本的信息输出,如:Title、Domain、CDN、指纹信息、状态信息等。
AppInfoScanner 使用方法:提取是从 apk 自身代码中进行提取的,另外还可以直接通过抓包的方法来提取信息,通过配置模拟器代理,流量监听之 burp 的方法是从访问接口进行提取的,两种方法在实际测试汇总都要使用。
1 | https://github.com/kelvinBen/AppInfoScanner |
# MobSF 移动安全
一种自动化的一体化移动应用程序 (Android/iOS/Windows) 渗透测试、恶 意软件分析和安全评估框架,能够执行静态和动态分析。MobSF 支持移动应用 程序二进制文件 (APK、XAPK、IPA 和 APPX) 以及压缩源代码,并提供 REST API 以与您的 CI/CD 或 DevSecOps 管道无缝集成。动态分析器可帮助 您执行运行时安全评估和交互式仪器测试。
mobsf 使用方法:
在线使用:https://mobsf.live/
1 | https://github.com/MobSF/Mobile-Security-Framework-MobSF |
AppInfoScan 要更好一些,资产分析的更加全面一点。
# Mobexler 移动测试
Mobexler 是基于 Elementary OS 的定制虚拟机,旨在帮助进行 Android 和 iOS 应用程序的渗透测试。Mobexler 预装了各种开源工具,脚本,黑客必备软 件等,这些都是安全测试 Android 和 iOS 应用程序所必需的。集成有大量的安卓测试工具哦。
官网地址:https://mobexler.com/
# apk 数据包捕获
有些 app 是不能够抓取到数据包的,有两种可能。一是 app 内部进行了反 代理设置,另外一种情况是进行了证书校验。而一般我们在模拟器里边配置的 证书只能解决客户端的单向校验问题,如果是双向校验也不能抓取到数据包。
# 反代理绕过
对于反代理设置,是因为 app 中有代码设置为将当前的数据禁止发往 wifi 的代理,否则显示网络错误,可以通过两种方式来解决,一是通过模拟器自带 的抓包工具来抓包,而不是通过 wif 的代理来转发流量,而是通过 profixier+burp 的方式来绕过此限制。profixier 添加 burp 的端口,并设置规则为 noxhandler 和 nox (可以通过当前正在运行的进程和软件的属性中软件的启动程序来确定), 此时数据被 proxifer 代理,流量发送至了 burp。
# 证书校验绕过
- 情况 1: 客户端不存在证书校验,服务器也不存在证书校验。
对于无证书校验,只要在 burp 上配置证书就可以了;
- 情况 2: 客户端存在校验服务端证书,服务器也不存在证书校验,单项校验。
对于单证书校验,通过 xposed 框架,在模拟器上安装 xposed 并在其内安装新添加的 justTrust 的 apk,来通过工具绕过证书校验,此时再次设置网络代理仍旧可以抓取到数据包;
- 情况 3: 客户端存在证书校验,服务器也存在证书校验,双向校验。
如果是双向证书校验,可以通过两种种方式来绕过。首先就是 frida+r0capture 的方式来捕获所有的网络数据包;或是通过反编译 apk 去掉证书校验的代码在重新编译好的 apk 抓包。
# 双向证书校验绕过
模拟器用代理抓取数据包被禁止的解决方法:r0capture+firda
- r0capture:安卓应用层抓包通杀脚本 配合 firda 使用
1 | https://github.com/r0ysue/r0capture |
- Firda
Firda 是一款易用的跨平 Hook 工具, Java 层到 Native 层的 Hook 无所不能,是一种 动态 的插桩工具,可以插入代码到原生 App 的内存空间中,动态的去监视和修改行为,原生平台包括 Win、Mac、Linux、Android、iOS 全平台。
地址:https://github.com/frida/frida/releases
- 测试
环境:Windows10 Python3.7 夜神模拟器 r0capture frida-server wireshark
1 | a. 本地安装Frida |
# 脱壳与加壳
有的应用为了防止被反编译,在应用程序生成之后还会进行一层加固即加 壳,如果能够设法脱壳是可以进行反编译的否则就没办法得到源代码。查壳工 具 ApkScan-PKID 可以得到当前应用程序是否加壳,是以哪种方式进行加壳的。 另有脱壳工具 BlackDex,直接下载运行即可。
下载地址: https://github.com/CodingGay/BlackDex。
# apk 程序反编译
Apkkiller 可以进行反编译,提取到源代码并进行导出,加载到 IDEA 中去识别相应逻辑。如果要修改源代码中的某些功能,需要寻找到对应位置进行修改。
安卓修改大师是一款集成化的工具,可以反编译,修改图标,搜索源代码, 查看 java/smail 代码,重新签名打包等,比较适合用来检测 apk 的安全。修改软 件功能,如观看次数及是否是会员的操作,一般是搜索源代码中的关键词进行 定位,判断业务逻辑,确定当前数据来源,是否依托于网络数据还是就是在本 地存储的,如果是本地存储的就可以修改。
# 安卓修改大师破解
下载并安装原程序,先不要运行软件;
接着把 crack 文件夹里的 “ApkHelper.exe” 拷贝到软件安装目录下替换;【默认路径 C:\Program Files (x86)\ApkEditor】
再用 crack 文件夹里的注册机进行注册;
至此就全部破解完成啦,用户可随意使用里面的功能了
# 微信小程序安全
# 微信小程序抓包
- 安卓系统抓包(微信小程序):
安卓系统 7.0 以下版本,不管微信任意版本,都会信任系统提供的证书
安卓系统 7.0 以上版本,微信 7.0 以下版本,微信会信任系统提供的证书
安卓系统 7.0 以上版本,微信 7.0 以上版本,微信只信任它自己配置的证书
- 基于上述我们解决的方式如下:
将证书安装到系统证书中(需要 root)
苹果手机(苹果手机不受此影响)
采用安卓系统低于 7.0 的模拟器
使用低版本电脑版微信小程序抓包
逍遥模拟器多开器 5.1 安卓系统微信小程序抓包,夜神模拟器多开 5 安卓系统微信小程序抓包,真机 IPhone-IOS 系统微信小程序抓包抓包本机需要和 Iphone 手机处于同一 WIFI 下,Iphone 配置 wifi 的代理,代理设置地址写本地抓包的工具地址和端口。
# 小程序反编译
- 小程序助手付费版:
使用教程地址:https://www.kancloud.cn/ludeqi/xcxzs/2607637
最新版下载地址:https://xcx.siqingw.top/xcx.zip
每一个小程序在点击时都会产生一个相应的文件夹,此文件夹中有一个 wxapkg 后缀的文件包含有当前小程序的相关源码。用此软件进行反编译,一般 都会生成 js 源码,可以分析此源码中的知识,找出相关敏感信息,进行利用。 如果此 js 采用了 node.js 框架,那么原先的小程序就是存在 node.js 的相关漏洞可 以进行利用的。
如果该小程序比较大,除了首次加载出来的 wxapkg 后缀的文件包,在其他 页面可能也有 js 子系统,会有其他的 wxapkg 产生。需要将生成的 wxapkg 都进 行反编译,分析多套源码才算完整。
微信小程序可以通过 proxifier 设置规则代理流量至 burp/fiddler,需要将当 前小程序运行的进程进行代理。但是不一定准确,有一次测试代理了部分流量, 一些关键数据包无法捕获。
- WxAppUnpacker 反编译小程序
工具地址:https://github.com/sanriqing/WxAppUnpacker
安装 node.js: http://nodejs.cn/download/
1 | 安装依赖 |
# 小程序安全点
- 渗透角度
测试的 app 提供服务的服务器,网站,接口等,一旦这个有安全问题,被 不法分子利用,相当于 APP 正常服务就会受到直接的影响!APK - 白盒 - Java 代码审计,APK - 黑盒 - 资产 & WEB&IP & 接口等,小程序 - 白 盒 - Node.JS 代码审计,小程序 - 黑盒 - 资产 & WEB&IP & 接口等
- 开发角度
测试 app 中代码,采用没加密的发送数据,采用权限过高的设置导致攻击者利用 app 获取到手机的敏感信息等。如弱加密,逻辑安全,授权,中间人等。