2020年2月6日 星期四

HTTPS Interception by Fiddler

以前在滲透廠商的軟體都是用MitmProxy這套工具,它可以解出HTTPS的密文,這樣就能分析HTTPS裡面的封包內容,並且任意修改數值後,再回傳給伺服器,這樣就能簡易的測試遠端是否有做好安全的防護。

MitmProxy主要是利用中間人攻擊(Man in The Middle Attack)來解出HTTPS的密文,透過ArpSpoof、ArpPosion或Proxy,假冒Server並獲取Client的連線資訊,再假冒Client傳給Server,因此在中間的MitmProxy就能獲取雙方的明文資料,不過這裡會有衍伸另外的問題,在MitmProxy重新封裝HTTPS給Client,它所用到的CA(Certificate Authority)是自己重簽的,如果Client有驗證CA的正確性,此攻擊就會失敗。



經過簡單的說明攻擊原理,接下來會透過Fiddler這套工具來實現,因為MitmProxy是比較舊的工具,只支援Linux,並且是文字介面,不是很好上手。

一、Fiddler安裝

執行Fiddler後,按I Agree繼續安裝。



按Install繼續下一步。



最後安裝完成。



安裝完,開啟Fiddler的主頁面。



二、Fiddler設定

在Windows環境上,Fiddle在安裝的過程中,已經有設定Proxy了,不過還需要在Fiddler裡面設置解密HTTPS的相關設定。

在主頁面點選Tools->Options->HTTPS,將Capture HTTPS CONNECTs、Decrypt HTTPS traffic、Ignore server certificate errors打勾。



設置的過程中,它會跳出安裝Fidder的CA簽證,點選YES安裝它。



三、Fidder介紹

在主頁面的左邊,是顯示HTTP和HTTPS的流量,左鍵點選任意一個流量,可以觀察裡面的封包內容。



點選其中一個流量之後,在右邊欄位點選Inspectors就能看到解密後的封包內容。

a. Client傳送給Server的請求封包(Request Packer)。

b. Server回傳給Client的回應封包(Reponse Packer)。

不管是請求封包或回應封包,如果內容含有相關的JSON、XML、Cookies等等資訊,都可以點選觀察它。



如果修改HTTPS的封包後,可以在流量的頁面點選修改後的流量,再按右鍵->Replay,就能重送封包,另外Replay裡面有不同的重送方式,靈活性非常高的工具。