如何爲雷電模擬器安裝Burpsuite證書並抓包

前言

最近想學習App測試之道,但我常用的是臺式機(沒有配無線網卡),所以“放在一個wifi局域網下開代理”這種最簡單方便的方法無法使用。於是我想到了用安卓模擬器的方式來測試,經過一番翻貼後我選擇了雷電模擬器,但在實際安裝burpsuite證書時碰到點麻煩。

前車之鑑一

我在看雪上找到一篇看着很管用的帖子,戳→https://bbs.pediy.com/thread-252184.htm。裏面介紹了利用frida的方法,這篇帖子寫的較簡潔,我自己在實踐時踩了不少坑。主要記錄以下兩點:

  1. frida工具在啓動時報錯,即:frida-ps -U報各種錯誤

原因:python版本和frida不匹配,如果使用pip安裝的frida和frida-tools,它會默認安裝較新的版本,此時如果python版本太舊,就會出問題。我之前的環境是py3.6.5,frida是12.7.24,後來改成py3.7.5就過了。

  1. AndroidKiller不會用o(╯□╰)o

大致介紹下用法:

  • 啓動雷電模擬器實例,並用androidkiller自帶的adb.exe連接adb.exe connect 127.0.0.1:5357
  • 我這個版本的雷電模擬器監聽的5357端口,和一些帖子裏寫的都不一樣,其實用netstat挨個試試也能找到
  • 建立連接後,可以在“Android”工具欄看到你要的各種功能:

在這裏插入圖片描述
如果你想測試帖子中的方法,我這裏也算幫忙排雷了。
我自己在完成以上步驟後,進入模擬器設置->安全->從SD卡安裝目錄裏後發現下載好的burpsuite證書依據無法安裝,心累~~

前車之鑑二

本着一顆瞎折騰的心,我又百度了一些別的方法。在v2ex上看到了這樣一篇,戳→https://www.v2ex.com/t/528852,裏面介紹了三種方法。一開始我試了xposed大法,因爲這軟件早有耳聞哈,然後一不小心又踩到了坑。在裝完justtrustme模塊後,我發現xposed總是無法啓動。後來意識到可能和安卓版本有關,於是我在網上找到了這張圖:
在這裏插入圖片描述
對照着圖,我卸載了之前的xposed 89,重新安裝了87版。這回正常了,懷着激動的心情,我打開了app打算瞎測一番,坑爹的事情發生了——鍵盤無法輸入,軟鍵盤也不好使。我回過頭想加一下burp的證書,發現依舊無法添加。WTF???怎麼跟說好的不一樣!

後車之師

再次受挫後,我又嘗試起了帖子中的第二種方法——直接將burp證書導入系統的根信任證書目錄中。聽上去夠狠夠絕,應該會管用。原文如下:

系統證書的目錄是:/system/etc/security/cacerts/
每個證書的命名規則爲:<Certificate_Hash>.<Number>
Certificate_Hash 表示證書文件的 hash 值,Number 是爲了防止證書文件的 hash 值一致而增加的後綴;
證書的 hash 值可以由命令計算出來,在終端輸入 openssl x509 -subject_hash_old -in <Certificate_File>;
其中 Certificate_File 爲證書路徑,將證書重命名爲 hash.0 放入系統證書目錄,之後你就可以正常抓包了。

我將burp的證書導出並放在了一臺ubuntu的vps中,輸入了文中的命令,終端給了我一條這樣的報錯:

root@android-test:~# openssl x509 -subject_hash_old  -in cacert.der
unable to load certificate
139914021783192:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:701:Expecting: TRUSTED CERTIFICATE

我也沒搞懂爲什麼會這樣,心想着指明證書類型試試看,於是我又敲了以下命令:

root@android-test:~# openssl x509 -subject_hash_old  -in cacert.der -inform DER
9a5ba575
-----BEGIN CERTIFICATE-----
**** SOME base64 code ****
-----END CERTIFICATE-----

hash這就出來了~~看來直覺debug還是有用的。於是按照帖子中說的,我用9a5ba575.0重命名了證書並放到了/system/etc/security/cacerts/目錄下。重啓模擬器後,我設置網絡代理爲自己PC上的burpsuite:
在這裏插入圖片描述
在模擬器瀏覽器輸入https://www.baidu.com後我終於如願看到了明文的https數據:
在這裏插入圖片描述
帖子最後還有用VirtualApp的第三種方法,我沒有試,以後如果碰到SSL Pinning可能還會翻出來試試,先馬克住再說

後記

最近發現雷電更新了新版本,新版本的文件系統變成了read-Only權限,直接移動文件進去會提示錯誤。而chmod等命令皆被禁止,後來發現這種情況下重新掛載一下根目錄就行:

# 進入adb命令行模式
adb shell
mount -o remount rw /
發佈了14 篇原創文章 · 獲贊 10 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章