Простое подключение периферийного устройства может инициировать опасный процесс, при котором операционная система самостоятельно загружает и исполняет вредоносные компоненты с максимальными системными привилегиями. На конференции DEF CON 34 безопасники Алехандро Эрнандо и Борха Мартинес представили серию атак Plug and Pwn, эксплуатирующих функцию автоматического распознавания и инсталляции периферии в Windows. Примечательно, что для реализации некоторых вариантов вообще не нужно физически присоединять какое-либо оборудование.

Уязвимость кроется в технологии Plug and Play. При подсоединении нового USB-девайса операционная система идентифицирует его параметры, отыскивает соответствующие драйверы и при надобности загружает их посредством встроенного центра обновления. Процесс установки стартует с правами SYSTEM, следовательно, любой дополнительный код производителя в таком пакете может быть выполнен с повышенными привилегиями без подтверждения пользователем.

Исследователи установили, что реальное оборудование для запуска этого механизма необязательно. Они применили утилиту FaceDancer для имитации USB-девайсов и подставляли системе идентификаторы нужных устройств. ОС воспринимала поддельное оборудование как подлинное, автоматически отыскивала соответствующее ПО и начинала его установку. На полностью актуализированной Windows 11 тестовая атака длилась около пяти минут и завершилась запуском кода с привилегиями SYSTEM без аутентификации пользователя.

В одной из продемонстрированных цепочек атакующие объединили недостатки ПО компаний Sierra Wireless и Sony FeliCa. Компонент Sierra позволял переопределить системный DNS-сервер, после чего инсталлятор Sony загружал конфиг через открытый HTTP-канал. Манипуляции с адресацией позволили поместить контролируемую библиотеку DLL в системную папку System32, а повторная имитация Sierra-девайса принудила систему загрузить файл с максимальными правами. По отдельности обнаруженные проблемы наносили ущерб в ограниченном объеме, но в комбинации привели к полной компрометации системы.

Опасность Plug and Pwn не ограничивается локальным доступом. Специалисты также разработали модификацию NoPlug and Pwn, которая использует USB-редирекцию через удалённый рабочий стол. Клиент передаёт серверу данные о подсоединённом оборудовании, затем сервер синтезирует такое устройство. Эксперты научились самостоятельно генерировать эти данные, поэтому физическое присутствие USB-девайса на клиентской стороне становится излишним. Эта техника эффективна в корпоративных сетях, где IT-администраторы активировали соответствующее переадресование.

Для демонстрации удалённой эксплуатации специалисты смоделировали веб-камеру Intel RealSense. Обычный юзер присоединялся к удалённому столу и передавал серверу информацию о вымышленном устройстве. Windows обнаруживала подписанный Microsoft драйвер в Центре обновления и инсталлировала его. Встроенный компонент запускал приложение из пользовательской директории с системными правами, а особенности алгоритма поиска библиотек позволяли внедрить собственную DLL и получить полный контроль.

Авторы исследования проверили дополнительные программные пакеты, инсталлируемые системой в автоматическом режиме. В ПО Wacom была выявлена скрытая функция, запускающая консоль с правами SYSTEM при установке определённого параметра в системном реестре. Рядовой пользователь не имел возможности самостоятельно внести такие изменения, однако устаревший компонент Atheros, связанный с баг-репортом 2019 года, предоставлял доступ к защищённым разделам реестра. Этот пакет продолжал инсталлироваться через механизм Plug and Play.

В финальной демонстрации исследователи объединили Wacom и Atheros с встроенным средством мониторинга печати. Atheros модифицировал защищённые реестровые параметры, служба печати при следующей загрузке подгружала подготовленную библиотеку с максимальными правами, затем вредоносный код активировал функцию Wacom и открывал интерактивную системную оболочку. Для атакующего не требовались ни административные привилегии, ни физическое оборудование производителей, ни собственные уязвимые драйверы.

Авторы открыли исходный код своих инструментов и предоставили демонстрационные материалы для тестирования обнаруженных механизмов.