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後效果:
objection

使用

同樣手機端啓動frida-server,然後用objection附加上我們需要調試的apk包:
這裏我們的包名爲com.android.chrome
frida-ps

objection -g com.android.chrome explore

objection啓動

提取內存信息

memory list modules

memory_list
這裏如果輸出太多的話,我們還可以使用--json參數將數據導入文件中;
知道有那些庫之後,我們可以獲取其中庫的導出函數:

memory list exports liblog.so

exports

列出內存中所有的類

android hooking list classes

classes
輸出的結果很多,可以通過添加要查找的關鍵字進行過濾:

android hooking search classes chrome

search

列出內存中所有的方法

同樣我們可以列出內存中所有的方法:

android hooking search methods chrome

但是需要花費的時間比較長:
methods

列出類的所有方法

我們還可以列出某一個類中的所有方法:

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

class_methods

直接生成hook代碼

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

simple
但是這只是生成了一個簡單的框架,對於參數卻沒有填上去,需要我們自己添加;

hook類的所有方法

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

watch
可以通過點擊程序觸發相應的方法;

hook方法的參數、返回值和調用棧

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

watch_method

事件刪除

通過jobs list可以列出事件,jibs kill +job_id可以刪除事件:
jobs

暴力搜內存

這個可以用於脫殼,搜索文件頭:

memory search "64 65 78 0a 30"

dex
還可以將其dump下來:

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

dump

總結

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章