DIY裝機聯盟-電腦故障排除|裝機指南|硬件配置|電腦知識

DIY裝機聯盟-電腦故障排除|裝機指南|硬件配置|電腦知識

http://www.bibooz.net

菜單導航

Black Hat USA 2021議題When TLS Hacks You

作者:?莊吉 發布時間:?2021年09月23日 14:18:53

2021年BlackHat大會上,Joshua Maddux介紹了一種針對SSRF的新穎利用思路,得到了廣泛的關注。此類攻擊是通過構造一個HTTPS Server,使TLS session中攜帶攻擊載荷,攻擊行為觸發主要通過一個受限的SSRF漏洞(甚至一個釣魚網頁),結合TLS協議和DNS協議的特性,把攻擊報文發到受害者內網的TCP服務中,達到SSRF漏洞攻擊面擴大的效果。本文將針對此攻擊進行較深入介紹和演示,供大家學習參考。

在演示該攻擊方式之前,我們首先介紹以下關鍵知識:

SSRF

SSDNS Rebind

TLS session resumption

0x01 SSRF

SSRF漏洞是一個常見的web安全漏洞,通過提交一段精心構造的請求信息,發送給服務器,欺騙服務器讀取本地文件、探測內網信息、攻擊內網其他服務器等。

攻擊行為可以通過多種信息實現,取決于服務對協議的支持情況:

file://

dict://

TFTP://

https://

Gopher://
其中通過Gopher協議,我們可以構造的TCP上層報文,和大部分的TCP 服務器通信,比如MySQL、PostgreSQL、Redis、Memcached、SMTP,大大拓展了SSRF漏洞的攻擊面。

0x02 DNS Rebinding 0x021 DNS TTL

DNS TTL 用來定義DNS解析數據在緩存中存放的時間,生存時間一到期,名稱服務器就丟棄原有的緩存數據,并從權威名稱服務器獲取新的數據。假如一個域名的 TTL 為10s,當我們在這10s內,對該域名進行多次 DNS 請求,DNS 服務器,只會收到一次請求,其他的都是緩存。

詳細的TTL設置參考RFC2181對DNS TTL的描述:

It ishereby specified that a TTL value is an unsigned number, with a minimum value of 0, and a maximum value of 2147483647. That is, a maximum of 2^31 - 1. When transmitted, this value shall be encoded in the less significant 31 bits of the 32 bit TTL field, with the most significant, or sign, bit set to zero.

在DNS應答報文中,TTL字段一共4個字節,其中低31位是有效位,數值范圍為0到2^31 - 1,這里以百度域名解析應答為例,DNS應答報文設置了TTL值為249s(000000f9):

image-20210410110649940.png

0x022 DNS Rebinding

通常的SSRF防御措施是通過以下防御機制實現的:

81138e5f4403b0c5b7b1dc96bcd650ff.png

這種SSRF防御思路上,通常會對目標url進行解析,“獲取IP地址”然后進行ip判斷,如果ip地址在正常范圍內,則進入下一個邏輯,“服務端請求URL”。

因此,DNS Rebindind的攻擊思路,是申請一個域名,構造一個DNS服務器,將域名解析到該DNS服務器,同時設置DNS服務器的應答包圍TTL為0,在“獲取ip地址”的邏輯中響應正常的ip地址,繞過了檢測,與此同時由于TTL為0,因此在“服務端請求URL”步驟中,需要重新進行DNS解析,此時DNS服務器應答的ip地址為希望攻擊的ip。

實驗步驟如下:

設置域名解析的服務器為自定義的DNS服務器

啟動自定義的DNS服務器

瀏覽器訪問域名
在本地127.0.0.1地址啟動http server

image-20210412104819282.png

訪問目標域名,結果響應結果為本地http服務

本文地址:http://www.bibooz.net/wlzs/65248.html

請遵守互聯網相關規定,不要發布廣告和違法內容

乱子真实露脸刺激对白