APK(Android application package,Android应用程序包)是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。
一个APK文件内包含被编译的代码文件(.dex 文件),文件资源(resources), 原生资源文件(assets),证书(certificates),和清单文件(manifest file)。在这些文件中,包含了大量应用相关的信息。在对于安卓应用包的静态分析、信息提取、安全分析中,这些信息有着重要的作用。
简介
APKLeaks,是 dwisiswant0 在 Github 上开源的 APK 信息扫描工具,目前版本为 v2.0.3。
APKLeaks 能够扫描安卓 APK 文件中的 URL、终端地址,和秘密信息,并能提供特定的模式进行匹配,不失为安卓开发中的静态分析和安全分析的有力工具。
使用
APKLeaks 使用 Python 编写,是一个脚本式的命令行工具。其依赖 jadx 来对 APK 文件进行反编译,使用前需要确保安装了 jadx。
要安装 APKLeaks,运行
$ git clone https://github.com/dwisiswant0/apkleaks
$ cd apkleaks/
$ pip3 install -r requirements.txt
安装完成后,就可以运行命令行工具脚本:
$ python3 apkleaks.py -f ~/path/to/file.apk
APKLeaks 的基本使用选项如下:
$ python3 apkleaks.py -h
usage: apkleaks [-h] -f FILE [-o OUTPUT] [-p PATTERN]
optional arguments:
-h, --help show this help message and exit
-f FILE, --file FILE APK file to scanning
-o OUTPUT, --output OUTPUT
Write to file results (NULL will be saved into random
file)
-p PATTERN, --pattern PATTERN
Path to custom patterns JSON
可以看到,APKLeaks 提供了 -f 选项,用来输入需要分析的 APK 文件的路径;-o 选项,用来指定扫描报告的输出文件;-p 用来指定包含扫描匹配模式的文件。
APKLeaks 预设了一些匹配模式,包括 IP 地址、SSH 私钥、AWS API 密钥等,可以匹配多种不同的敏感信息。也可以提供自定义的匹配模式文件,实现更符合目的需求的扫描结果:
"RSA private key": "-----BEGIN RSA PRIVATE KEY-----"
"IP Address": "(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])"
"AWS API Key": "AKIA[0-9A-Z]{16}"
$ python apkleaks.py -f /path/to/file.apk -p rules.json -o ~/Documents/apkleaks-results.txt
总结
APKLeaks 使用 Python 脚本的方式,拓展了原有反编译工具的功能,实现了对于 APK 内特定信息的扫描,为相关开发和分析工作提供了便利。
本文暂时没有评论,来添加一个吧(●'◡'●)