.hd-box .hd-fr

微软宣布 VBScript 弃用计划,企业需提前部署检测策略

2025-05-18 16:16IT之家(问舟)0评

IT之家 5 月 18 日消息,当地时间 5 月 17 日,微软发布技术公告,旨在帮助企业在 VBScript 全面弃用之前检测并迁移现有环境中的 VBScript 依赖。

IT之家注:VBScript 将在未来的 Windows 版本中默认禁用,目前微软已启动分阶段弃用计划并在 Win11 24H2 中将 VBScript 转为 FOD 可选功能。

策略一:使用 Sysmon 监控 VBScript 使用情况

Sysmon(System Monitor)是 Sysinternals 提供的监控工具,支持对 .dll 加载行为进行细致跟踪。借助其 Event ID 7(Image Load)功能,管理员可以捕捉vbscript.dll何时、由哪个进程被加载。

配置 Sysmon 以追踪vbscript.dll,配置示例如下:

<Sysmon schemaversion="4.50"><EventFiltering>   <ImageLoad onmatch="include">     <ImageLoaded condition="contains">vbscript.dll</ImageLoaded>   </ImageLoad></EventFiltering></Sysmon>

要应用此配置,首先需要编辑您的 Sysmon 配置文件(通常是sysmon-config.xml)。

检查以下集中管理位置中的脚本文件:

通过 PowerScript 脚本扫描用户及脚本相关目录:

示例 PowerShell 脚本:

$pathsToScan = @("C:\Users", "C:\ProgramData", "C:\Scripts")$logPath = "C:\VBSScriptScan\VbsFiles_$(hostname).csv"$results = foreach ($path in $pathsToScan) {   if (Test-Path $path) {       Get-ChildItem -Path $path -Filter *.vbs -Recurse -ErrorAction SilentlyContinue |           Select-Object FullName, LastWriteTime, Length   }}$pathsToScan = @("C:\Users", "C:\ProgramData", "C:\Scripts")$logPath = "C:\VBSScriptScan\VbsFiles_$(hostname).csv"$results = foreach ($path in $pathsToScan) {   if (Test-Path $path) {       Get-ChildItem -Path $path -Filter *.vbs -Recurse -ErrorAction SilentlyContinue |           Select-Object FullName, LastWriteTime, Length   }}

例如以下 PowerShell 脚本可分析 MSI 包中嵌入的 VBScript 自定义动作(Action Type 6、38、50):

Get-ChildItem -Path "C:\MSIRepo" -Recurse -Filter *.msi | ForEach-Object {    $msiPath = $_.FullName    $sql = "SELECT * FROM CustomAction"    $installer = New-Object -ComObject WindowsInstaller.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 -eq 6 -or $actionType -eq 38 -or $actionType -eq 50) {            Write-Output "⚠ VBScript Custom Action: $actionName in $msiPath"        }        $record = $view.Fetch()    }}

后续行动建议

微软强调,当前阶段企业应尽快完成检测与迁移,避免未来操作系统默认禁用导致业务中断。

参考资料:

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

下载IT之家APP,分享赚金币换豪礼
相关文章
大家都在买广告
热门评论
查看更多评论