android黑科技系列——Wireshark和Fiddler分析Android中的TLS協議包資料(附帶案例樣本)

來源:互聯網
上載者:User

標籤:產生   擷取   aes   reference   過程   介紹   star   破解   功能   

一、前言

在之前一篇文章已經介紹了一款網路訪問軟體的破解教程,當時採用的突破口是應用程式本身的一個漏洞,就是沒有關閉日誌資訊,我們通過抓取日誌擷取到關鍵資訊來找到突破口進行破解的。那篇文章也說到了,如果這個app應用沒有日誌資訊,我們該怎麼辦呢?那麼這時候就需要採用抓包來尋找突破口了。

二、安裝Fiddler認證

我們通過Fiddler串連手機進行抓包查看,應用訪問資料資訊都是用的HTTPS協議,也就是加密的資料,我們可能無法查看,比較麻煩,本文就來講解如何查看這些加密資料了。


首先我們知道Fiddler抓包工具是可以抓HTTPS資料的,就是把Fiddler認證安裝到裝置中即可。安裝過程也很簡單:

第一步:匯出Fidder的認證檔案


進入Fiddler選項中:


然後直接選擇匯出認證到案頭即可。

第二步:把認證安裝到裝置中

先把上一步匯出來的認證檔案,放到裝置的SD目錄下,然後在裝置中直接開啟這個認證檔案,會提示安裝資訊,當然這裡在老版本系統中,可能還需要去設定頁面進行操作:


在設定中,選擇安全,然後選擇從SD卡安裝認證,就可以正常安裝了。安裝成功之後,可以查看這個認證資訊:


三、抓取樣本app的資料包

這樣,我們的裝置就有了Fiddler認證,這時候在用Fiddler抓包會看到正常的HTTPS協議資料了:


我們可以查看返回的資料資訊:


可惜的是,這裡的資料顯示是不全的。所以這時候,我們得想辦法擷取返回的全部資料,可以藉助Wireshark工具進行操作了,而Wireshark工具相對於Fiddler工具來說會分析的更加詳細,但是Fiddler更加方便快捷。但是Wireshark工具只能在PC端抓包運行,所以如果想用這個工具抓取手機端資料的話,可以用兩種方式:

第一種:Wireshark+Fiddler工具

Fiddler作為手機端的代理在PC上訪問流量。然後Wireshark可以抓取PC上的請求,這樣來做到用Wireshark抓取手機端的請求。

第二種:Wireshark+tcpdump工具

當然我們還可以利用tcpdump工具來直接抓取手機端的請求資料,一般儲存為pcap檔案格式,然後在PC端用Wireshark來分析pcap檔案格式即可。關於tcpdump如何抓包產生pcap檔案,可以自行搜尋即可。這裡不做解釋了。

很多同學會考慮第二種,但是第二種會失敗的,因為這裡需要抓取HTTPS協議的資料,所以有認證相關的資訊,如果直接用tcpdump工具抓包組建檔案,然後用Wireshark工具分析是會失敗的。因為Wireshark分析TLS協議資料是需要設定認證資訊的,不然是解析失敗的。所以這裡採用第一種方式進行操作。

四、Wireshark分析TLS資料包

因為Wireshark分析TLS協議的資料是需要設定認證資訊的,不然看到的也是加密資料資訊:


那麼這裡的問題其實就轉化成,如何利用Wireshark來解密TLS資料資訊了,這個就比較簡單了,我們可以藉助瀏覽器自動產生的認證資訊,來作為解密的工具。這裡需要藉助一個知識點:就是瀏覽器在訪問HTTPS協議資訊的時候都會有這麼個提示:


讓我們信任這個認證:


然後,我們確認安全,這時候,如果設定了一個系統內容變數。瀏覽器會把認證資訊儲存到指定檔案中的,這個系統內容變數就是:SSLKEYLOGFILE,然後自訂一個SSLKEY的儲存檔案名稱即可。


因為我們在上面用Fiddler可以抓到HTTPS請求連結的,這時候我們把這個連結放到瀏覽器中訪問一次:


然後就會有相對應的SSLKEY資料儲存下來了,可以去看看這個資訊:


這樣我們就弄到了這個url對應的認證資訊了,這裡可以看到其實是藉助瀏覽器的功能擷取到的,下面就來Wireshark中設定這個認證資訊:


在Wireshark的Edit->Preferences->Protocols->SSL,設定剛剛儲存的SSLKEY資訊檔位置,儲存即可。

下面就來開始抓包分析吧,在啟動Wireshark抓包的時候,可能有的同學無法看到抓包的網路介面資訊:


這個就需要啟動系統的npf服務了,我們可以這麼做:

01、在開始–>運行
02、輸入:%windir%/system32
03、將會開啟一個檔案夾視窗,在裡面找到CMD.EXE(cmd.exe)
04、點擊右鍵,選擇”以管理員身份運行”
05、輸入命令:net start npf
06、系統提示NetGroup Packet Filter Driver 服務已經啟動成功。
07、至此,Wireshark再點擊Interfaces list就可以正常選擇需要捕捉的介面了。
08、如果需要關閉此服務,是要在命令列輸入命令:net stop npf 即可。


操作成功之後,再去Wireshark選擇介面列表資訊就有了網路介面資訊了:


這裡啟動並執行時候,一定要記得把本地串連和無線網路串連都選擇上,以免請求被遺漏:


點擊開始之後,就會發現很多請求在刷屏,為了想看到我們關心的資料,可以利用一些過濾規則來進行過濾,而這裡其實有很多過濾規則命令的,感興趣的同學可以自行搜尋操作實驗即可,這裡我們只想看到SSL協議的請求資訊:


然後我們在利用瀏覽器去重新整理剛剛那個HTTPS的請求,會發現多了很多TLS協議請求,如果這裡沒有設定上面的SSLKEY資訊的話,看到的都是加密資訊:


這裡簡單說一下TLS協議的原理,直接盜了網上的一張圖:


設定了SSLKEY資訊之後,就可以看到Application Data會被解密:


而且,這時候,底部會多出一個Decrypted SSL選項卡。這裡解密之後會發現在SSL層後面多了一個超文本傳輸層,也就是HTTP等資訊了。然後我們在選中這條資訊,右鍵查看他的HTTP資訊流:


記得是有OK字樣的那條HTTP協議資料資訊條目,這裡是因為已經解密了,所以看到的是HTTP協議:


五、解密返回資料資訊

這裡就可以清晰的看到這次請求資訊和返回資訊了。然後我們把這部分的資料,在用AES進行解密:


看到列印的結果就是一個返回json資訊:


關於這裡的解密方法,之前一篇文章在用Jadx分析樣本已經看到了:


我們直接把這個方法拷貝出來,寫一個簡單的Java成功就可解密了。不瞭解的同學去回顧上一篇介紹的內容吧。

六、TLS知識點總結

好了,到這裡我們就介紹完了,如何利用Wireshark和Fiddler這兩個抓包神器,解密HTTPS請求資訊。關於TLS協議可能有的同學還不太瞭解,而且他和SSL的區別是啥,其實TLS是SSL的升級版:


現在很多協議都會用到TLS了,而且TLS1.3版本已經出來了。比如WX就採用了這個協議進行資料加密的。我們有了這個技能之後,後面就可以很輕鬆的分析TLS協議資料了,當然我們一定要熟練掌握Wireshark這個工具的用法,我們在學習過網路工程課的時候,都知道網路通訊協定棧,比如物理層,網路層,傳輸層,應用程式層:


我們在上面看到Wireshark的底部資訊列中也是有這麼幾層資訊的:


在SSL層,需要解密才能看到後面的超文本傳輸層協議的詳細資料了,也就是上面的解密方法進行操作的結果。

七、問題解惑

其實看到這裡有的同學會有好奇的地方:

  • 第一個:開始利用Fiddler可以直接進行解密資料了,為何還要用Wireshark去抓包呢?因為我們可以看到Fiddler抓取的資訊是不全的。當然有時候可能是全的,那麼就不需要在用Wireshark進行抓包分析了。
  • 第二個:在把Fiddler中抓取到的連結放到瀏覽器中訪問,產生對應的SSLKEY資訊檔。在瀏覽器中不是直接可以看到返回資料了嗎?為什麼還要用Wireshark進行抓包呢?這個的確是可以看到全部的返回資訊在瀏覽器中訪問的話,但是利用Wireshark抓包是為了更加資訊的看到TLS協議的訪問流程。這個也是為了以後熟練操作做準備。

在逆向研究中,有時候抓包是一個非常重要的一個突破口點。所以抓包分析包資訊也是至關重要的技能。

 

轉載自:http://www.wjdiankong.cn/category/android%e6%8a%80%e6%9c%af%e7%af%87/

android黑科技系列——Wireshark和Fiddler分析Android中的TLS協議包資料(附帶案例樣本)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.