Wireshark 解密 HTTPS 流量

作者:Kriston    文章來源:FreeBuf

在審查可疑網絡活動時,經常遇到加密流量。大多數網站使用 HTTPS 協議,各種類型的惡意軟件也使用 HTTPS,查看惡意軟件產生的數據對於了流量內容非常有幫助。

本文介紹瞭如何利用 Wireshark 從 pcap 中解密 HTTPS 流量。可以使用基於文本的日誌進行解密方法,日誌中包含最初記錄 pcap 時捕獲的加密密鑰數據。

HTTPS Web 流量

HTTPS 流量通常顯示一個域名。例如,在 Web 瀏覽器中查看 https://www.wireshark.org,在自定義的 Wireshark 列顯示中查看時,pcap 將顯示 www.wireshark.org 作爲此流量的服務器名稱。但無法知道其他詳細信息,例如實際的 URL 或從服務器返回的數據。

加密密鑰日誌文件

加密密鑰日誌是一個文本文件。

最初記錄 pcap 時,使用中間人(MitM)技術創建這些日誌。如果在記錄 pcap 時未創建任何此類文件,則無法解密該 pcap 中的 HTTPS 通信。

示例分析

有密鑰日誌文件的 HTTPS 流量

Github 存儲庫中有一個受密碼保護的 ZIP 文件,其中包含 pcap 及其密鑰日誌文件。ZIP 中包含的 pcap 通過密鑰日誌解密後,可以訪問惡意軟件樣本。

從 ZIP(密碼:infected)中提取 pcap 和密鑰日誌文件:

Wireshark-tutorial-KeysLogFile.txt
Wireshark解密HTTPS-SSL-TLS-traffic.pcap教程

沒有密鑰日誌文件的 HTTPS 流量

在 Wireshark 中打開解密的 HTTPS-SSL-TLS-traffic.pcap Wireshark 教程,使用 Web 篩選器:

(http.request 或 tls.handshake.type eq 1)和!(ssdp)

此 pcap 來自 Windows 10 主機上的 Dridex 惡意軟件,所有 Web 流量(包括感染活動)都是 HTTPS。沒有密鑰日誌文件,看不到流量的任何詳細信息,只有 IP 地址,TCP 端口和域名:

加載密鑰日誌文件

在 Wireshark 中打開解密的 HTTPS-SSL-TLS-traffic.pcap Wireshark,使用菜單路徑 Edit –> Preferences 來打開 Preferences 菜單:

在 Preferences 菜單的左側,單擊 Protocols:

如果使用的是 Wireshark 版本 2.x,需要選擇 SSL。如果使用的是 Wireshark 3.x 版,需要選擇 TLS。選擇 SSL 或 TLS 後,可以看到(Pre)-Master-Secret 日誌文件名。單擊 “瀏覽”,然後選擇名爲 Wireshark-tutorial-KeysLogFile.txt 的密鑰日誌文件:

密鑰日誌文件的 HTTPS 流量

單擊 “確定” 後,Wireshark 會在每條 HTTPS 行下列出解密的 HTTP 請求:

在此 pcap 中可以看到隱藏在 HTTPS 通信中對 microsoft.com 和 skype.com 域的 HTTP 請求,還發現由 Dridex 發起的以下流量:

foodsgoodforliver[.]com – GET /invest_20.dll
105711[.]com – POST /docs.php

對 foodsgoodforliver[.]com 的 GET 請求返回了 Dridex 的 DLL 文件。對 105711[.]com 的 POST 請求是來自受 Dridex 感染的 Windows 主機的命令和控制(C2)通信。

針對 foodsgoodforliver[.]com 的 HTTP GET 請求的 HTTP 流:

可以從 pcap 導出此惡意軟件,使用菜單路徑文件–> 導出對象–> HTTP 從 pcap 導出該文件:

使用 file 命令確認這是一個 DLL 文件,然後使用 shasum -a 256 獲取文件的 SHA256 哈希:

該惡意軟件的 SHA256 哈希爲:

31cf42b2a7c5c558f44cfc67684cc344c17d4946d3a1e0b2cecb8e*173cb2f

還可以檢查來自此 Dridex 感染的 C2 流量,下圖顯示了其中一個 HTTP 流的示例:

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/V70_dG_zhNB42aiWAdmpbA