《爆肝整理》保姆級系列教學-玩轉Charles抓包神器教學(6)-Charles安卓手機抓包大揭祕

2023-02-08 12:01:31

1.簡介

Charles和Fiddler一樣不但能截獲各種瀏覽器發出的 HTTP 請求,也可以截獲各種智慧手機發出的HTTP/ HTTPS 請求。

Charles也能截獲 Android 和 Windows Phone 等裝置發出的 HTTP/HTTPS 請求。

今天宏哥講解和分享Charles如何截獲安卓行動端發出的 HTTP/HTTPS 請求。

2.環境準備

Charles如果想要實現手機抓包,需要先滿足下面 3 個條件:

(1)電腦上安裝有Charles抓包工具。

(2)安裝有Charles的電腦必須跟手機處在同一個網路里,並且手機網路代理必須設定為Charles,當我們的手機傳送資料時必須經過Charles這一層服務。

(3)在Charles中設定好捕獲 HTTPS。

1.宏哥的環境是Windows 10版本 64位元系統。如下圖所示:

3.大致思路步驟

1.電腦本地安裝charles證書

2.檢視電腦charles的IP和埠號

3.手機連線charles,抓取簡單的http

4.charles設定ssl proxy setting

5.手機安裝charles證書

4.為什麼需要安裝Charles的CA證書呢?

1)先理清一些概念的東西:

a)簡單來說,https是http的安全版本,超文字傳輸協定http是以明文傳送資料,而https是具有安全性的ssl加密傳輸協定,可以這麼認為https=http+ssl。

b)採用https的伺服器必須從CA申請一個用於證明伺服器用途型別的證書,證書是唯一性,只用於對應的伺服器。使用者端要認可這個伺服器是否是安全的,可以進行存取或者交易等操作,則需要進行對伺服器端的驗證。

下圖是使用者端對伺服器的驗證過程:

c)ssl證書,遵循了ssl協定,在使用者端和伺服器之間建立了一條ssl安全通道,一般ssl證書都是在驗證伺服器身份後頒發給使用者端。

d)由於ssl技術已建立在所有主要的瀏覽器和web伺服器程式中,因此,僅需安裝伺服器證書就可以啟用ssl協定,所以使用者端通過信任該證書,就相當於信任了該主機(伺服器)。

下圖是使用者端和伺服器端加密通訊的流程:

2)通過以上一個簡單的理順之後,這也就為什麼當我們在使用Charles進行抓包的時候需要安裝證書,可以通過ssl數位憑證中的私用金鑰來解譯加密的資訊,展示在Charles中,但是Charles有一個特殊的地方,就是實際上使用者端安裝的是Charles的CA證書,然後Charles安裝伺服器的CA證書,實際上流程還是一樣的。

5.安卓手機抓包設定

5.1Charles PC端http設定

http是預設設定好的,要是預設安裝完沒設定好,我們就自己設定一下,預設的埠號是「8888」我們後面設定手機代理的的時候也要注意這個埠要保持一致。

Charles的設定:這是要開啟代理功能,具體操作步驟如下:

1.啟動Charles,點選「Proxy-->Proxy Settings」,然後在Proxy Settings中填好埠(8888),並且勾選上「Enable transparent HTTP proxying」,最後點選「OK」。如下圖所示:

2.檢視執行Charles的電腦的IP地址,可以在命令列中執行ipconfig或者直接檢視網路設定,如下圖所示:

3.可以對照一下當前所安裝的Charles中的ip地址是否一致,你可以直接在Charles上可以直接檢視Charles的IP和埠,點選「Help-->SSL Proxying」,然後點選「Install Charles Root Certificate on a Mobile Device or Remote Browser」,如下圖所示:

5.2Charles PC端SSL(https)設定

無論電腦端還是手機端進行抓取Https的包,都需要先安裝對應證書才能使用。具體操作步驟如下:

1.開啟charles,點選help-->SSL Proxying-->Install Charles root  Certificate 安裝證書,如下圖所示:

2.點選完「Install Charles root  Certificate」後,然後點選「安裝證書」,如下圖所示:

3.點選「安裝證書」後,選擇儲存位置「本地計算機」,點選「下一步」,如下圖所示:

4.證書儲存位置選擇‘將所有的證書都放入下列儲存’,然後點選證書儲存後的「瀏覽」,證書儲存選擇「受信任的根證書頒發機構」,點選「確定」,如下圖所示:

5.點選「下一步」,如下圖所示:

6.點選「完成」,提示匯入成功。如下圖所示:

7.點選proxy》 SSL Proxyng Settings。如下圖所示:

8.開啟介面如下 弄到跟我一樣就可以 如果沒有*;443自己按add手動添host :*,port:443 。如下圖所示:

這樣就可以抓取PC端的http和https型別的包了,接下來我們就來進行安卓手機端代理的設定。

5.3安卓手機設定

本節內容適合所有的 Android裝置。下面以夜神模擬器為例進行講解,其他品牌的模擬器和真實的手機操作方法與此差不多。具體操作步驟如下:

1.在確定了手機和Charles在同一區域網下之後, 那麼我們來到Android手機的設定選項下,找到夜神模擬器手機當前連線的WLAN(一些 Android 手機是單擊右邊的箭頭,有的是長按彈出對話方塊),如下圖所示:

2.看到有一個wifi訊號,長按這個訊號,出現修改網路的彈窗。如下圖所示:

3.點選修改網路,選中高階選項,開啟高階選項,將代理設為手動,代理伺服器主機名填寫電腦的IP,埠號填寫為主機抓包工具的監聽埠。如下圖所示:

4.點選儲存,就成功完成代理的設定了。如下圖所示:

 

5.電腦出現允許代理的提示,點選Allow即可,如下圖所示:

那麼到此Android手機的網路代理設定就到此為止,其他不同型號的Android模擬器和真機設定大同小異,以此類推,實在不會的自己可以百度一下。到此處表示已經可以抓http的手機包了。

5.4測試Charles捕獲手機發出的 HTTP

1.開啟手機上的瀏覽器,在瀏覽器中輸入連結:http://open.vipexam.org。中科VIPExam考試學習資源資料庫網站用的是 HTTP 協定而不是 HTTPS 協定,檢視 Fiddler 是否捕獲到了 HTTP 封包。如下圖所示:

2.開啟手機上的 APP,在 APP 中進行一些操作,檢視 Fiddler 是否能捕獲到 HTTP 封包。如下圖所示:

如果抓不到 HTTP 的包,很可能是 Windows 防火牆的問題,到控制面板中關閉防火牆後再試試。

5.5測試Fiddler捕獲手機發出的HTTPS

1.開啟手機上的瀏覽器,在瀏覽器中輸入HTTPS協定,檢視Charles是否捕獲到了HTTPS封包。一直在報證書安全警告錯誤,無法抓取,因此需要我們安裝證書,原因宏哥在抓取PC端Web頁面包已經說過了,這裡就不做贅述了。如下圖所示:

2.開啟手機上的APP,在APP中進行一些操作,檢視Fiddler是否能捕獲到HTTPS封包。又出現了Unknown,如下圖所示:

到此,我們知道了要想抓取手機端Https的資料,還的設定證書,證書不用問了,還是Charles下發的。

5.6Android手機設定證書

通過前邊宏哥的測試,我們知道在抓取Android手機封包的時候 跟web端也是一樣,都需要設定證書,否則是無法正常進行抓包的。之前已經在我們的android手機上設定好了Charles的代理服務了,那麼現在就可以通過ip+port的方式來存取Charles從而下載對應的證書。具體操作步驟如下:

1.在Android手機上開啟(自帶)的瀏覽器,輸入:http://chls.pro/ssl 來下載證書。如果不出意外的話就會出現如下介面:

 

2.給證書命名為:CharlesRoot,點選「確定」,如下圖所示:

 

3.點選「確定」後,需要輸入憑據儲存的密碼。如下圖所示:

4.再次點選「確定」,提示需要設定鎖屏密碼(注:選擇安裝的檔案後,需要輸入手機的鎖屏密碼。Android一定要有鎖屏密碼才能安裝證書),如下圖所示:

5.點選「確定」。按要求設定一個手機密碼,自己設定一個,記住密碼就行,最後不用了去系統-安全-密碼中去掉即可,如下圖所示:

6.完成鎖屏密碼後,提示證書已安裝,證書安裝成功後,如果你的手機系統沒有設定密碼或者鎖屏圖案,則系統會提示你設定鎖屏圖案或者密碼。如下圖所示:

7.證書安裝好後,檢視已信任證書:具體位置在【設定--->安全--->信任的憑據--->使用者】,如下圖所示:

6.開始Android抓包

通過前邊的設定,我們現在可以開始抓安卓手機的https的包了。

1.開啟手機上的瀏覽器,在瀏覽器中輸入HTTPS協定的網站,例如:百度。如下圖所示:

7.小結

 Charles和Fiddler一樣,一個手機可以安裝多個證書,但是每安裝的一個證書裡面都設定有IP地址,所以:安裝的證書和電腦IP是一一對應的,當前的這個證書只能針對某一臺電腦使用,更換電腦後,該證書將不能使用,只能重新安裝與更換的電腦的IP相同的證書才能使用。

對了,關於Android7.0的版本在Fiddler那裡已經詳細地介紹了,只不過是工具換了一下,原理都差不多,這裡和後邊就不再做介紹了。而且這裡介紹的和Fiddler抓包安卓手機的設定也基本一致,種種原因這裡又囉嗦水了一遍。湊合看吧。