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

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

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

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

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

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