1. 程式人生 > 其它 >r0capture安卓應用層通殺指令碼-使用文件

r0capture安卓應用層通殺指令碼-使用文件

本文所有教程及原始碼、軟體僅為技術研究。不涉及計算機資訊系統功能的刪除、修改、增加、干擾,更不會影響計算機資訊系統的正常執行。不得將程式碼用於非法用途,如侵立刪!

r0capture安卓應用層通殺指令碼-使用文件

操作環境

工具指令碼簡介

  • 僅限安卓平臺,測試安卓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,注意要匹配系統和架構,比如armarm64就不能搞錯

    • 檢視手機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


本文僅供學習交流使用,如侵立刪!