JetCore Logo
⚠ 可繞過 AppLocker 的元件

補上這些破口,
AppLocker 才算完整。

AppLocker 是強大的應用程式控管機制。要發揮它完整的防護力,只需再處理一批 Windows 內建、被預設信任、卻可被用來繞過的元件——這些破口都是已知且可控的。以下整理 Microsoft 官方建議封鎖的清單,可直接搜尋查詢,補上即可。

JetCore 共享防繞過封鎖清單(擋下可被濫用的系統元件),協助政府機關、金融企業與所有資訊同業一起提升臺灣資安韌性。

防繞過封鎖清單

可繞過 AppLocker 的元件清單

網路上關於「AppLocker 繞過」「AppLocker 破解」的手法,多半是利用這些 Windows 內建、被預設信任、卻可執行未經核准內容的元件。以下整理 Microsoft App Control(WDAC/AppLocker)官方建議封鎖的清單,把這些破口補起來,就能大幅降低被繞過的風險。可輸入元件名稱或關鍵字查詢,或依分類篩選。

元件 分類 為什麼建議封鎖 來源
cscript.exe指令碼引擎Windows Script Host,可執行 VBScript/JScript,被用來繞過允許原則。Microsoft
wscript.exe指令碼引擎Windows Script Host 的視窗版本,同樣可執行指令碼繞過控制。Microsoft
mshta.exe指令碼引擎執行 HTA 應用程式的舊元件,常被拿來執行未經核准的內容。Microsoft
csi.exe指令碼引擎C# 互動式編譯器,可直接執行程式碼繞過允許原則。Microsoft
rcsi.exe指令碼引擎C# 指令碼執行工具,可執行未簽署的程式碼。Microsoft
fsi.exe指令碼引擎F# 互動式直譯器,可執行程式碼繞過控制。Microsoft
fsiAnyCpu.exe指令碼引擎F# 互動式直譯器(AnyCPU 版本),同上。Microsoft
powershellcustomhost.exe指令碼引擎自訂 PowerShell 主機,可載入並執行指令碼繞過控制。Microsoft
runscripthelper.exe指令碼引擎遙測用的指令碼執行輔助程式,可被濫用執行內容。Microsoft
system.management.automation.dll指令碼引擎PowerShell 核心模組,特定舊版本可繞過控制,Microsoft 以雜湊撤銷。Microsoft
msbuild.exe開發與建置.NET 建置工具,可透過專案檔執行程式碼;僅開發情境才需允許。Microsoft
msbuild.dll開發與建置MSBuild 的 DLL 形式,同樣可被用來繞過允許原則。Microsoft
Microsoft.Build.dll開發與建置MSBuild 引擎組件,可載入執行建置邏輯繞過控制。Microsoft
Microsoft.Workflow.Compiler.exe開發與建置工作流程編譯器,可執行 XOML 內含的程式碼。Microsoft
wfc.exe開發與建置Workflow 命令列編譯器,可被用來執行程式碼。Microsoft
aspnet_compiler.exe開發與建置ASP.NET 預先編譯工具,可被用來執行未經核准的程式碼。Microsoft
dnx.exe開發與建置.NET Execution Environment,可執行程式碼繞過控制。Microsoft
dotnet.exe開發與建置.NET CLI,可執行受管理的組件繞過允許原則。Microsoft
texttransform.exe開發與建置T4 文字範本轉換工具,可執行範本內含的程式碼。Microsoft
addinprocess.exe開發與建置.NET 增益集主機,可被用來載入並執行程式碼。Microsoft
addinprocess32.exe開發與建置.NET 增益集主機(32 位元),同上。Microsoft
addinutil.exe開發與建置.NET 增益集工具,可被濫用執行內容。Microsoft
infdefaultinstall.exe開發與建置處理 INF 安裝檔的工具,可被用來執行未經核准的動作。Microsoft
visualuiaverifynative.exe開發與建置UI 自動化驗證工具,可被用來繞過允許原則。Microsoft
windbg.exe除錯工具Windows 偵錯工具,可載入並執行任意內容,一般端點不需要。Microsoft
cdb.exe除錯工具主控台偵錯工具,可執行程式碼繞過控制。Microsoft
kd.exe除錯工具核心偵錯工具,可被用來繞過允許原則。Microsoft
ntsd.exe除錯工具NT 符號偵錯工具,可執行任意內容。Microsoft
ntkd.exe除錯工具核心符號偵錯工具,同上。Microsoft
dbghost.exe除錯工具偵錯主機程式,可被用來繞過控制。Microsoft
dbgsvc.exe除錯工具偵錯服務程式,同上。Microsoft
dbgsrv.exe除錯工具遠端偵錯伺服器,可被用來執行內容。Microsoft
wsl.exeWSL 子系統Windows Subsystem for Linux 啟動程式,可執行 Linux 程式繞過控制。Microsoft
bash.exeWSL 子系統WSL 的 Bash 進入點,可執行未受控管的內容。Microsoft
wslconfig.exeWSL 子系統WSL 設定工具,配合子系統被用來繞過控制。Microsoft
wslhost.exeWSL 子系統WSL 主機程式,同上。Microsoft
lxrun.exeWSL 子系統舊版 WSL 安裝/管理工具,可被用來執行內容。Microsoft
lxssmanager.dllWSL 子系統WSL 管理服務 DLL,配合子系統可繞過控制。Microsoft
wmic.exe系統工具WMI 命令列工具,可被用來執行程式與指令碼繞過控制。Microsoft
kill.exe系統工具程序終止工具,可被用來停止防護相關程序。Microsoft
bginfo.exe系統工具Sysinternals 桌面資訊工具,4.22 前版本存在可繞過控制的弱點。Microsoft
webclnt.dll / davsvc.dll系統工具WebDAV 相關 DLL,可被用來繞過控制;建議停用 WebClient 服務。Microsoft

清單整理自 Microsoft App Control 官方文件。部分元件在特定開發或維運情境仍會用到,實際是否封鎖請依自身環境驗證。完整規則(含多版本 PowerShell 模組的雜湊封鎖規則)請參閱 Microsoft 官方文件 ↗

為什麼要處理這些元件

白名單為主,封鎖清單為輔

白名單 · ALLOW

只允許可信任的程式

只有清單上明確信任的程式能執行,其餘一律阻擋。攻擊者帶進來的新工具因為不在清單上,一開始就無法啟動。

為什麼是主體

白名單只需列出有限的「好程式」,不必窮舉所有壞東西,因此能防到未知的新手法。

封鎖清單 · BLOCK

擋下可被濫用的元件

Windows 預設信任的部分系統元件,本身能被拿來執行其他內容,成為繞過白名單的破口。封鎖清單針對這些元件加上拒絕規則。

為什麼是輔助

封鎖優先於允許,即使元件落在白名單範圍內,只要有對應的封鎖規則就會被擋下。

完整設定 = 白名單(只准這些跑)+ 封鎖清單(挖掉可被濫用的信任元件)。