夜神模擬器Android5.1中安裝Xposed + JustTrustMe 客戶端安裝mitmproxy抓取某網站數據


產生原理
是這樣的,當我們使用抓包工具抓包時,抓包工具在攔截了服務端返回的內容並重新發給客戶端的時候使用證書不是服務器端原來的證書,而是抓包工具自己的,抓包工具原來的證書並不是APP開發者設定的服務端原本的證書,於是就構成了中間人攻擊,觸發SSL Pinning機制導致鏈接中斷,所以我們無法直接抓到包。

常見的開啟了SSL Pinning的APP大致分為兩種操作:
1、服務端使用了某個權威證書頒發機構(CA)頒發的證書,並且在APP中校驗證書是否正常;
2、服務端使用了CA頒發的證書或者自己給自己頒發證書,並且在APP中校驗證書本身是否正常的,需要將證書與APP本體一同下發。有把證書混淆在代碼里面藏起來的,也有直接放在資源目錄下的。

SSL Pinning介紹

客戶端在收到服務器的證書后,對該證書進行強校驗,驗證該證書是不是客戶端承認的證書,如果不是,則直接斷開連接。
瀏覽器其實已經這樣做了,但是如“前面”所說,選擇權交給了用戶,且瀏覽器由於其開放性允許讓用戶自導入自己的證書到受信任區域。
但是在APP里面就不一樣,APP是HTTPS的服務提供方自己開發的客戶端,開發者可以先將自己服務器的證書打包內置到自己的APP中,或者將證書簽名內置到APP中,當客戶端在請求服務器建立連接期間收到服務器證書后,先使用內置的證書信息校驗一下服務器證書是否合法,如果不合法,直接斷開。
當然攻擊者也可以通過把這個APP源碼給逆出來,然后找到證書校驗這段邏輯,給他干掉,或者干脆把證書信息換成自己的服務器證書信息,然后重新打包簽名,但是一旦APP做了代碼加密和混淆,這個操作也會變得比較難搞。
因此這樣看來,通過預先把服務器的證書信息“綁定“在APP的native端,然后建立連接時使用預先內置的綁定信息進行服務器證書校驗,同時使用足夠的代碼加密或混淆,是比較合適的解決辦法, 這個搞法就是“ssl pinning”.

 

Xposed框架介紹:

Xposed框架(Xposed Framework)是一套開源的、在Android高權限模式下運行的框架服務,可以在不修改APK文件的情況下影響程序運行(修改系統)的框架服務,基於它可以制作出許多功能強大的模塊,且在功能不沖突的情況下同時運作。

 

 Xposed框架安裝和JustTrustMe安裝

 

python安裝mitmproxy

 

pip install mitmproxy

安裝完成后,開啟一個mitmproxy的服務,比如執行命令mitmweb -p 8889,然后在瀏覽器或者移動端中進行mitm.it進行證書下載,否則會出現訪問網站時證書不受信任,在windows系統中可以使用mitmweb、mimtdump查看分析網站接口

 

1. 查看本地電腦的ip地址,修改夜神模擬器中的wifi,修改網絡改成手動, 輸入IP地址和抓包工具的開啟的端口號。

2. 將模擬器開始開發者模式,打開usb工具。

3. 輸入adb devices,查看鏈接的設備名稱。

問題:

  如何查看app的包名、appActivity、deviceName。

  設備需要修改執行程序才能連接到移動端設備等。

  

最后:一般爬取分為自動化操作app + mitmdump抓取流請求或者響應攔截,最終將數據存入指定數據庫中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM