Эксперт по информационной безопасности компании Tenable Дэвид Уэллс обнаружил способ обойти функцию контроля учетных записей в Windows (UAC).
UAC – это компонент Windows, запрашивающий подтверждение действий, требующих прав администратора, чтобы защитить компьютер от несанкционированного использования. Компонент ограничивает привилегии той или иной программы на уровне рядового пользователя до тех пор, пока администратор не позволит повысить привилегии.
У некоторых программ есть возможность автоматически повысить свои привилегии. Windows, чтобы предотвратить инциденты, проводит серию автоматических проверок, позволяя автоматически повышать привилегии только группе доверенных программ. У таких программ должна быть надлежащая цифровая подпись, гарантирующая подлинность. Помимо этого, они должны запускаться из проверенной папки, например, C:\Windows\System32.
Уэллс выяснил, что собственная система идентификации приложений Windows – appinfo.dll – использует для проверки API RtlPrefixUnicodeString д, начинается ли путь запускаемого приложения с C:\Windows\System32\. Специалист создал папку с названием C:\Windows \ (с пробелом после Windows). Стоит отметить, что просто так добавить пробел не получится – система не допустит такого названия. Кроме того, оно не пройдет проверку tlPrefixUnicodeString. Но при помощи API CreateDirectory, с добавлением последовательности символов \\?\ к началу удалось создать папку с некорректным названием, организовав внутри нее каталог System32 (C:\Windows \System32).
Уэллс скопировал в папку файл winSAT.exe – доверенное приложение, у которого есть разрешение на автоматическое повышение привилегий. После этого обнаружилось, что appinfo.dll конвертирует путь C:\Windows \System32\winSAT.exe в обычный C:\Windows\System32\winSAT.exe, и UAC, не реагируя на существование несанкционированного пробела. Все дополнительные проверки в дальнейшем пропускают путь с пробелом, а копия winSAT.exe, располагающаяся в некорректной папке, получает от appinfo.dll повышенные привилегии.
После этого специалисту удалось поместить в папку C:\Windows \System32\ фальшивый файл WINMM.dll, содержащий вредоносный код.
Напомним, недавно представители исследовательской компании Cymulate обнаружили новый способ заражения компьютеров.
Источник: cnews