Android APP渗透测试(2)-Objection

简介

objection是基于Frida的一个工具,可以方面我们直接找出apk中的需要HOOK的方法,还可以答应函数的参数,返回值以及栈调用等等,是我们在写Frida脚本的一个不错的辅助工具;

安装

因为Frida的安装通常需要Python3.7及以上,所以这里objection也使用Python3.7进行安装;
如果运气好的话直接使用pip就可以安装:

sudo pip3.7 install objection

如果有一些报错的话,需要安装依赖再重新编译安装Python3.7,比如:
报错一:

ModuleNotFoundError: No module named '_sqlite3'

这个报错直接运行:

sudo apt-get install libsqlite3-dev zlib zlib-devel

报错二:

ModuleNotFoundError: No module named '_lzma'

下载xz源码:

https://sourceforge.net/projects/lzmautils/files/xz-5.2.5.tar.gz/download

编译安装:

./configure
make -j8
sudo make install

下载python3.7源码:

wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tar.xz

编译安装:

./configure --prefix=/usr/local/python3.7
make -j8
sudo make install

根据需要建立软连接:

ln -s /usr/local/python3.7/bin/python3.7 /usr/bin/python3.7
ln -s /usr/local/python3.7/bin/pip3.7 /usr/bin/pip3.7

安装好之后重新执行:

sudo pip3.7 install objection

成功安装objection后效果:
Android APP渗透测试(2)-Objection_第1张图片

使用

同样手机端启动frida-server,然后用objection附加上我们需要调试的apk包:
这里我们的包名为com.android.chrome
Android APP渗透测试(2)-Objection_第2张图片

objection -g com.android.chrome explore

Android APP渗透测试(2)-Objection_第3张图片

提取内存信息

memory list modules

Android APP渗透测试(2)-Objection_第4张图片
这里如果输出太多的话,我们还可以使用--json参数将数据导入文件中;
知道有那些库之后,我们可以获取其中库的导出函数:

memory list exports liblog.so

Android APP渗透测试(2)-Objection_第5张图片

列出内存中所有的类

android hooking list classes

Android APP渗透测试(2)-Objection_第6张图片
输出的结果很多,可以通过添加要查找的关键字进行过滤:

android hooking search classes chrome

Android APP渗透测试(2)-Objection_第7张图片

列出内存中所有的方法

同样我们可以列出内存中所有的方法:

android hooking search methods chrome

但是需要花费的时间比较长:
methods

列出类的所有方法

我们还可以列出某一个类中的所有方法:

android hooking list class_methods com.google.android.apps.chrome.compositor.Invalidator

Android APP渗透测试(2)-Objection_第8张图片

直接生成hook代码

android hooking generate simple com.google.android.apps.chrome.compositor.Invalidator

Android APP渗透测试(2)-Objection_第9张图片
但是这只是生成了一个简单的框架,对于参数却没有填上去,需要我们自己添加;

hook类的所有方法

android hooking watch class com.google.android.apps.chrome.C
hromeBrowserProvider

Android APP渗透测试(2)-Objection_第10张图片
可以通过点击程序触发相应的方法;

hook方法的参数、返回值和调用栈

android hooking watch class_method com.google.android.apps.c
hrome.ChromeBrowserProvider.hasWriteAccess --dump-args --dump-backtrace --dump-return 

Android APP渗透测试(2)-Objection_第11张图片

事件删除

通过jobs list可以列出事件,jibs kill +job_id可以删除事件:
Android APP渗透测试(2)-Objection_第12张图片

暴力搜内存

这个可以用于脱壳,搜索文件头:

memory search "64 65 78 0a 30"

Android APP渗透测试(2)-Objection_第13张图片
还可以将其dump下来:

memory dump from_base 0xcd20bd72 6666 /home/cc-sir/deskto
p/xx.dex

dump

总结

frida配合objection使用可以很好提高我们的分析效率.

你可能感兴趣的:(Android)