Новая техника предполагает подмену пути к исполняемому файлу в доверенной папке.
Специалист компании Tenable Дэвид Уэллс (David Wells) описал новую технику обхода защитного механизма ОС Windows 10, известного как User Account Control (UAC, контроль учетных записей), предполагающую подмену пути к исполняемому файлу в доверенной папке.
Несмотря на то, что Microsoft не рассматривает контроль учетных записей как меру безопасности, многие пользователи считают функцию полезной и не отключают ее. При запуске приложений, для которых требуются повышенные привилегии, UAC отображает соответствующий запрос и пользователю, являющемуся членом группы «Администраторы», потребуется подтвердить действие. Для различных доверенных файлов действует принцип автоматического повышения привилегий, в таком случае диалоговое окно на повышение прав не выводится. Вместе с тем Windows проводит дополнительные проверки безопасности для того, чтобы удостовериться, что автоматическое повышение привилегий действует только для избранной группы доверенных файлов.
Однако Уэллс обнаружил новый способ, позволяющий обойти функционал и запустить недоверенный исполняемый файл без всяких уведомлений от UAC. Для автоматического повышения прав файл должен быть сконфигурирован определенным образом, подписан надлежащей цифровой подписью и запускаться из доверенной папки, такой как C:\Windows\System32. Как выяснил исследователь, в ходе одной из проверок программа запуска Appinfo.dll (AIS) вызывает API RtlPrefixUnicodeString и подтверждает, что путь к исполняемому файлу начинается с C:\Windows\System32\.
Уэллсу удалось создать папку с именем C:\Windows \ (после Windows следует пробел) с помощью API CreateDirectory и добавления \\?\ к имени директории (для обхода фильтров в Windows). Затем в новой папке он создал папку System32. Далее исследователь скопировал подписанный исполняемый файл winSAT.exe из настоящей папки C:\Windows\System32 в созданную им папку.
При исполнении C:\Windows \System32\winSAT.exe Appinfo.dll передает файл API GetLongPathNameW, который преобразует его в вид C:\Windows\System32\winSAT.exe, удаляя лишний пробел. Система проверяет конвертированную строку, а затем проводит остальные проверки (включая конечный запрос на повышение прав) оригинального пути исполняемого файла (с лишним пробелом).
С помощью данного метода эксперту удалось повысить привилегии фальшивой библиотеки WINMM.dll (импортированной winSAT.exe), добавленной в поддельную папку C:\Windows\System32\. PoC-код новой техники обхода UAC опубликован на GitHub. Более подробную информацию о новом методе можно найти здесь .
От классики до авангарда — наука во всех жанрах