【安全研究】Domain fronting域名前置網路攻擊技術

Ms08067安全實驗室發表於2021-03-26

出品|MS08067實驗室(www.ms08067.com)

千里百科

Domain Fronting基於HTTPS通用規避技術,也被稱為域前端網路攻擊技術。這是一種用來隱藏Metasploit,Cobalt Strike等團隊控制伺服器流量,以此來一定程度繞過檢查器或防火牆檢測的技術,如Amazon ,Google,Akamai 等大型廠商會提供一些域前端技術服務。

下列將會使用Amazon 提供CloudFront (CDN)服務舉例。

背景

在虛擬主機中搭建多個網站服務,為了方便我們區分它們,可以 IP+Port名稱 等方式去訪問它們,但是如果是SSL/TLS的話。根據HTTPS的工作原理,瀏覽器在訪問一個HTTPS站點時,先與伺服器建立SSL連線。

建立連線的第一步就是請求伺服器的證照。而伺服器在傳送證照時,是不知道瀏覽器訪問的是哪個域名的,所以不能根據不同域名傳送不同的證照。因此就引入一個擴充套件叫SNI,SNI是為了解決一個伺服器使用多個域名和證照的SSL/TLS擴充套件,做法就是在 Client Hello 中補上 Host 資訊。

域前端的關鍵思想是在不同的通訊層使用不同的域名,是一種隱藏連線真實端點來規避網際網路審查的技術。在應用層上運作時,域前置使使用者能通過HTTPS連線到被遮蔽的服務,而表面上像在與另一個完全不同的站點通訊。

此技術的原理為在不同通訊層使用不同的域名。在明文的DNS請求和TLS伺服器名稱指示(SNI)中使用無害的域名來初始化連線,而實際要連線的被封鎖域名僅在建立加密的HTTPS連線後發出,在Host頭中攜帶了另一個惡意C2域名(Host頭對於檢查器是不可見的,但是對於接收HTTPS請求的前端伺服器是可見的)。

演示

在Amazon CloudFront是一種內容交付網路服務。它為使用者提供了一個全域性分散式快取,用於託管在其伺服器上的檔案。這減少了客戶伺服器上的負載,並允許CDN提供來自與請求者資料中心的快取內容,當客戶端連線到CloudFront的時候,其根據HOST頭來判斷客戶端想要請求的域名,在做域前置攻擊時候,只要在CloudFront中挑選一個受信任域名,如"https://docs.telemetry.mozilla.org",看起來是一個合法白名單域名,將他做為前置域名來躲避防火牆審查。

在Amazon CloudFront申請一個賬戶並建立一個CloudFront,在"Origin Domain Name"寫入自己的C&C控制器域名如Godsong.test,其他設定按自己需求來。

申請完畢之後會自動分發一個隨機域名 xxx.cloudfront.net樣式,將頒發的隨機域名指向真實C2伺服器,使用者訪問此域名時候會解析到真實的C&C伺服器。

域名前置因為使用了合法前置域名做誘餌,在使用HTTPS連結時,DNS請求的也都是合法域名,而在HOST中請求修改請求指向為我們C&C伺服器,相當於請求合法域名之後把流量轉發到了中轉web上。

在CloudFront為我分配了一個域名,此域名轉發到我的C&C地址上,在原始C&C伺服器Web存放了一個名為6.txt記事本,地址為https://www.godsong.test/6.txt。

訪問Aws頒發的域名https://d305blu4121c3m.cloudfront.net/6.txt,能返回原始流量轉發說明測試成功。

使用合法白名單作為前置域名,修改Host指向為我們的C&C域名。

wget -U demo -q -O- docs.telemetry.mozilla.org/6.txt --header  
"Host:d305blu4121c3m.cloudfront.net"

如下圖就成功利用Mozilla白名單域名技術來隱藏真實惡意流量。

在實際應用中,可以使用Cobalt Strike ,Empire, Metasploit等工具修改其配置檔案來控制流量傳輸,下文使用Cobalt Strike演示,設定一個Profile擴充套件並且指定Host頭為d305blu4121c3m.cloudfront.net。

建立一個監聽器,主機寫Cloudfront.net分發域名,監聽80埠。

Beacon傳輸器使用白名單域名如下:

在惡意程式執行後,使用Wireshark 抓取傳輸流量資料包。如圖所示,可以看到相關請求如下,以此方法來隱藏真實C&C伺服器地址,在Wireshark 中檢視傳輸流量包Host頭也同樣指向我們Cloudfront伺服器,一定程度上隱蔽了真實攻擊機地址。

總結:Domain Fronting技術因為我們看到的域只是前端伺服器域,很難區分那個是正常域名或惡意域名,但實際上惡意流量都要進入被控端伺服器,這樣的話就會在被控伺服器上產生一些惡意指紋,網路資料包的大小和時間,以此方法來觀察惡意特徵檢測等等。

參考文獻

[1]https://www.sans.org/cyber-security-summit/archives/file/summit-archive-1542139101.pdf
圖2,圖6引用此文
[2]http://www.ert7.com/service/knowledge/3999.html

轉載請聯絡作者並註明出處!

Ms08067安全實驗室專注於網路安全知識的普及和培訓。團隊已出版《Web安全攻防:滲透測試實戰指南》,《內網安全攻防:滲透測試實戰指南》,《Python安全攻防:滲透測試實戰指南》,《Java程式碼安全審計(入門篇)》等書籍。
團隊公眾號定期分享關於CTF靶場、內網滲透、APT方面技術乾貨,從零開始、以實戰落地為主,致力於做一個實用的乾貨分享型公眾號。
官方網站:https://www.ms08067.com/

掃描下方二維碼加入實驗室VIP社群
加入後邀請加入內部VIP群,內部微信群永久有效!

【安全研究】Domain fronting域名前置網路攻擊技術【安全研究】Domain fronting域名前置網路攻擊技術【安全研究】Domain fronting域名前置網路攻擊技術

【安全研究】Domain fronting域名前置網路攻擊技術【安全研究】Domain fronting域名前置網路攻擊技術【安全研究】Domain fronting域名前置網路攻擊技術

相關文章