由HTTPS抓包引發的一系列思考

2019-12-26 115314人圍觀 ,發現 40 個不明物體 WEB安全

前言

在滲透測試過程中,必不可少的操作就是使用BurpSuite、Fildder等抓包工具對應用程序的數據包進行攔截、觀察和篡改。那么問題來了——對于使用HTTPS協議的站點,在BurpSuite中攔截到的數據包為何也是“明文傳輸”?如下圖所示。

從大神那里獲得解答:

(1) BurpSuite能抓到HTTPS協議的“明文數據”是因為BurpSuite在本地瀏覽器安裝了自己的證書,作為中間人的它分別建立起了“客戶端->代理服務器”、“代理服務器->服務端”兩段HTTPS通道,BurpSuite獲得Client消息后先解密后再重新加密,然后代替客戶端發給服務端,這個過程中BurpSuite自然能獲得明文。

(2) 但是如果使用WireShare來單純監聽、嗅探HTTPS協議的數據包的話,我們就會看到TCP攜帶的Data都是密文,是無法拿到明文數據的。

WireShark抓包

接下來當然是使用WireShare監聽數據并觀察分析下,先簡單說下WireShare的基本使用。

首先開啟WireShark并配置受監聽的網卡:

選擇正在使用的網卡,雙擊WLAN開始監聽:

電腦中開啟瀏覽器或其他應用的時候都會有流量產生,有流量產生就會被WireShark捕捉到。上圖為剛剛開啟WireShark后的捕捉狀態,會抓到大量各種各樣的流量,稍后我們會進行過濾操作。

HTTP站點

使用合天網安實驗室的登陸頁面作為觀察對象。

在CMD中Ping域名,獲得站點IP地址58.20.54.226:

在WireShark中設置過濾規則“ip.dst==58.20.54.226”,發現登錄請求傳輸的賬號密碼信息:

也可以選擇資源為POST /sessions HTTP/1.1的流量然后鼠標右鍵選擇追蹤流->TCP流,可以看到用戶名和密碼等敏感信息可以被嗅探:

查看前端代碼,可發現該HTTP站點確實對賬戶密碼做了前端加密后再進行傳輸:

HTTPS站點

看完上面HTTP站點的數據在WireShark中“裸奔”,接下來看看HTTPS站點是不是也如此。

選用站點“墨者學院”作為觀察對象:

在WireShark中設置過濾規則“ip.dst==113.200.16.234”,可發現HTTP站點的流量均給出了具體的請求資源地址(如上面的POST /sessions HTTP/1.1),而HTTPS站點傳輸的時候只提示為“Application Data”:

繼續選擇任意協議為TLSv1的流量后右擊選擇追蹤流->TCP流,發現數據均經過加密,根本看不懂:

解密HTTPS數據

HTTPS協議使用了對稱加密,客戶端擁有并存儲了對稱加密的會話密鑰,瀏覽器在接收到服務端發送回來的密文數據之后,會使用存儲在本地的秘鑰對數據進行解密。那么我們通過WireShark監聽到的HTTPS站點的密文能否依靠此密鑰進行自動解密?答案是——可以。

接下來我們來實際操作并驗證下:

1、以windows系統+Chrome瀏覽器為例,首先要導出瀏覽器存儲的密鑰,通過計算機屬性——高級系統設置——環境變量,新建一個變量名“SSLKEYLOGFILE”的變量,變量值是導出的密鑰具體文件地址。2、設置后可以通過重啟Chrome瀏覽器打開任意一個HTTPS網址,此時查看變量值對應路徑,密鑰成功導出到本地啦,已經生成sslkey.log文件:

3、現在可以將密鑰導入到Wireshark了,具體路徑如下:菜單欄—>編輯—>首選項—>Protocols—>TLS/SSL(選擇SSL還是TLS請根據實際情況):

4、配置完成,來看下最終的實際效果(此處同樣使用上文中“墨者學院”HTTPS站點作為測試對象,其初始的加密數據包狀態可翻看前文):

5、對比一下文章開頭BurpSuite攔截到的數據包:

【總結】至此,我們可以得知BurpSuite攔截HTTPS站點可獲得明文數據包,并非因為HTTPS站點跟HTTP站點一樣進行“裸奔”,而是BurpSuite代理服務器作為中間人,對HTTPS站點的數據包進行了解密。

監聽局域網流量

既然HTTP協議和HTTPS協議的明文數據我們都有辦法通過WireShark進行獲取,那么問題來了——WireShark能否輕易獲得局域網內部其他主機的數據包呢?(如果可以………我那存有兩毛錢巨款的賬戶的信息安全該咋辦?)

問題的答案是——Windows 10系統可以在一塊真實無線網卡基礎上再虛擬出一塊無線網卡,支持網絡共享,讓電腦變身WIFI熱點,我們把接網卡共享后設置其IP為192.168.XXX.XXX,讓這個網卡做網關,別的電腦連上WIFI后都通過這個網卡上網,然后你就可以輕易的在這個網卡上捕獲別的電腦的數據包。

什么?你不信?那接下來進行實操來驗證下吧。

1、要通過Win10系統自帶的移動熱點進行WIFI共享,首先確保WLAN網卡開啟,WLAN網卡連接到其它無線WLAN網絡上:

2、移動熱點即變為可開啟狀態,并點擊編輯按鈕進行SSID無線名稱及連接密碼進行設置即可:

3、在網絡連接設置頁面上找到剛剛開啟的虛擬AP網卡信息:

4、在CMD窗口中使用ipconfig命令查詢當前主機的IP,結果為:

5、設置虛擬網卡的IP地址、子網掩碼、DNS服務器地址如下,點擊確認:

6、選擇WLAN 右鍵屬性—>共享設置,選擇共享并選擇剛剛開啟的無線AP熱點,點擊確認:

7、通過手機或者其他支持WIFI上網的設備搜索該信號即可進行連接并上網,此處選擇手機:

8、查看手機連上電腦熱點后分配到的IP地址:

9、在電腦打開WireShark,監聽剛才開啟的虛擬無線網卡:

10、可以看到,成功監聽到手機的數據包流量:

11、進一步驗證一下!!手機瀏覽器打開“合天網安實驗室”站點的登錄頁面,并進行登錄:

12、在WireShark輸入過濾規則“ip.src==192.168.137.251 and ip.dst==58.20.54.226”并查看登錄請求包,成功監聽到明文賬號和密碼信息(已做前端加密):

至此,我們可以看到,手機平時在公眾場合連接未知的WIFI后進行系統登錄、轉賬業務等敏感操作將是多么危險!!!!一不小心賬號和密碼就被監聽了!

*本文原創作者:True521,本文屬于FreeBuf原創獎勵計劃,未經許可禁止轉載

更多精彩
相關推薦
發表評論

已有 40 條評論

取消
Loading...

特別推薦

活動預告

填寫個人信息

姓名
電話
郵箱
公司
行業
職位
css.php 微信上那些说赚钱是真的吗