r0capture安卓應(yīng)用層通殺腳本-使用文檔
?本文所有教程及源碼、軟件僅為技術(shù)研究。不涉及計算機信息系統(tǒng)功能的刪除、修改、增加、干擾,更不會影響計算機信息系統(tǒng)的正常運行。不得將代碼用于非法用途,如侵立刪!
r0capture安卓應(yīng)用層通殺腳本-使用文檔
操作環(huán)境
win10
Google nexus5x
Python3.9
frida==14.2.17
frida-tools==9.2.4
推薦環(huán)境:https://github.com/r0ysue/AndroidSecurityStudy/blob/master/FRIDA/A01/README.md
工具腳本簡介
僅限安卓平臺,測試安卓7、8、9、10、11 可用 ;
無視所有證書校驗或綁定,不用考慮任何證書的事情;
通殺TCP/IP四層模型中的應(yīng)用層中的全部協(xié)議;
通殺協(xié)議包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobuf等等、以及它們的SSL版本;
通殺所有應(yīng)用層框架,包括HttpUrlConnection、Okhttp1/3/4、Retrofit/Volley等等;
無視加固,不管是整體殼還是二代殼或VMP,不用考慮加固的事情;
(限制) 基于Java的虛擬機,暫未支持 flutter(開發(fā)框架),flutter走的已經(jīng)不是java的虛擬機了!
TCP/IP四層模型介紹
應(yīng)用層
應(yīng)用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡(luò)遠程訪問協(xié)議(Telnet)等。
傳輸層
在此層中,它提供了節(jié)點間的數(shù)據(jù)傳送,應(yīng)用程序之間的通信服務(wù),主要功能是數(shù)據(jù)格式化、數(shù)據(jù)確認和丟失重傳等。如傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)等,TCP和UDP給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又校@一層負責(zé)傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達并接收。
互連網(wǎng)絡(luò)層
負責(zé)提供基本的數(shù)據(jù)封包傳送功能,讓每一塊數(shù)據(jù)包都能夠到達目的主機(但不檢查是否被正確接收),如網(wǎng)際協(xié)議(IP)。
網(wǎng)絡(luò)接口層(主機-網(wǎng)絡(luò)層)
接收IP數(shù)據(jù)報并進行傳輸,從網(wǎng)絡(luò)上接收物理幀,抽取IP數(shù)據(jù)報轉(zhuǎn)交給下一層,對實際的網(wǎng)絡(luò)媒體的管理,定義如何使用實際網(wǎng)絡(luò)(如Ethernet、Serial Line等)來傳送數(shù)據(jù)。
環(huán)境準(zhǔn)備
安裝Python環(huán)境及frida:注意frida和frida-tools版本匹配,這里我選擇指定版本安裝的方式
pip install frida==14.2.17
pip install frida-tools==9.2.4查看python所有安裝包:pip list

下載安裝frida-server
在 官方github頁面的
release
標(biāo)簽里,找到對應(yīng)版本的frida-server,注意要匹配系統(tǒng)和架構(gòu),比如
arm和
arm64就不能搞錯查看手機CPU 架構(gòu)類型
adb shell getprop ro.product.cpu.abi

根據(jù)frida版本和手機CPU版本下載對應(yīng)的frida-server

下載完成后進行解壓,獲得
linux
原生的可執(zhí)行文件,我們將它重命名為frida-server
將frida-server安裝至手機
使用
$ adb push frida-server /data/local/tmp/adb
命令將其推送到手機上去然后使用
$ adb shelladb shell
命令進入到手機中去,執(zhí)行以下命令:
bullhead:/ $ su
bullhead:/ # whoami
root
bullhead:/ # cd /data/local/tmp/
bullhead:/data/local/tmp # chmod 755 /data/local/tmp/frida-server
bullhead:/data/local/tmp # ./frida-server &
[1] 6669frida-server
運行成功。至此所需環(huán)境準(zhǔn)備完成
工具腳本用法
下載安卓應(yīng)用層抓包通殺腳本:[https://github.com/r0ysue/r0capture](https://github.com/r0ysue/r0capture)
兩種抓包模式
Spawn 模式,直接抓包
python r0capture.py -U -f 包名Attach 模式,將抓包內(nèi)容保存成pcap格式文件
python r0capture.py -U 包名 -p 文件名.pcap建議使用
Attach
模式,從感興趣的地方開始抓包,并且保存成pcap
文件,供后續(xù)使用Wireshark進行分析。
導(dǎo)入腳本項目
導(dǎo)入到Pycharm項目中

安裝項目所需的包
# pip install win_inet_pton
# pip install hexdump
# pip install loguru在要執(zhí)行文件
r0captue.py
的上一級開啟一個命令行或直接cd 到要執(zhí)行的目錄,如下圖所示:

?在開啟的命令行中兩種方式的任意一種進行抓包,建議使用Attach模式,從感興趣的地方開始抓包,并且保存成pcap文件。
開始抓包
獲取應(yīng)用包名
1.adb shell am monitor
2.啟動需要獲取包名的應(yīng)用
3.窗口就會打印出來當(dāng)前應(yīng)用的包名

給應(yīng)用添加讀取存儲空間權(quán)限
啟動frida-server
adb sehll
su
cd /data/local/tmp/
./frida-server &
ps | grep frida

?檢查是否啟動成功:在電腦上新開一個shell
,運行frida-ps -U
命令,即可顯示手機中正在運行的進程。 ?

Spawn 模式,直接抓包
用法:
python r0capture.py -U -f com.dianping.v1

Attach 模式,將抓包內(nèi)容保存成pcap格式文件
先打開需要抓包的應(yīng)用,然后在命令行輸入
python r0capture.py -U com.dianping.v1 -p 123.pcap
在操作想抓包的地方,對應(yīng)的記錄會保存至項目同目錄下的pcap文件中

Press Ctrl+C to stop logging.
Ctrl+C 結(jié)束,如果數(shù)據(jù)量很大的話,需要等待一會才能徹底關(guān)閉
分析數(shù)據(jù)
通過上面的方式將抓取到的pcap格式的文件通過
Wireshark
打開,選擇里面的某條數(shù)據(jù)內(nèi)容使用分析->追蹤流->分析抓包數(shù)據(jù)
即可!如下圖所示:


資源下載
https://download.csdn.net/download/qq_38154948/85061788
本文僅供學(xué)習(xí)交流使用,如侵立刪!