在Windows中,有一個未修補的安全漏洞,該漏洞可能會允許普通用戶將本地權限提升到系統權限,但此時微軟并未將該漏洞完全解決,這時一個非官方的微補丁出現了。
該漏洞(CVE-2021-34484)最初是在微軟8月份的更新披露中發布的。當時,它被研究人員歸類為一個任意目錄刪除漏洞,該漏洞由于是低優先級的,因為攻擊者需要在本地登錄到目標計算機后才可以利用它,從理論上講,這將允許攻擊者刪除文件和文件夾。
然而,發現該問題的安全研究員很快又發現,它也可以被用于權限升級攻擊,這是兩個完全不同的漏洞。系統級用戶可以訪問網絡中其他部分的資源、數據庫和服務器。
研究人員還看了看微軟的原始補丁,隨后通過對他的漏洞利用代碼進行簡單調整,找到了一個繞過補丁的方法,基本上可以將該漏洞恢復到零日狀態。
0Patch的研究人員在周四的文章中解釋說,該漏洞主要存在于用戶的配置文件服務中,特別是在用戶的原始配置文件因某種原因被損壞或鎖定時,很容易被攻擊者攻擊。將文件夾和文件從用戶的原始配置文件復制到臨時文件夾的過程(作為本地系統執行),可以通過符號鏈接進行攻擊。在系統位置創建攻擊者有寫入權限的文件夾,隨后啟動的系統進程將會從該文件夾加載并執行攻擊者的DLL。
該漏洞是可以被直接攻擊的。攻擊者將創建一個特制的符號鏈接(本質上是一個指向特定文件或文件夾的快捷鏈接),然后將其保存在臨時用戶配置文件的文件夾(C:\Users\TEMP)中。
然后,當用戶配置文件服務從用戶的原始配置文件夾中復制一個文件夾時,符號鏈接將迫使它在攻擊者沒有權限創建文件夾的地方創建一個包含惡意DLL有效載荷的文件夾。
即使微軟認為這個漏洞只是允許刪除一個文件名中含有‘符號鏈接’的文件夾,但還是做了一個概念上的修復,它檢查了C:\Users\TEMP下的目標文件夾是否是一個符號鏈接,如果是,就中止操作。正如研究人員所注意到的,這個修復措施的不合理性在于,符號鏈接不需要在最上層的文件夾中(微軟的修復檢查),而是可以在目標路徑上的任何文件夾中。
微軟發布的補丁通過調用 “GetFinalPathNameByHandle ”函數,將符號鏈接的安全檢查擴展到了整個目標路徑,從而解決了這個問題。
應該注意的是,對漏洞進行一次完整的利用需要攻擊者能夠獲得無限次攻擊嘗試的條件,因為此時系統將會同時執行兩個操作(一個是惡意的,一個是合法的)。此外,盡管研究人員認為不知道別人的密碼也有可能對該漏洞進行利用,但到目前為止,如何獲得目標計算機用戶的憑證仍然是一個難題。
該漏洞會影響到Windows 10(包括32位和64位)v21H1、v20H2、v2004和v1909版本;以及Windows Server 2019 64位。
微軟對此并沒有發布任何官方補丁發布的時間表,也沒有立即回應評論。