NAT滑流,繞過攻擊可訪問任何TCP / UDP服務

著名安全研究員Samy Kamkar(以創建多個複雜的攻擊設備而聞名,例如 USB 手機充電器中的鍵盤記錄器)提出了一種名為「NAT 滑流」的新攻擊技術。

此攻擊允許攻擊者在瀏覽器中開啟網頁後,從其伺服器與使用者係統上位於位址轉換器後面的任何 UDP 或 TCP 連接埠建立連線。該攻擊工具包已發佈在 GitHub 上。

該方法依賴於欺騙位址轉換器或防火牆中的 ALG(應用層網關)連接追蹤機制,該機制用於組織使用多個網路連接埠(一個用於數據,一個用於控制)的協定的 NAT 轉發,例如 SIP、H323、IRC DCC 和 FTP。

此攻擊適用於使用內部網路範圍內的內部位址(192.168.xx、10.xxx)連接到網路的用戶,並且允許將任何資料傳送至任何連接埠(無需 HTTP 標頭)。

要發動攻擊,受害者只需執行攻擊者準備的 JavaScript 程式碼即可,例如,打開攻擊者網站上的頁面或在合法網站上查看惡意廣告。

在第一階段,攻擊者獲取有關使用者內部位址的信息,這可以透過 WebRTC 確定,或者,如果 WebRTC 被停用,則可以透過暴力破解攻擊,測量請求隱藏影像時的回應時間來確定(對於現有主機,由於在返回 TCP RST 回應之前需要等待時間,因此請求影像的嘗試比請求不存在的主機更快)。

在第二階段,受害者瀏覽器中執行的JavaScript 程式碼會向攻擊者的伺服器產生一個大的 HTTP POST 請求(無法在一個封包中容納),該要求使用非標準的網路連接埠號碼來啟動對受害者 TCP 協定堆疊中 TCP 分片參數和 MTU 大小的調整。

作為回應,攻擊者的伺服器會傳回一個帶有 MSS(最大段大小)選項的 TCP 封包,該選項決定了接收封包的最大大小。對於 UDP,操作類似,但它依賴於發送較大的 WebRTC TURN 請求來觸發 IP 層分片。

«通過利用時間攻擊或WebRTC,碎片發現來鏈接內部IP提取,NAT滑流結合了內置在NAT,路由器和防火牆中的應用層網關(ALG)連接跟踪機制來利用用戶的瀏覽器Kamkar在分析中說:“自動遠程IP和MTU,TCP數據包大小按摩,濫用TURN身份驗證,精確控制數據包限制以及由於瀏覽器濫用而造成的協議混亂”。

其主要想法是,在了解分片參數後,可以發送一個較大的HTTP請求,其尾部會落入第二個封包中。同時,第二個封包的尾部會被篩選出來,排除HTTP頭部,並截斷為完全對應於另一種支援NAT穿越協定的資料。

在第三階段,使用上述操作,JavaScript代碼將生成一個特殊選擇的HTTP請求(或UDP的TURN)並將其發送到攻擊者服務器的TCP端口5060,在將其分段後,它將分成兩個數據包:帶有HTTP標頭和部分數據的數據包,以及帶有受害者內部IP的有效SIP數據包。

用於追蹤網路堆疊中連接的系統會將此資料包視為 SIP 會話的開始,並允許將資料包轉送到攻擊者選擇的任何端口,假設該端口用於資料傳輸。

無論使用哪種瀏覽器,攻擊都可以進行。為了解決這個問題,Mozilla 的開發人員建議阻止向與 SIP 協定相關的網路連接埠 5060 和 5061 發送 HTTP 請求。

Chromium,Blink和WebKit引擎的開發人員還計劃實施類似的保護措施。

資料來源:https://samy.pl


在 Google 中將其新增為首選來源