在Windows 10中,微軟新增了一項(xiàng)名為“受控文件夾訪問”的功能,該功能可用于防止未知程序修改受保護(hù)文件夾中的文件。
而在上周舉行的DerbyCon安全會(huì)議上,一位安全研究人員則向大家展示了一種利用DLL注入來繞過受控文件夾訪問保護(hù)的方法。
使用DLL注入繞過受控文件夾訪問保護(hù)
受控文件夾訪問功能啟用后,將會(huì)監(jiān)視應(yīng)用程序?qū)κ鼙Wo(hù)的某些文件夾中的文件所做的任何更改行為,并且只允許被列入白名單的應(yīng)用程序修改這些文件。白名單應(yīng)用程序可以是你指定的應(yīng)用程序,也可以是微軟默認(rèn)列入白名單的應(yīng)用程序。
在得知explorer.exe默認(rèn)為受控文件夾訪問白名單程序后,富士通系統(tǒng)集成實(shí)驗(yàn)室的安全研究員Soya Aoyama想出了一種,在啟動(dòng)時(shí)將惡意DLL注入資源管理器的方法。由于資源管理器已列入白名單,因此在注入DLL時(shí)它將啟動(dòng)并繞過勒索軟件保護(hù)功能。
當(dāng)explorer.exe啟動(dòng)時(shí),它將加載HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers注冊表項(xiàng)下找到的DLL。‘
HKEY_CLASSES_ROOT樹是HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER中的注冊表信息的合集。執(zhí)行合并時(shí),Windows會(huì)以HKCU樹中的數(shù)據(jù)為優(yōu)先級。
這意味著如果HKCU中存在密鑰,它將優(yōu)先于HKLM中的相同密鑰,并且合并到HKEY_CLASSES_ROOT樹中的數(shù)據(jù)。如果這里你感到有點(diǎn)疑惑,那么你可以閱讀本文檔以獲取更多信息。
默認(rèn)情況下,當(dāng)資源管理器啟動(dòng)時(shí)它會(huì)從HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{90AA3A4E-1CBA-4233-B8BB-535773D48449}\InProcServer32鍵加載Shell32.dll。要將惡意DLL加載到explorer.exe中,Aoyama只需創(chuàng)建一個(gè)HKCU\Software\Classes\CLSID\{90AA3A4E-1CBA-4233-B8BB-535773D48449}\InProcServer32 鍵,并將其默認(rèn)值設(shè)置為惡意DLL即可。
現(xiàn)在,當(dāng)Explorer.exe進(jìn)程被殺死并重啟時(shí),惡意DLL將被執(zhí)行而不是Shell32.dll。以下是DLL注入到explorer.exe中的示例:
這不僅繞過了受控文件夾訪問保護(hù),而且連Windows Defender也沒有檢測到該惡意行為。根據(jù)Aoyama的測試結(jié)果,不僅僅是Windows Defender,包括一些主流的防護(hù)軟件Avast,ESET,Malwarebytes Premium和McAfee都沒有檢測到該惡意行為。
有關(guān)更多詳細(xì)信息以及Aoyama在DerbyCon上的演講和演示內(nèi)容,請觀看下面的視頻:
MSRC回應(yīng)
Aoyama表示在他發(fā)表該演講之前,已向微軟安全應(yīng)急響應(yīng)中心負(fù)責(zé)任的披露了該漏洞,并包含了可用于繞過受控文件夾訪問保護(hù)的POC。
不過,遺憾的是微軟方面并不認(rèn)為這是一個(gè)符合漏洞獎(jiǎng)賞計(jì)劃或需要補(bǔ)丁的漏洞。
微軟在對Aoyama的回復(fù)中表示:”如果我沒理解錯(cuò)的話,執(zhí)行該攻擊的前提是攻擊者已經(jīng)登錄到了目標(biāo)賬戶,然后通過注冊表植入惡意DLL。由于你只能寫入HKCU,因此無法影響其他用戶,最重要的是執(zhí)行該攻擊的前提是已經(jīng)獲取目標(biāo)系統(tǒng)的相應(yīng)賬戶權(quán)限。另外,似乎也沒有權(quán)限提升方面的漏洞,因此我們并不認(rèn)為這是一個(gè)實(shí)際存在的漏洞。”
但實(shí)際情況是,勒索軟件并不需要提權(quán)來加密受害者的計(jì)算機(jī)。惡意軟件開發(fā)人員可以使用其他漏洞或方法來執(zhí)行vssadmin。這樣做可以在沒有管理權(quán)限的情況下安裝惡意軟件,并且仍可繞過受控文件夾訪問保護(hù)功能。
|