Эксперт с помощью лишнего пробела обошел защиту Windows

Фото: © Владимир Сараев, Sibnet.ru

Эксперт по информационной безопасности Дэвид Уэллс обнаружил новый, по его мнению, способ обходить функцию контроля учетных записей в Windows — UAC.

Некорректная интерпретация пути к определенным папкам в Windows позволяет обходить защитные механизмы и фильтры наименований, так что у потенциального злоумышленника появляется возможность производить локальный захват DLL.

«Тут, похоже, наблюдается целая комбинация ошибок в различных компонентах Windows, которые могут представлять угрозу, только если знать, как их комбинировать. Хотелось бы надеяться, что Microsoft довольно быстро обратит внимание на этот способ обхода механизмов защиты Windows, поскольку пока сценарий атак с помощью этого метода выглядит вполне реалистичным», — приводит CNews мнение эксперта по информационной безопасности Михаила Зайцева.

ЕЩЕ ПО ТЕМЕ:Как крадут деньги в интернете?

UAC — это компонент операционных систем Microsoft, который запрашивает подтверждение действий, требующих прав администратора, в целях защиты от несанкционированного использования компьютера. Данный компонент ограничивает привилегии той или иной программы в системе на уровне рядового пользователя до тех пор, пока администратор не разрешит повысить данные привилегии.

Некоторые программы имеют возможность автоматически повышать собственные привилегии. Чтобы предотвратить инциденты, Windows осуществляет серию дополнительных проверок безопасности так, предоставляя возможность автоматического повышения привилегий только избранной группе доверенных программ.

Такие программы должны обладать особой конфигурацией и надлежащей цифровой подписью, гарантирующей подлинность. Кроме того, они должны запускаться из доверенной папки, например, C:WindowsSystem32.

Обходной путь

Уэллс обнаружил, что собственная система идентификации приложений Windows — appinfo.dll — использует API RtlPrefixUnicodeString для проверки, начинается ли путь запускаемого приложения с C:WindowsSystem32.

Затем исследователь создал папку с названием C:Windows (с пробелом после Windows). Просто так, средствами проводника Windows этого не сделать — операционная система не любит такие названия, вдобавок оно не пройдет проверку RtlPrefixUnicodeString.

ЕЩЕ ПО ТЕМЕ:Как отключить рекламу на телефоне: настройки и приложения

Однако с помощью API CreateDirectory, с добавлением последовательности символов \? к началу Уэллсу удалось добиться создания папки с некоректным названием, а также организовать внутри нее подкаталог System32 (C:Windows System32).

Уэллс затем скопировал в нее файл winSAT.exe — доверенное приложение, которому разрешено автоматическое повышение привилегий. И тут обнаружилось, что appinfo.dll совершенно спокойно конвертирует путь C:Windows System32winSAT.exe в обычный C:WindowsSystem32winSAT.exe, и UAC никак не реагирует на существование несанкционированного пробела.

В дальнейшем, как выясняется, все дополнительные проверки спокойно «проглатывают» путь с пробелом, и копия winSAT.exe, располагающаяся в некорректной папке получает от appinfo.dll повышенные привилегии.

После этого эксперт поместил в папку C:Windows System32 фальшивый файл WINMM.dll, содержащий вредоносный код; этот файл импортируется winSAT.ee, так что происходит локальный захват DLL — динамически подключаемой библиотеки для, позволяющей многократно использовать различные программные приложения.
Еще по теме
Google анонсировала необычный генератор изображений Whisk
Android 16 улучшит качество фотографий
Мобильное приложение Ростелекома получило масштабное обновление
Появился новый способ установки приложения Сбербанка для iPhone
смотреть все