r0capture安卓應用層通殺指令碼-使用文件
本文所有教程及原始碼、軟體僅為技術研究。不涉及計算機資訊系統功能的刪除、修改、增加、干擾,更不會影響計算機資訊系統的正常執行。不得將程式碼用於非法用途,如侵立刪! |
r0capture安卓應用層通殺指令碼-使用文件
操作環境
- win10
- Google nexus5x
- Python3.9
- Pycharm2021
- frida==14.2.17
- frida-tools==9.2.4
- 推薦環境:https://github.com/r0ysue/AndroidSecurityStudy/blob/master/FRIDA/A01/README.md
工具指令碼簡介
- 僅限安卓平臺,測試安卓7、8、9、10、11 可用 ;
- 無視所有證書校驗或繫結,不用考慮任何證書的事情;
- 通殺TCP/IP四層模型中的應用層中的全部協議;
- 通殺協議包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobuf等等、以及它們的SSL版本;
- 通殺所有應用層框架,包括HttpUrlConnection、Okhttp1/3/4、Retrofit/Volley等等;
- 無視加固,不管是整體殼還是二代殼或VMP,不用考慮加固的事情;
- (限制) 基於Java的虛擬機器,暫未支援 flutter(開發框架),flutter走的已經不是java的虛擬機器了!
TCP/IP四層模型介紹
-
應用層
應用程式間溝通的層,如簡單電子郵件傳輸(SMTP)、檔案傳輸協議(FTP)、網路遠端訪問協議(Telnet)等。
-
傳輸層
在此層中,它提供了節點間的資料傳送,應用程式之間的通訊服務,主要功能是資料格式化、資料確認和丟失重傳等。如傳輸控制協議(TCP)、使用者資料報協議(UDP)等,TCP和UDP給資料包加入傳輸資料並把它傳輸到下一層中,這一層負責傳送資料,並且確定資料已被送達並接收。
-
互連網路層
負責提供基本的資料封包傳送功能,讓每一塊資料包都能夠到達目的主機(但不檢查是否被正確接收),如網際協議(IP)。
-
網路介面層(主機-網路層)
接收IP資料報並進行傳輸,從網路上接收物理幀,抽取IP資料報轉交給下一層,對實際的網路媒體的管理,定義如何使用實際網路(如Ethernet、Serial Line等)來傳送資料。
環境準備
-
安裝Python環境及frida:注意frida和frida-tools版本匹配,這裡我選擇指定版本安裝的方式
pip install frida==14.2.17 pip install frida-tools==9.2.4
檢視python所有安裝包:pip list
-
下載安裝frida-server
在 官方github頁面的
release
標籤裡,找到對應版本的frida-server,注意要匹配系統和架構,比如
arm和
arm64就不能搞錯-
檢視手機CPU 架構型別
adb shell getprop ro.product.cpu.abi
-
根據frida版本和手機CPU版本下載對應的frida-server
下載完成後進行解壓,獲得linux
原生的可執行檔案,我們將它重新命名為frida-server
-
將frida-server安裝至手機
使用
adb
命令將其推送到手機上去$ adb push frida-server /data/local/tmp/
然後使用
adb shell
命令進入到手機中去,執行以下命令:$ adb shell 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] 6669
frida-server
執行成功。
-
-
至此所需環境準備完成
工具指令碼用法
**下載安卓應用層抓包通殺指令碼:https://github.com/r0ysue/r0capture**
兩種抓包模式
-
Spawn 模式,直接抓包
python r0capture.py -U -f 包名
-
Attach 模式,將抓包內容儲存成pcap格式檔案
python r0capture.py -U 包名 -p 檔名.pcap
建議使用
Attach
模式,從感興趣的地方開始抓包,並且儲存成pcap
檔案,供後續使用Wireshark進行分析。
匯入指令碼專案
-
匯入到Pycharm專案中
-
安裝專案所需的包
# pip install win_inet_pton # pip install hexdump # pip install loguru
-
在要執行檔案
r0captue.py
的上一級開啟一個命令列或直接cd 到要執行的目錄,如下圖所示:在開啟的命令列中兩種方式的任意一種進行抓包,建議使用Attach模式,從感興趣的地方開始抓包,並且儲存成pcap檔案。
開始抓包
-
獲取應用包名
1.adb shell am monitor 2.啟動需要獲取包名的應用 3.視窗就會打印出來當前應用的包名
-
給應用新增讀取儲存空間許可權
-
啟動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 模式,將抓包內容儲存成pcap格式檔案
先開啟需要抓包的應用,然後在命令列輸入
python r0capture.py -U com.dianping.v1 -p 123.pcap
在操作想抓包的地方,對應的記錄會儲存至專案同目錄下的pcap檔案中
Press Ctrl+C to stop logging.Ctrl+C 結束,如果資料量很大的話,需要等待一會才能徹底關閉
-
分析資料
通過上面的方式將抓取到的pcap格式的檔案通過
Wireshark
開啟,選擇裡面的某條資料內容使用分析->追蹤流->分析抓包資料
即可!如下圖所示:
資源下載
https://download.csdn.net/download/qq_38154948/85061788
本文僅供學習交流使用,如侵立刪! |