5 月 18 日消息,當地時間 5 月 17 日,微軟發布技術公告,旨在幫助企業在 VBScript 全面棄用之前檢測并遷移現有環境中的 VBScript 依賴。
注:VBScript 將在未來的 Windows 版本中默認禁用,目前微軟已啟動分階段棄用計劃并在Win11 24H2中將 VBScript 轉為 FOD 可選功能。
Sysmon(System Monitor)是 Sysinternals 提供的監控工具,支持對.dll加載行為進行細致跟蹤。借助其 Event ID 7(Image Load)功能,管理員可以捕捉 vbscript.dll 何時、由哪個進程被加載。
配置 Sysmon 以追蹤 vbscript.dll,配置示例如下:
<Sysmonschemaversion="4.50"><EventFiltering><ImageLoadonmatch="include"><ImageLoadedcondition="contains">vbscript.dll</ImageLoaded></ImageLoad></EventFiltering></Sysmon>要應用此配置,首先需要編輯您的 Sysmon 配置文件(通常是 sysmon-config.xml)。
使用 Sysinternals Sysmon 實用程序重新加載。
以管理員權限打開命令提示符并運行:Sysmon64.exe -c sysmon-config.xml
通過運行以下命令驗證當前配置:Sysmon64.exe -c
策略二:審查 VBScript 依賴項檢查以下集中管理位置中的腳本文件:
組策略腳本:掃描 //<domain>/SYSVOL 中的.vbs 文件及對 wscript.exe、cscript.exe 的調用。
計劃任務:檢查任務命令行的.vbs 執行痕跡。
Intune 部署的 PowerShell 腳本:排查間接調用 VBScript 的情況。
策略三:全系統掃描.vbs 文件通過 PowerScript 腳本掃描用戶及腳本相關目錄:
C:/Users/
C:/ProgramData/
C:/Program Files/
C:/Scripts/
C:/Windows/(可選,可能包含干擾文件)
示例 PowerShell 腳本:
$pathsToScan=@("C:/Users","C:/ProgramData","C:/Scripts")$logPath="C:/VBSScriptScan/VbsFiles_$(hostname).csv"$results=foreach($pathin$pathsToScan){if(Test-Path$path){Get-ChildItem-Path$path-Filter*.vbs-Recurse-ErrorActionSilentlyContinue|Select-ObjectFullName,LastWriteTime,Length}}$pathsToScan=@("C:/Users","C:/ProgramData","C:/Scripts")$logPath="C:/VBSScriptScan/VbsFiles_$(hostname).csv"$results=foreach($pathin$pathsToScan){if(Test-Path$path){Get-ChildItem-Path$path-Filter*.vbs-Recurse-ErrorActionSilentlyContinue|Select-ObjectFullName,LastWriteTime,Length}}策略四:掃描自定義 MSI 安裝包例如以下 PowerShell 腳本可分析 MSI 包中嵌入的 VBScript 自定義動作(Action Type 6、38、50):
Get-ChildItem-Path"C:/MSIRepo"-Recurse-Filter*.msi|ForEach-Object{$msiPath=$_.FullName$sql="SELECT*FROMCustomAction"$installer=New-Object-ComObjectWindowsInstaller.Installer$database=$installer.GetType().InvokeMember("OpenDatabase","InvokeMethod",$null,$installer,@($msiPath,0))$view=$database.OpenView($sql)$view.Execute()$record=$view.Fetch()while($record-ne$null){$actionName=$record.StringData(1)$actionType=[int]$record.StringData(2)if($actionType-eq6-or$actionType-eq38-or$actionType-eq50){Write-Output"?VBScriptCustomAction:$actionNamein$msiPath"}$record=$view.Fetch()}}后續行動建議
遷移替代方案:參考微軟官方文檔《VBScript 棄用:時間線與后續步驟》選擇現代技術。
主動禁用 VBScript:在確認無依賴后,通過命令禁用:
Dism/Online/Remove-Capability/CapabilityName:VBSCRIPT~~~~影響:禁用后,依賴 VBScript 的進程(如 cscript.exe)將靜默失敗或報錯。
微軟強調,當前階段企業應盡快完成檢測與遷移,避免未來操作系統默認禁用導致業務中斷。
參考資料:
《VBScript deprecation: Detection strategies for Windows - Windows IT Pro Blog》
《VBScript deprecation: Timelines and next steps | Windows IT Pro Blog》
本文鏈接:http://www.tebozhan.com/showinfo-119-151321-0.html微軟宣布 VBScript 棄用計劃,企業需提前部署檢測策略
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com