Корпоративный сервер обновлений обычно считается частью доверенной инфраструктуры, но SpecterOps показала, как при определённой конфигурации WSUS можно превратить в канал доставки вредоносного кода. Бейвиел Дэвид продемонстрировал атаку (1, 2, 3, 4), где поддельное обновление отправлялось выбранному Windows-компьютеру через штатный механизм WSUS внутри сети.
Атака работает, если WSUS хранит базу SUSDB на отдельном сервере Microsoft SQL и для аутентификации не требуется Extended Protection for Authentication. Специалист принудил учётную запись компьютера WSUS пройти NTLM-аутентификацию через подконтрольную систему, перенаправил её на SQL-сервер и получил сеанс от имени самого WSUS. Учётной записи хватало прав для работы с SUSDB.
Доступ к базе оказался ограниченным, но роли webService разрешалось запускать хранимые процедуры. Через них удалось создать собственное обновление, задать адрес файла, сформировать отдельную группу и добавить туда конкретный компьютер. Такой подход позволяет направить поддельное обновление не всей сети, а выбранной системе, после чего одобрить его установку.
Главным препятствием стала проверка цифровой подписи. WSUS отказался принимать неподписанный исполняемый файл, однако разбор Microsoft.UpdateServices.ContentSyncAgent.dll показал исключение в логике проверки. Для файлов с расширением .txt или .esd проверка сертификата пропускается. В лаборатории вредоносную нагрузку переименовали в Ghost.txt, и WSUS принял файл.
После ручного запуска обновления тестовая рабочая станция установила нагрузку и успешно связалась с сервером управления. При включённой политике автоматической загрузки и установки обновлений тот же сценарий может пройти без действий пользователя. Для автоматизации цепочки SpecterOps выпустила NotWSUSpicious, который формирует необходимые SQL-запросы и позволяет воспроизвести атаку на тестовой инфраструктуре.
SpecterOps не описывает реальные атаки с применением метода, речь идёт о лабораторной демонстрации. Для снижения риска компания советует требовать Extended Protection for Authentication на сервере базы WSUS, ограничить сетевой доступ к нему и отслеживать вызовы процедур создания групп и развёртывания обновлений, особенно если файл заканчивается на .txt или .esd.
