Как отключить Windows Script Host (WSH) для защиты от вирусов
Архитектура WSH и векторы атак шифровальщиков
Windows Script Host (WSH) — это встроенный в Windows сервер сценариев (исполняемые файлы wscript.exe для GUI и cscript.exe для консоли). Он позволяет запускать скрипты на VBScript (.vbs) и JScript (.js, .jse). В современных корпоративных сетях эти расширения являются одним из главных векторов первичного заражения (Initial Access) программами-вымогателями (Ransomware) и троянами (Emotet, Qakbot). Злоумышленники присылают ZIP-архив с маскированным .js файлом, при клике на который WSH скачивает полезную нагрузку (Payload) с C2-сервера. Бизнес-риски: полная компрометация домена через фишинг рядового сотрудника.
Анализ уязвимых расширений
| Расширение файла | Движок интерпретации | Легитимное применение в ОС |
|---|---|---|
.vbs, .vbe | VBScript (wscript/cscript) | Устаревшие скрипты логона (Logon Scripts), управление принтерами (prnmngr.vbs). |
.js, .jse | JScript (wscript/cscript) | Практически не используются легитимно, 99% — это вредоносная активность. |
.wsf, .wsh | Windows Script File (XML) | Обертка для VBS/JS, также опасны. |
Методы блокировки WSH в корпоративной среде
Сценарий 1: Отключение WSH через реестр (Локально или через GPO)
Самый простой и жесткий метод — сказать подсистеме Windows полностью игнорировать сервер сценариев.
Отключение WSH для текущего пользователя
reg add "HKCU\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0 /f
Отключение WSH на уровне всего компьютера (через GPO Preferences)
reg add "HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0 /fРезультат: При попытке запустить .vbs скрипт пользователь получит окно "Доступ к Windows Script Host отключен на этом компьютере".
Сценарий 2: Блокировка через AppLocker (Рекомендуемый Enterprise-подход)
Отключение WSH целиком может сломать легитимные скрипты системных администраторов (например, скрипты Zabbix-агента). AppLocker позволяет блокировать запуск из профиля пользователя, но разрешать из системных папок.
- Откройте
gpmc.msc-> Конфигурация компьютера -> Политики безопасности -> AppLocker. - Перейдите в раздел Правила сценариев (Script Rules).
- Создайте правила по умолчанию (Default Rules): Разрешить запуск из
%PROGRAMFILES%и%WINDIR%. - Всё, что лежит в
%USERPROFILE%\Downloads(или AppData), будет автоматически заблокировано.
Типовые ошибки администраторов
- Простое удаление ассоциаций файлов: Изменение программы по умолчанию для .vbs на "Блокнот" не защищает от запуска скрипта через командную строку (
cscript.exe malware.vbs). Вредоносные макросы в Office вызывают интерпретатор напрямую. - Забытая служба активации: Активация Windows (KMS) использует скрипт
slmgr.vbs. Если полностью отключить WSH через реестр, скрипт управления лицензиями перестанет работать.
Инженеры ITSTM проведут аудит исполняемых файлов в вашей сети (через Sysmon и Event Forwarding), перепишут legacy-скрипты на защищенный PowerShell (с Constrained Language Mode) и настроят гранулярные политики AppLocker без прерывания бизнес-процессов.
Частые вопросы (FAQ)
Как запустить легитимный скрипт, если WSH отключен через реестр?
Вам придется временно включить WSH (поставить Enabled = 1 в реестре), выполнить скрипт, а затем снова отключить. Для автоматизации лучше использовать AppLocker, разрешая запуск скриптов, подписанных корпоративным сертификатом.
Влияет ли блокировка WSH на работу PowerShell?
Нет. PowerShell использует свой собственный интерпретатор (powershell.exe) и движок (.NET Core/Framework). Для защиты PowerShell нужно использовать Execution Policy и Constrained Language Mode.
Ломает ли это работу макросов в Microsoft Office?
Макросы VBA внутри Word/Excel (winword.exe, excel.exe) не используют wscript.exe, они выполняются внутренним движком Office. Блокировка WSH остановит макрос только на том этапе, когда он попытается запустить внешний VBS-скрипт (Drop & Execute).
Как проверить, что блокировка работает?
Создайте текстовый файл test.vbs с кодом: MsgBox "Test". Двойной клик по нему должен выдать системную ошибку об ограничении доступа, а не диалоговое окно 'Test'.