從Windows 10 1709秋季創意者更新開始,微軟為Windows 10安全中心添加了一個名為“受控制的文件夾訪問”的全新勒索軟件防護功能,可用于防止未知程序修改受保護文件夾中的文件。
在上周舉行的DerbyCon安全大會上,安全專家展示了一種利用DLL注入方式來繞過該勒索軟件保護功能的方式。

使用DLL注入繞過“受控制的文件夾訪問”功能
“受控制的文件夾訪問”可協助用戶保護文件夾以及內部文件,簡而言之就是只允許列入白名單的應用程序訪問和修改該文件夾,白名單涵蓋用戶指定和Microsoft默認列入白名單的應用程序。
這個方式的突破口是已經列入了上述白名單的explorer.exe進程,安全展架可在系統啟動時將惡意DLL注入資源管理器,從而繞過保護。
主要步驟為:
當explorer.exe啟動時,它將加載在下面顯示的HKEY_CLASSES_ROOT \ * \ shellex \ ContextMenuHandlers注冊表項下找到的DLL。

HKEY_CLASSES_ROOT樹是HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER中注冊表信息的合集。執行合并時,Windows會以HKCU樹中的數據為優先級。
這就是說如果HKCU中存在鍵值,它的優先級將比HKLM中相同鍵值的高,并且是合并到HKEY_CLASSES_ROOT樹中的數據。這么說可能有點繞,可以閱讀相關文檔以獲取更多信息。
默認情況下,當資源管理器啟動時,它會從HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ CLSID \ {90AA3A4E-1CBA-4233-B8BB-535773D48449} \ InProcServer32鍵值加載Shell.dll。要將惡意DLL加載到explorer.exe中,只需創建一個HKCU \ Software \ Classes \ CLSID \ {90AA3A4E-1CBA-4233-B8BB-535773D48449} \ InProcServer32鍵值并將其默認值設為惡意DLL即可。
當Explorer.exe被結束和重啟時,explorer.exe會啟動惡意DLL而不是正常的Shell.dll。下圖是注入explorer.exe的DLL示例。

這樣就可以繞過了“受控制的文件夾訪問”功能,而且Windows Defender也沒有檢測到該惡意行為。實際上,Avast、ESET、Malwarebytes Premium和McAfee等老牌安全軟件的勒索軟件保護功能都沒有報警。
微軟的回應
安全專家已向微軟安全響應中心披露了這個漏洞,并提供了可用于繞過“受控制的文件夾訪問”功能的概念驗證。

不過,微軟并不認為這是一個符合賞金計劃和需要修復的漏洞。微軟的回信中是這么說的:“如果我理解正確的話,這種攻擊方式的前提是攻擊者已經登錄了目標賬戶,接下來是通過修改注冊表來植入DLL。由于該賬戶只能寫入HKCU,因此無法影響其他用戶。由于登錄賬戶之后就已經獲得了相應權限,也不存在提權漏洞等問題。因此該問題關閉且不再跟蹤。”

但是安全專家認為勒索軟件不需要提權來加密受害者的計算機,惡意軟件開發人員可以使用其他漏洞或方法掌控卷影復制服務(VSS)。這樣以來可以在沒有管理員權限的情況下安裝惡意軟件,并且仍然可以輕松繞過“受控制的文件夾訪問”功能。
|