v2.0.0
一款用于自动化 Android 应用渗透测试中重复性任务的工具。
该工具目前提供以下功能:
/data/app//data/data你可以通过链式操作模式来自定义工作流程。
示例:
humoud@komputer:~/Documents/dev/apkSneeze# python3 apkSneeze.py -adb_over_wifi -device_ip 192.168.1.114 -apk_dl -pkg_name com.dev.test.example -apk
===========================================================
___ ______ _ __ _____ _ _ _____ _____ ______ _____
/ _ \ | ___ \ | / / / ___| \ | || ___| ___|___ /| ___|
/ /_\ \| |_/ / |/ / \ `--.| \| || |__ | |__ / / | |__
| _ || __/| \ `--. \ . ` || __|| __| / / | __|
| | | || | | |\ \ /\__/ / |\ || |___| |___./ /___| |___
\_| |_/\_| \_| \_/ \____/\_| \_/\____/\____/\_____/\____/
v2.0.0
============================================================
当前设置:
+> 处理 APK 文件:是
> 目标 APK 文件名:sneezed.apk
+> 通过 WiFi 设置 ADB:是
+> 下载 APK 文件:是
+> 下载应用数据目录:否
>> ADB 设置与 APK/数据下载共享的设置:
>> ADBKey 文件位置:/home/humoud/.android/adbkey
>> 测试设备 IP 地址:192.168.1.114
>> 测试设备端口:5555
>> 目标包名:com.dev.test.example
确认?[y/n] y
正在停止 adb 服务器
正在列出已连接的设备
* daemon not running; starting now at tcp:5037
* daemon started successfully
> 已连接的设备列表
> xxxxx device
正在设置设备监听端口 5555
> restarting in TCP mode port: 5555
正在连接到设备...
> connected to 192.168.1.114:5555
你可以通过尝试获取 shell 来测试一切是否正常:adb -s 192.168.1.114:5555 shell
<*> 正在将 APK 文件复制到 /data/local/tmp/apkSneeze/base.apk(移动设备)...
<*> 正在下载 APK 文件到 sneezed.apk...
<*> 下载完成,请检查 sneezed.apk
<*> 正在从 /data/local/tmp/apkSneeze/base.apk(移动设备)删除 APK 文件...
[0] 正在处理 APK 文件...
[1] 正在使用 APKTOOL 反编译 APK 文件...
> I: Using Apktool 2.4.0-dirty on sneezed.apk
> I: Loading resource table...
> I: Decoding AndroidManifest.xml with resources...
> I: Loading resource table from file: /home/humoud/.local/share/apktool/framework/1.apk
> I: Regular manifest package...
> I: Decoding file-resources...
> I: Decoding values */* XMLs...
> I: Baksmaling classes.dex...
> I: Baksmaling classes2.dex...
> I: Baksmaling classes3.dex...
> I: Copying assets and libs...
> I: Copying unknown files...
> I: Copying original files...
[2] 正在使用 dex2jar 将 APK 文件转换为 JAR 文件...
dex2jar sneezed.apk -> ./sneezed-dex2jar.jar
[3] 正在搜索有趣的字符串(输出到文件 interesting_strings_sneezed.txt)...
[3] >> 正在遍历正则表达式列表...
[3] >> 正在遍历字符串列表...
命中次数:20853
完成!
要求:
python3 -m pip install -r requirements.txt
注意:该工具在 Kali Linux 上测试并开发,已安装 apktool 和 dex2jar。
处理 APK 文件(反编译、转换为 JAR、扫描有趣的字符串):
python3 apkSneeze.py -apk -apk_name test.apk
要通过 WiFi 设置 ADB,设备必须通过 USB 连接:
python3 apkSneeze.py -adb_over_wifi -device_ip 192.168.1.114
设置自定义端口:
python3 apkSneeze.py -adb_over_wifi -device_ip 192.168.1.114 -device_port 10111
从测试设备下载 APK 文件(需要 root 权限):
python3 apkSneeze.py -apk_dl -pkg_name com.dev.test -device_ip 192.168.1.114
如果你使用除 5555 以外的端口(自定义端口):
python3 apkSneeze.py -apk_dl -pkg_name com.dev.test -device_ip 192.168.1.114 -device_port 10111
从测试设备下载应用的数据目录(/data/data)(需要 root 权限):
python3 apkSneeze.py -data_dir_dl -device_ip 192.168.1.114 -pkg_name com.test.target.app
你可以链式操作模式。例如:先通过 WiFi 设置 ADB,然后下载 APK 文件,最后处理下载的 APK 文件。
python3 apkSneeze.py -adb_over_wifi -device_ip 192.168.1.114 -apk_dl -pkg_name com.dev.test.example -apk
工具默认为以下值:
它们都可以通过指定相应参数来更改。
usage: apkSneeze.py [-h] [-apk] [-apk_name APK_NAME] [-apk_dl] [-data_dir_dl]
[-pkg_name PKG_NAME] [-device_ip DEVICE_IP]
[-device_port DEVICE_PORT] [-adbkey_file ADBKEY_FILE]
[-adb_over_wifi]
optional arguments:
-h, --help 显示此帮助信息并退出
-apk 处理 APK 文件。
-apk_name APK_NAME 要处理的 APK 文件名。
-apk_dl 从设备下载 APK 文件。需要参数:pkg_name, device_ip, device_port, adbkey_file。
-data_dir_dl 从设备下载应用数据目录。需要参数:pkg_name, device_ip, device_port, adbkey_file。
-pkg_name PKG_NAME 应用包名(例如:com.dev.app)。如果要下载 APK 文件,此项必需。
-device_ip DEVICE_IP 测试设备的 IP 地址。
-device_port DEVICE_PORT
测试设备监听的端口号。
-adbkey_file ADBKEY_FILE
adbkey 文件的位置(例如:/home/user/.android/adbkey)。
-adb_over_wifi 自动通过 WiFi 设置 ADB。你必须提供设备的 IP 地址,并通过 USB 连接设备。你可以使用参数 device_port 设置自定义端口。
在未经双方事先同意的情况下,使用 APKSneeze 攻击目标是非法的。最终用户有责任遵守所有适用的地方、州和联邦法律。开发者不承担任何责任,也不对因使用本程序造成的任何滥用或损害负责。