使用Proxyman抓取Android的https請求
攔截網絡請求
有時,您可能需要測試您的移動應用程序并檢查與其關聯的所有網絡請求。
在網絡上,此任務非常簡單,只需按Ctrl + Shift + I打開開發人員工具即可。
從那里,您可以導航到網絡選項卡并檢查與網頁相關的所有 HTTP 請求,如下所示:
瀏覽器中的網絡請求
然而,在移動開發方面,過程并不那么簡單。與網絡不同,沒有內置機制可以通過打開開發人員工具輕松檢查 HTTP 請求。
在這篇博文中,我們將探索通過使用代理來攔截網絡請求的迷人世界。我們將指導您逐步設置和配置代理服務器,該服務器將充當您的設備和網絡之間的中介。
通過利用代理服務器的功能,我們能夠攔截、檢查和分析所有傳入的網絡請求。這為應用程序的調試、性能優化和安全分析開辟了無限可能。
為了更容易理解,我將這個過程分為五個步驟。這些都是:
1.設置 Android 模擬器
2.代理設置
3.準備證書
4.部署證書
5.在 Android 模擬器上設置代理 讓我們詳細探討每個步驟。
1. 設置Android模擬器
要開始此過程,您需要安裝 Android Studio。 成功安裝后,啟動 Android studio。在窗口頂部的工具欄上,找到并單擊菜單Tools。之后Device Manager從下拉菜單創建所需要的設備并運行設備。
avd
首先,使用該命令emulator -list-avds顯示系統上所有已安裝模擬器的列表。此命令將為您提供可用設備的名稱。從列表中確定您要運行的設備的名稱。
一旦確定了要啟動的設備,就可以使用該emulator -avd deviceName命令。deviceName將命令中的名稱替換為所需設備的實際名稱。該命令將使用指定的設備啟動模擬器。
確保您已設置模擬器命令正常工作所需的所有環境變量非常重要。這將確保命令被識別并成功執行。
列出設備
設置 Android 模擬器后,您可以選擇從APKMirror下載并安裝所需應用程序的 APK 文件。APKMirror 是一個信譽良好的網站,您可以在其中找到各種 Android 應用程序的各種 APK 文件。
下載 APK 文件后,您可以繼續將其安裝在 Android 模擬器上。您可以將下載的 APK 文件拖放到模擬器窗口中,也可以使用模擬器的文件傳輸機制導入 APK 文件。
2. 代理設置
在繼續安裝代理之前,必須確保 OpenSSL 和 Android 調試橋 (ADB) 已正確設置。以下是您應該遵循的步驟:
如果您尚未安裝OpenSSL ,請先在您的系統上安裝OpenSSL 。有關安裝過程,請參閱特定于您的操作系統的文檔。openssl version安裝后,您可以通過在終端或命令提示符中運行命令來驗證安裝。如果安裝正確,這將顯示 OpenSSL 版本。
檢查 OpenSSL 版本
接下來,確認您可以從終端或命令提示符訪問 Android 調試橋 (ADB),這一點很重要。使用該命令adb version檢查 ADB 是否可訪問且配置正確。如果命令返回ADB版本,則表示設置正確。
成功設置 OpenSSL 并確認對 ADB 的訪問權限后,您可以繼續安裝代理。在本教程中,我們將下載并使用Proxyman作為示例工具。但是,您可以將相同的原則應用于其他類似的工具,例如Charles Proxy或mitmProxy。
3. 準備證書
為了解密應用程序請求,Proxyman 生成自定義 SSL 證書。要獲取此證書并將其配置為與 Android 操作系統一起使用,請執行以下步驟:
打開您的網絡瀏覽器并訪問以下鏈接。您可以通過此鏈接下載 Proxyman SSL 證書。下載證書后,找到保存證書的文件夾:
http://proxy.man/ssl
找到下載文件的文件夾
?為了確保證書文件具有 Android 操作系統所需的正確格式,您需要對其進行重命名。打開命令提示符并導航到證書所在的文件夾。之后運行此命令:
hashed_name=`opensslx509-informPEM-subject_hash_old-inproxyman-ca.pem|head-1`&&cpproxyman-ca.pem$hashed_name.0ThiscommandusesOpenSSLtogenerateahashednameforthecertificateandthenrenamesthefileaccordingly.Byfollowingthesesteps,youobtainthecustomSSLcertificatefromProxymanandrenameittotheformatexpectedbyAndroidOS.ThiscertificateisessentialfordecryptingapprequestsandenablingProxymantointerceptandanalyzethenetworktraffic.
此命令使用 OpenSSL生成證書的哈希名稱, 然后相應地重命名文件。通過執行以下步驟,您可以從Proxyman獲取自定義SSL 證書,并將其重命名為Android 操作系統所需的格式。
此證書對于解密應用程序請求并使Proxyman能夠攔截和分析網絡流量至關重要。
此命令在 Windows Power shell 上不起作用,因此我在 Git Bash 終端上運行了此命令:
在 Git bash 上運行命令
命令執行成功,并.0在同一文件夾中生成了一個擴展名的文件:
獲取Android證書
4. 部署證書
我們在上一步中生成的文件.0是將要添加到 Android 模擬器中的證書。為此,我們首先打開終端并列出可用的 AVD:
emulator-list-avds
從可用的 AVD 中,我們將使用以下命令運行所需的 AVD:
emulator-avd-writable-system
請注意,我們使用-writable-system標志來啟動具有可寫系統權限的 AVD,從而允許修改。之后我們需要打開另一個終端并運行以下命令:
adbroot
此命令以 root 權限重新啟動 ADB 守護進程。之后,我們運行此命令以禁用設備上的安全啟動驗證:
adbshellavbctldisable-verification
接下來我們使用以下命令重新啟動設備:
adbreboot
設備重新啟動后,運行以下命令以 root 身份重新啟動 ADB:
adbroot
通過執行以下命令將分區重新掛載為讀寫:
adbremount
如果 ADB 提示您重新啟動設備,請adb reboot再次運行,然后運行adb root和adb remount。現在我們準備.0使用以下命令將重命名的 SSL 證書文件(我們之前生成的文件)推送到設備,并替換
adbpush/system/etc/security/cacerts
此命令將證書文件復制到設備上的相應目錄。現在我們將通過運行以下命令為證書文件設置正確的權限:
adbshellchmod664/system/etc/security/cacerts/
現在我們需要使用以下命令最后一次重新啟動設備:
adbreboot
設備將重新啟動,并將部署 SSL 證書。我們已成功將 SSL 證書部署到您的 Android 模擬器中。這將允許模擬器識別并信任該證書,從而使 Proxyman 能夠攔截和分析來自設備的網絡流量。
現在要驗證 Android 設備上的證書,您可以導航到Android 設備設置Trusted Credentials中的System部分,您可以找到選項卡下列出的證書。這確認證書已成功安裝并被您的 Android 設備識別:Encryption & CredentialsProxymanLLCSystem
驗證證書
5. 在Android模擬器上設置代理
最后一步涉及我們配置 Android 模擬器以使用我們設置的 Proxyman 代理。為此,請在您的計算機上啟動 Proxyman。在 Proxyman 中,導航至Certificate菜單。Install Certificate on Android從下拉列表中選擇。Physical Devices從子菜單中選擇。請注意,您無需擔心該術語Physical Devices,因為我們不會遵循該特定指南。我們只需要此菜單中的一些基本細節:
Proxyman 上的物理設備
在Android setup guide中,確保復制 IP 地址和端口號。該過程的后續步驟將需要這些詳細信息:
復制 IP 和端口號
接下來是轉到 Android 模擬器并單擊菜單圖標,如屏幕截圖所示:
菜單按鈕
單擊Settings側欄中的選項。單擊后,Settings,您可以繼續導航到該Proxy選項卡:
導航至設置
在代理選項卡中,選中該Manual proxy configuration選項。之后粘貼我們從ProxymanAndroid setup guide步驟復制的 IP 地址和端口并點擊apply按鈕:
配置IP和端口號
我們已經成功完成了攔截來自 Android 設備的 HTTP 請求的所有必要設置步驟。現在,我們可以啟動Proxyman并在 Android 模擬器上運行應用程序。當我們使用應用程序時,Proxyman將捕獲并顯示與網絡請求相關的所有相關詳細信息和數據,為我們提供有關應用程序通信的寶貴見解和可見性。
使用Proxyman攔截網絡請求
審核編輯:劉清
-
Android系統
+關注
關注
0文章
56瀏覽量
13514 -
模擬器
+關注
關注
2文章
877瀏覽量
43265 -
OpenSSL
+關注
關注
0文章
21瀏覽量
8704 -
ADB驅動
+關注
關注
0文章
13瀏覽量
6280 -
HTTP接口
+關注
關注
0文章
21瀏覽量
1809
原文標題:使用Proxyman抓取Android的https請求
文章出處:【微信號:哆啦安全,微信公眾號:哆啦安全】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論