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

在滲透測試過程中,必不可少的操作就是使用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後進行系統登錄、轉賬業務等敏感操作將是多麼危險!!!!一不小心賬號和密碼就被監聽了!

發佈了111 篇原創文章 · 獲贊 90 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章