Fiddler抓取Android真機(jī)上的HTTPS包

轉(zhuǎn)載自https://blog.csdn.net/roland_sun/article/details/30078353
現(xiàn)在的Android應(yīng)用程序幾乎都會(huì)和網(wǎng)絡(luò)打交道,所以在分析一個(gè)apk的時(shí)候,如果可以抓取出其發(fā)出的數(shù)據(jù)包,將對(duì)分析程序的流程和邏輯有極大的幫助。

對(duì)于HTTP包來(lái)說(shuō),已經(jīng)有很多種分析的方法了,例如用tcpdump,或者將要分析的程序跑在模擬器中然后直接在物理機(jī)上用WireShark抓包。但是現(xiàn)在越來(lái)越多的應(yīng)用已經(jīng)使用HTTPS協(xié)議來(lái)和服務(wù)器端交換數(shù)據(jù)了,這無(wú)疑給抓包分析增加了難度。

幸好有一個(gè)工具Fiddler可以用來(lái)解決這個(gè)問(wèn)題。Fiddler是一個(gè)非常強(qiáng)大的Web調(diào)試工具,它的原理不同于WireShark。WireShark是讓網(wǎng)卡工作在混雜模式下,截取所有網(wǎng)絡(luò)上的數(shù)據(jù)包進(jìn)行分析,而Fiddler本質(zhì)上是一個(gè)HTTP/HTTPS代理服務(wù)器。

image

既然是代理服務(wù)器,那當(dāng)然可以拿到所有的包了。

Fiddler可以從這里下載到:http://www.telerik.com/download/fiddler,如果你的Windows機(jī)上能安裝.NET 4及以上的版本,盡量選擇Fiddler4來(lái)安裝。

好了,廢話不多說(shuō)了,馬上動(dòng)手開始抓包。這里我以Google Play為例,來(lái)演示如何操作,步驟如下:

1)請(qǐng)確保你的Android設(shè)備和你安裝Fiddler的電腦都連接到一個(gè)WiFi AP上,兩臺(tái)機(jī)器在一個(gè)局域網(wǎng)段里,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如下:

image

2)配置Fiddler抓取并解密HTTPS包

Fiddler默認(rèn)是不抓取HTTPS包的,需要進(jìn)行相應(yīng)的配置。

打開Fiddler,選擇“Tools->Fiddler Options...”

image

在彈出的對(duì)話框中選擇“HTTPS”選項(xiàng)卡:

image

勾選“Capture HTTPS CONNECTs”,接著勾選“Decrypt HTTPS traffic”。同時(shí),由于我們是通過(guò)WiFi遠(yuǎn)程連過(guò)來(lái),所以在下面的選項(xiàng)框中選擇“...from remote clients only”。

如果你要監(jiān)聽的程序訪問(wèn)的HTTPS站點(diǎn)使用的是不可信的證書,則請(qǐng)接著把下面的“Ignore server certificate errors”勾選上。

接著切換到"Connections"選項(xiàng)卡:

image

監(jiān)聽端口默認(rèn)是8888,當(dāng)然你可以把它設(shè)置成任何你想要的端口。請(qǐng)一定要勾選上“Allow remote computers to connect”。

為了減少干擾,可以去掉“Act as system proxy on startup”。

最后點(diǎn)“OK”退出,F(xiàn)iddler就算是設(shè)置好了。

還有一點(diǎn)提醒大家注意,請(qǐng)一定記住將你本機(jī)上的防火墻關(guān)閉,筆者在這上面浪費(fèi)了不少時(shí)間。

3)設(shè)置Android設(shè)備,添加上代理服務(wù)器

先查看一下安裝Fiddler的電腦的IP地址是多少,在cmd里使用ipconfig命令就好了。

image

可以看到,筆者電腦分配到的IP地址是192.168.11.8。這就是要在Android設(shè)備上設(shè)置的代理服務(wù)器地址,至于端口嘛,就是在前面設(shè)置的監(jiān)聽端口,默認(rèn)是8888。

好了,一切準(zhǔn)備就緒,下面來(lái)設(shè)置Android設(shè)備上的代理服務(wù)器。

打開WiFi設(shè)置頁(yè)面,選擇要連接的AP,并且長(zhǎng)按,在彈出的對(duì)話框中,選擇“修改網(wǎng)絡(luò)”。

image

在接下來(lái)彈出的對(duì)話框中,勾選“顯示高級(jí)選項(xiàng)”。在接下來(lái)顯示的頁(yè)面中,點(diǎn)擊“代理”,選擇“手動(dòng)”。

在“代理服務(wù)器主機(jī)名”和“代理服務(wù)器端口”中寫上前面得到的地址和端口,最后點(diǎn)“保存”。

image

最后,連接上這個(gè)無(wú)線AP就可以了。

4)導(dǎo)證書到Android設(shè)備

Fiddler本質(zhì)上是一個(gè)HTTPS代理服務(wù)器,其自己帶的證書顯然不會(huì)在Android設(shè)備的受信任證書列表里。

有些應(yīng)用程序會(huì)查看服務(wù)器端的證書是否是由受信任的根證書簽名的,如果不是就直接跳出。

所以,為了保險(xiǎn)起見,我們要將Fiddler代理服務(wù)器的證書導(dǎo)到Android設(shè)備上。

導(dǎo)入的過(guò)程非常簡(jiǎn)單,打開設(shè)備自帶的瀏覽器,在地址欄中輸入代理服務(wù)器的IP和端口,例如本例中我們會(huì)輸入192.169.11.8:8888,進(jìn)入之后會(huì)看到一個(gè)Fiddler提供的頁(yè)面:

image

點(diǎn)擊頁(yè)面中的“FiddlerRoot certificate”鏈接,接著系統(tǒng)會(huì)彈出對(duì)話框:

image

輸入一個(gè)證書名稱,然后直接點(diǎn)“確定”就好了。

一切都設(shè)置完成了,我們來(lái)抓包看看效果吧,打開Android設(shè)備上的“Google Play”,看看能拿到什么:

image
image

看到了沒(méi)有,全都能拿出來(lái),再結(jié)合其它的一些動(dòng)態(tài)或靜態(tài)的分析方法,破解協(xié)議將變得容易一些。

最后,不得不提這種方法的一些優(yōu)點(diǎn)和缺點(diǎn)。

首先來(lái)談優(yōu)點(diǎn),有以下幾點(diǎn):

1)手機(jī)不需要root就可以抓包;

2)可以用真機(jī)抓包,有些程序是抗動(dòng)態(tài)分析的,能夠判斷自己運(yùn)行在模擬器中。

缺點(diǎn)嘛,當(dāng)然也有:

1)必須要用WiFi連接(這個(gè)很容易滿足);

2)要抓包分析的應(yīng)用程序必須自己支持代理服務(wù)器的設(shè)置。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容