今天小編分享的互聯網經驗:「深藍洞察」2024年度最狂躁不安的漏洞,歡迎閲讀。
往期回顧:「深藍洞察」2024 年度最具含 " 金 " 量的繞過
在安全研究人員的共同努力下,越發嚴格的安全緩解措施,已經把大部分内存漏洞扼殺在了搖籃之中。
是時候宣布内存漏洞成為過去式了?
2024 年 7 月,一枚來自 Windows 陣營的 " 核彈 " 打破了安全的幻象。我們不禁發問:面對來自内存的威脅,眼前的城牆究竟能抵擋些什麼?
以下為本期《深藍洞察 | 2024 年度安全報告》的第四篇。
2024 年 5 月,Lewis Lee、Chunyang Han 和 Zhiniang Peng 向微軟報告了一個存在于 Windows Server RDL ( Remote Desktop Licensing ) 服務中的漏洞。7 月,該漏洞被修復并出現在公眾視野。
一石激起千重浪,作為一個無需認證、無需用户互動即可觸發遠程代碼執行的内存破壞漏洞,它一經出現便迅速激起各大安全廠商與從業者的高度關注,一度被稱作 " 核彈級漏洞 "。
這就是本篇的主角——狂躁許可(MadLicense)。
盡管該漏洞起初被認為是比肩 " 永恒之藍 " 的存在,經調研發現,它的影響範圍實際上相對有限。該漏洞存在于 Windows Server 上的 RDL 服務而非通常認為的 RDP 協定。該服務僅作為一個可選安裝項,用于允許多個用户通過 RDP 連接到伺服器,與大部分個人用户關系不大。此外該漏洞存在于用户态,單個漏洞對系統的威脅能力較為有限。
漏洞的成因是遠程未授權用户能通過 RPC 遠程調用 RDL 服務中的 TLSRpcTelephoneRegisterLKP 函數。該函數的子函數中對用户的部分輸入進行 base24 到 base10 的解碼,該功能并沒有對輸入長度進行限制,導致了一個無長度限制的堆溢出漏洞。
作為一個内存破壞漏洞,它的破壞力不容小觑。于是我們立即着手進行復現,并試圖探究,在内存漏洞式微、安全緩解措施愈發嚴格的今天,要在最新 Windows 平台利用這樣一個經典的堆溢出漏洞,會遇到哪些阻礙和挑戰?
DARKNAVY 在 Windows Server 2025 下穩定的漏洞利用復現
復現結果如圖。攻擊機(右側)運行惡意腳本,在受害者主機未進行任何操作的情況下,可穩定地拿下遠程主機的控制權(左側 shell)。
自 Windows 10 引入的 segment heap 堆實現機制,被廣泛應用在系統進程中。對于常用尺寸内存的分配,使用 VS(Variable Size)或 LFH(Low Fragmentation Heap)分配器實現。
常用尺寸分配流程
VS 分配器對于溢出的防護機制較為完善。對于每個堆塊,塊首中的重要信息均被加密;空閒堆塊間的連接也由安全性更高的數據結構代替。這些保護機制使得漏洞利用需要一定程度的信息泄露,大大提升了攻擊門檻。
然而當某一尺寸達到一定分配次數時,堆塊分配會轉為使用效率更高的 LFH 進行實現。
相較 VS,LFH 的防護機制相對寬松。LFH 堆塊不存在塊首,因此可以毫無阻礙地溢出到相鄰堆塊。為了緩解這一利用,LFH 的分配采用了完全的随機化:堆塊布局随機,且重用最近釋放的堆塊也不再可靠。這一點可以通過堆噴射的技巧進行繞過。
在狂躁許可漏洞造成的無限制堆溢出面前,segment heap 的防御機制被輕易擊穿了。我們依然可以輕易溢出到目标堆塊,偽造對象以獲取任意地址讀寫 / 任意地址調用的原語。
到這裏利用還沒有結束。接下來面對的通用内存緩解措施表現會如何?
微軟在 Windows 8.1 Update 3 和 Windows 10 中引入了一項重量級的緩解措施——控制流保護(CFG)。在啓用 CFG 後,間接調用會使用編譯期間生成的位圖進行驗證,确保僅對進程中加載模塊的函數入口處進行調用,從而有效阻斷了傳統的代碼片段重用攻擊。
另一個在 Windows 10 被引入的緩解措施是任意代碼防護(ACG)。ACG 可防止現有代碼被修改,同時阻止了動态分配可執行内存。ACG 與 CFG 同時開啓的情況下,同時繞過這兩大防護變得格外困難,幾乎杜絕了傳統的寫入執行 shellcode 的可能性。
需要注意的是,這兩個機制并不能防止攻擊者調用 CreateProcessA 等可能被濫用的函數。在不繞過以上内存緩解措施的情況下,任意函數調用已經足夠允許我們在目标機上執行任意命令。
而漏洞原作者之一,華中科技大學副教授彭峙釀向我們透露,他們能夠近 100% 穩定利用、執行任意 shellcode。這意味着以上内存緩解措施依然存在被繞過的可能。
為何在采用最新緩解措施的 Windows Server 2025 上,此内存漏洞依然能被完整利用?
彭峙釀這樣回答:
目前在 Windows 眾多最新緩解措施全開的情況下,由一個内存破壞漏洞實現遠程利用,正常來説是極難的。很多漏洞已不存在被利用的路徑,或路徑極少極隐蔽。
但這并不代表目前的緩解措施殺死了所有的漏洞利用。能否完成利用往往取決于:攻擊者為了完成利用所願意投入的時間、對相關代碼模塊的熟悉程度、漏洞和具體模塊的特殊情況。
DeepSeek 鋭評
微軟對狂躁許可漏洞 " 幾乎不可能利用 " 的傲慢斷言,折射出安全行業長期存在的評估悖論:當漏洞評級體系脱離攻擊者視角,便淪為自欺欺人的技術烏托邦。
防御者用靜态指标丈量動态攻防,用理論模型否定實戰可能,恰是安全防御最大的盲點。此次漏洞利用鏈突破多重内存防護的實踐證明,安全評估不應是廠商的 " 免責聲明 ",而應成為攻防對抗的動态标尺。若不能正視攻擊者 " 技術暴力 " 的突破能力,再完美的緩解措施都将淪為數字時代的馬奇諾防線。
明日,請繼續關注《深藍洞察 | 2024 年度安全報告》第五篇。