<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    protobuf協議逆向解析

    VSole2021-09-23 18:43:30

    前言

    在app抓包的過程中,我們會發現有些app的數據也是存在加密的,抓到的數據是一堆亂碼。無法來解析數據。

    常見的對于數據的加密方式有三種:

    1 第一種是利用常見加密算法,諸如AES等算法,對響應數據進行加密。

    2 第二種是利用第三方廠商的協議進行數據序列化,常見的有xml、json、Fastjson、protobuf等。

    3 第三種是自己的“私有協議”,自己編寫的不開源的協議,進行數據序列化。

    這三種方式逆向難度是逐級遞增的,特別是私有協議,那完全是搞不清楚的話,頭發都掉沒了也解不開。

    所以為了保護頭發,本次給大家分享的是第二種,利用第三方廠商的數據序列化方案,protobuf的數據泛解析。

    protobuf流程

    對于protobuf的數據序列化,開發師傅們更懂一些,簡單介紹一下protobuf,protobuf 是 Google 開發的一套數據存儲傳輸協議。通過將結構化的數據進行序列化,進而來實現數據存儲或者是RPC數據交換的功能。

    序列化:將數據結構或對象轉換成二進制串的過程

    反序列化:將在序列化過程中產生的二進制串再轉換成數據結構或者對象的過程

    首先,protobuf會定義一個.proto文件,其中包括了要傳輸的字段,字段的數據類型、數據的嵌套關系。

    然后定義完成后,protobuf官方工具會編譯這個語法文件,使其變成代碼,然后根據這個代碼來做數據序列化與反序列化。

    這個過程在app中的體現就是,服務器端用生成的代碼,將明文序列化,然后變成密文,返回到app端。

    app客戶端就會利用生成的代碼,將密文反序列化后,在服務器端解密成明文。

    for example:

    傳輸如下類似的數據,

    {  'name':"火線安全", //名稱  'id':303,  //編號  'mail':"@huoxian.cn" //郵箱    {    'tel':"13111111111"    'type':2   //私人 or 公司    }
    }
    

    定義的.proto文件則如下所示

    syntax = "proto3"   //固定
    message Person {
      string name=1;  int32 id =2;  string mail=3;    enum PhoneType{  MOBILE = 0;  HOME = 1;  WORK = 2;  }
      message PhoneNumber{ //嵌套一個message    string number = 1;  PhoneType type = 2;    }  repeated PhoneNumber phones = 4; }
    message AddressBook{  repeated Person people = 1;}
    

    然后利用這個.proto文件來進行后續的序列化和反序列化操作。

    逆向分析

    對于正向過程來說,有了.proto文件,也有了序列化代碼。很輕松,但是對于逆向過程來說,如何分析得到這個.proto文件則是最重要。

    這類信息一般是在java層中,普遍的逆向過程是,根據url進行關鍵詞搜索也可以直接利用hook的方式進行尋找。hook的話定位快。

    展示一下之前某app的proto文件,因為封裝做的很好,所以可以直接重寫就可以了。(重申一下,這是網圖,網圖,不是我分析的)

    類似上面那樣就可以直接重寫了。

    當然如果想要根據protobuf提供的官方工具直接解密的話,可以根據解密后的信息來一步一步填充.proto文件。

    拿上面那個例子來說,最后肯定是這樣一個

      1:"火線安全", //名稱  2:303,  //編號  3:"@huoxian.cn" //郵箱    4{    1:"13111111111"    2:2   //家庭 or 公司    }
    }
    

    那還原一下就是這樣

    message Ts1 {
      string field1=1;  int32 field2 =2;  string field3=3;  
      message Ts2{ //嵌套一個message    string field1 = 1;  int32 field2 = 2;    }  repeated Ts2 ts2 = 4; }
    message TT{  repeated Ts1 ts1 = 1;}
    

    可以對比一下。手動還原就是這么個思路。當然了,也可以利用腳本來進行這個操作。

    https://github.com/SeeFlowerX/frida-protobuf
    

    總結

    該方法可以應對可能響應包中會有一些敏感信息泄露,或者是爬蟲來進行數據爬取時,對于亂碼數據的解密。

    protobufprotobuf數據類型
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    protobuf協議逆向解析
    2021-09-23 18:43:30
    在app抓包的過程中,我們會發現有些app的數據也是存在加密的,抓到的數據是一堆亂碼。無法來解析數據。
    近日有研究人員發現,MMRat新型安卓銀行惡意軟件利用protobuf 數據序列化這種罕見的通信方法入侵設備竊取數據。
    GraphFuzz是一個用于構建結構感知、庫API模糊器的實驗性框架。
    JSON 擁有許多優點,使之成為最廣泛使用的序列化協議之一。此外,JSON 具備 JavaScript 的先天性支持,被廣泛應用于 Web Browser 的應用場景中,并且是 Ajax 的事實標準協議。這種語言被稱為接口描述語言,采用IDL撰寫的協議約定稱之為IDL文件。
    僅限安卓平臺,測試安卓7、8、9、10、11、12、13 可用 ;無視所有證書校驗或綁定,不用考慮任何證書的事情;通殺TCP/IP四層模型中的應用層中的全部協議;通殺協議包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobuf等等、以及它們的SSL版本;通殺所有應用層框架,包括HttpUrlConnection、Okhttp1/3/4、Retrofit/Volle
    一名安全研究人員發現了Cue Health公司家用COVID-19檢測試劑盒的一個漏洞,可能會讓用戶偽造結果。Cue Health的COVID-19檢測試劑盒是一種藍牙操作的分子測試,可以在20分鐘內檢測出陽性標本。該系統使用鼻拭子測試冠狀病毒,鼻拭子被插入一個一次性盒中,由電池供電的Cue閱讀器進行分析,然后通過藍牙將結果傳送到接受測試者手機上的Cue Health應用程序。
    通過查閱相關資料得知虛幻引擎是通過'UNetDriver'進行網絡交互的,而'UNetDriver'是在'UWorld'下,那么我們就需要對游戲先進行sdk dump拿到實例化對象。
    0x0概述 近年來,老式勒索病毒依舊活躍,而新型勒索病毒花樣百出,深信服安全云腦就捕獲到一款具有“地方特色”的勒索病毒,其加密后綴為.beijing。及lock_XXX文件; 勒索提示文檔: 遍歷目錄下所有文件; 打開待加密文件; 重命名為*.beijing; 使用AES算法加密; 文件末尾寫入二次加密后的AES密鑰 完成加密后自刪除。
    CS:GO 從0到0day!
    2023-05-31 14:30:11
    ,并詳細介紹了4種不同的邏輯漏洞。公共研究眾所周知,該公司并不是第一個在CS:GO游戲中尋找漏洞的組織,因此,可以在互聯網上搜索到很多有用的博文和PPT。專門下載舊版本,但同時該功能似乎已被 Valve 公司禁用。為了全面測試并制定漏洞利用策略,該組織決定用 Python 實現自己早期階段的服務器。函數將字符串的長度限制為 256 個字符,從而從文件名中截斷不需要
    APP 聊天協議逆向
    2023-04-07 09:46:21
    環境主機:win10手機:Pixel 4 ,Android 10APP版本:V4.70.0工具IDA、JADX、Frida、Charles、WireShark逆向思路總結:猜流量抓包分析聊天數據一般都為TCP傳輸,所以直接使用WireShark抓包。經過不斷觀察以下特征數據很像聊天數據:接下來的思路就是Hook libc.so 的send函數,打印調用堆棧。查殼、脫殼未查到,那就先將APK拖進JADX里進行分析。Frida Hook擼起袖子就準備直接開干,Frida Server已啟動,直接運行。不出意外的意外,Process terminated。再次跟進去,發現了重點胖揍對象。再次發起Frida魔法攻擊。result結果即為TCP data。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类