Исследователи безопасности Алехандро Эрнандо и Борха Мартинес нашли способ превратить штатную установку устройств Windows Plug and Play, или PnP, в выполнение кода с правами SYSTEM. Исследование под названием «Подключи и взломай: превращение автоустановки Windows PnP в оружие» подготовлено для DEF CON 34. Цепочка сработала на полностью обновлённом компьютере с Windows 11: система сама получила подписанное ПО производителей для эмулируемых USB-устройств, после чего исследователи использовали слабости его привилегированных компонентов.

Механизм начинается с обычной процедуры, описанной в документации Microsoft по драйверам. Подключённое устройство сообщает Windows свои Hardware ID и Compatible ID. По этим идентификаторам операционная система ищет подходящий пакет драйверов, а затем может установить его вместе с программами производителя с повышенными привилегиями. Цифровая подпись подтверждает происхождение и целостность пакета, но не гарантирует, что установщик, соустановщик или служба внутри него не содержат уязвимостей.
Эрнандо и Мартинес разработали инструменты для эмуляции произвольных USB-устройств. В физическом варианте атакующему требуется возможность подключить к целевому компьютеру устройство либо иным способом представить системе синтетическое USB-оборудование. Само присутствие уязвимых пакетов ещё не запускает атаку. Но при выполнении этого условия даже непривилегированный пользователь, по данным исследователей, способен довести автоматическую установку PnP до исполнения собственного кода от имени SYSTEM.
Первым звеном служит эмулируемое устройство Sierra Wireless. Windows реагирует на него установкой SwiService.exe, работающей как системная служба с правами SYSTEM. Исследователи сообщают, что служба предоставляет примитив SetDNS, позволяющий изменить DNS-настройки и перенаправить DNS-трафик. Взлом на этом не заканчивается: полученная возможность нужна для управления сетевыми запросами следующего устанавливаемого компонента.
После изменения DNS исследователи эмулируют считыватель Sony FeliCa. Связанный с ним соустановщик загружает конфигурационные файлы по незашифрованному HTTP, а локальные имена файлов формирует из путей запрошенных URL. По утверждению авторов исследования, обработка этих путей допускает path traversal, то есть выход за пределы каталога, предназначенного для сохранения загруженных файлов. Благодаря этому специально подготовленную DLL удаётся поместить в каталог System32.
Затем устройство Sierra Wireless подключается повторно. Согласно описанной исследователями механике, компонент Sierra загружает заранее помещённую в System32 вредоносную DLL. Процесс уже обладает повышенными правами, поэтому код из библиотеки выполняется от имени SYSTEM. Успешная демонстрация относится к полностью обновлённой Windows 11; установленного диапазона затронутых версий нет, а переносить результат на все выпуски Windows без дополнительных испытаний нельзя.
Физическое подключение не всегда обязательно. Сходный путь PnP можно вызвать через Remote Desktop Protocol, RDP, передавая синтетический USB-трафик в удалённый сеанс. Для этого на сервере должны быть разрешены поддерживаемое перенаправление Plug and Play либо низкоуровневое перенаправление USB. Microsoft указывает, что Remote Desktop Services по умолчанию запрещает и PnP-перенаправление, и RemoteFX USB redirection. В руководстве Microsoft также сказано, что перед низкоуровневой передачей USB требуется включить перенаправление Plug and Play.
Документация Microsoft уточняет ещё одну существенную деталь: перенаправленные низкоуровневые USB-периферийные устройства проходят ту же процедуру установки драйверов, что и оборудование, физически подключённое к компьютеру. В удалённой цепочке синтетический USB-трафик приводит к установке ПО RealSense. По результатам Эрнандо и Мартинеса, связанная с Intel установка допускает перехват порядка поиска библиотеки CRYPTBASE.dll. Пользователь может записывать файлы в соответствующий каталог, поэтому аутентифицированная учётная запись с низкими привилегиями помещает туда вредоносную DLL, которую затем загружает привилегированный процесс. Итогом снова становится выполнение кода с правами SYSTEM.
Удалённый сценарий зависит от конфигурации и не описывает стандартную установку Windows с настройками по умолчанию. Если USB-устройства и PnP не требуется перенаправлять в сеансы Remote Desktop, администраторам достаточно не включать эти функции. На RDP-серверах стоит отдельно проверить старые политики RemoteFX и действующие правила перенаправления устройств: одна разрешающая настройка расширяет поверхность атаки до сторонних пакетов, которые Windows может автоматически подобрать по заявленным идентификаторам синтетического устройства.
Дополнительный барьер дают политики Microsoft для установки устройств. Они разрешают или запрещают оборудование по Hardware ID, Compatible ID, Device-instance ID и Device setup class; на сервере Remote Desktop такие ограничения могут распространяться и на перенаправленные устройства. При настройке списков разрешений следует учитывать не одно торговое название устройства, а все сообщаемые им идентификаторы и класс установки. Заявленные детали, касающиеся SwiService.exe, примитива SetDNS и загрузки DLL у Sierra Wireless, HTTP-загрузки и path traversal у Sony FeliCa, а также перехвата поиска CRYPTBASE.dll в Intel RealSense, остаются выводами исследователей, пока их независимо не подтвердят документы соответствующих производителей.

Изображение носит иллюстративный характер
Механизм начинается с обычной процедуры, описанной в документации Microsoft по драйверам. Подключённое устройство сообщает Windows свои Hardware ID и Compatible ID. По этим идентификаторам операционная система ищет подходящий пакет драйверов, а затем может установить его вместе с программами производителя с повышенными привилегиями. Цифровая подпись подтверждает происхождение и целостность пакета, но не гарантирует, что установщик, соустановщик или служба внутри него не содержат уязвимостей.
Эрнандо и Мартинес разработали инструменты для эмуляции произвольных USB-устройств. В физическом варианте атакующему требуется возможность подключить к целевому компьютеру устройство либо иным способом представить системе синтетическое USB-оборудование. Само присутствие уязвимых пакетов ещё не запускает атаку. Но при выполнении этого условия даже непривилегированный пользователь, по данным исследователей, способен довести автоматическую установку PnP до исполнения собственного кода от имени SYSTEM.
Первым звеном служит эмулируемое устройство Sierra Wireless. Windows реагирует на него установкой SwiService.exe, работающей как системная служба с правами SYSTEM. Исследователи сообщают, что служба предоставляет примитив SetDNS, позволяющий изменить DNS-настройки и перенаправить DNS-трафик. Взлом на этом не заканчивается: полученная возможность нужна для управления сетевыми запросами следующего устанавливаемого компонента.
После изменения DNS исследователи эмулируют считыватель Sony FeliCa. Связанный с ним соустановщик загружает конфигурационные файлы по незашифрованному HTTP, а локальные имена файлов формирует из путей запрошенных URL. По утверждению авторов исследования, обработка этих путей допускает path traversal, то есть выход за пределы каталога, предназначенного для сохранения загруженных файлов. Благодаря этому специально подготовленную DLL удаётся поместить в каталог System32.
Затем устройство Sierra Wireless подключается повторно. Согласно описанной исследователями механике, компонент Sierra загружает заранее помещённую в System32 вредоносную DLL. Процесс уже обладает повышенными правами, поэтому код из библиотеки выполняется от имени SYSTEM. Успешная демонстрация относится к полностью обновлённой Windows 11; установленного диапазона затронутых версий нет, а переносить результат на все выпуски Windows без дополнительных испытаний нельзя.
Физическое подключение не всегда обязательно. Сходный путь PnP можно вызвать через Remote Desktop Protocol, RDP, передавая синтетический USB-трафик в удалённый сеанс. Для этого на сервере должны быть разрешены поддерживаемое перенаправление Plug and Play либо низкоуровневое перенаправление USB. Microsoft указывает, что Remote Desktop Services по умолчанию запрещает и PnP-перенаправление, и RemoteFX USB redirection. В руководстве Microsoft также сказано, что перед низкоуровневой передачей USB требуется включить перенаправление Plug and Play.
Документация Microsoft уточняет ещё одну существенную деталь: перенаправленные низкоуровневые USB-периферийные устройства проходят ту же процедуру установки драйверов, что и оборудование, физически подключённое к компьютеру. В удалённой цепочке синтетический USB-трафик приводит к установке ПО RealSense. По результатам Эрнандо и Мартинеса, связанная с Intel установка допускает перехват порядка поиска библиотеки CRYPTBASE.dll. Пользователь может записывать файлы в соответствующий каталог, поэтому аутентифицированная учётная запись с низкими привилегиями помещает туда вредоносную DLL, которую затем загружает привилегированный процесс. Итогом снова становится выполнение кода с правами SYSTEM.
Удалённый сценарий зависит от конфигурации и не описывает стандартную установку Windows с настройками по умолчанию. Если USB-устройства и PnP не требуется перенаправлять в сеансы Remote Desktop, администраторам достаточно не включать эти функции. На RDP-серверах стоит отдельно проверить старые политики RemoteFX и действующие правила перенаправления устройств: одна разрешающая настройка расширяет поверхность атаки до сторонних пакетов, которые Windows может автоматически подобрать по заявленным идентификаторам синтетического устройства.
Дополнительный барьер дают политики Microsoft для установки устройств. Они разрешают или запрещают оборудование по Hardware ID, Compatible ID, Device-instance ID и Device setup class; на сервере Remote Desktop такие ограничения могут распространяться и на перенаправленные устройства. При настройке списков разрешений следует учитывать не одно торговое название устройства, а все сообщаемые им идентификаторы и класс установки. Заявленные детали, касающиеся SwiService.exe, примитива SetDNS и загрузки DLL у Sierra Wireless, HTTP-загрузки и path traversal у Sony FeliCa, а также перехвата поиска CRYPTBASE.dll в Intel RealSense, остаются выводами исследователей, пока их независимо не подтвердят документы соответствующих производителей.