Подменив RID в реестре, злоумышленники могут получить права администратора и закрепиться в системе.
Себастьян Кастро (Sebasti?n Castro), специалист колумбийской ИБ-компании CSL, нашел способ повысить права гостевого пользователя Windows до администраторских и сохранить их при перезагрузке. Метод основан на подмене одного из параметров учетных записей в системе — относительного идентификатора (Relative Identifier, RID).
Атаку сравнительно просто осуществить и трудно остановить. Тем не менее, она пока ни разу не применялась, хотя исследователь впервые описал ее более 10 месяцев назад, в декабре 2017 года. Более того, за это время она не привлекла внимания ни прессы, ни Microsoft. Несмотря на то что эксперт отправил в компанию отчет сразу после проверки своей теории на практике, ответа он не получил, а патч так и не вышел.
Идентификатор RID — это уникальное порядковое число, которое назначают учетным записям Windows для описания их разрешений. Он генерируется на контроллере домена во время создания объекта и добавляется в конец идентификатора безопасности (SID, Security Identifier) для того, чтобы обозначить имя пользователя или группы. Для встроенных учетных записей RID одинаковы на всех компьютерах и доменах. Так, RID для Administrator всегда имеет значение 500, а для Guest — 501.
Кастро обнаружил, что можно модифицировать ключи реестра, в которых хранится информация о всех учетных записях Windows, и поменять значение RID у любой из них. Это затронет и связанные с идентификатором разрешения. Таким образом злоумышленник сможет получить права администратора или захваченного аккаунта.
Этим методом нельзя взломать компьютер удаленно — по крайней мере, если он не подключен к Интернету и на нем установлен пароль. Однако такая техника может пригодиться злоумышленникам, которые хотят закрепиться в уже захваченной системе или повысить свои привилегии. Таким образом они не только могут создать бэкдор, предоставив права администратора низкоуровневой учетной записи, но и сделать его постоянным, поскольку изменения в ключах реестра сохраняются и после перезагрузки.
Чтобы протестировать атаку, Кастро написал модуль для Metasploit Framework, который автоматизирует эту технику, перебирая все комбинации существующих на компьютере жертвы учетных записей. Он проверяет разрешения (и при необходимости их получает), а потом изменяет ключи реестра, связанные с каждым аккаунтом. Исследователь отметил, что метод оказался действенным для нескольких версий Windows — XP, 8.1, 10, а также Server 2003.
В интервью изданию ZDNet Кастро сказал, что «обнаружить эту атаку очень непросто, потому что она задействует стандартные ресурсы системы и не привлекает внимание жертвы». Однако он считает, что ИБ-специалисты легко смогут заметить подмену RID, заглянув в реестр и обратив внимание на SID гостевого аккаунта, — им только нужно знать, куда именно смотреть.
Результаты своего исследования Кастро представил летом на нескольких конференциях, однако ответа Microsoft так и не получил. Джефф Джонс (Jeff Jones), старший директор компании, прокомментировал ситуацию только после повторной публикации отчета.
«Компания Microsoft ценит безопасность и имеет большой опыт расследования и решения найденных уязвимостей. Мы изучаем этот отчет, и если решим, что следует предпринять дальнейшие меры, чтобы защитить наших клиентов, предпримем их», — заявил представитель IT-гиганта.
Первое сообщение колумбийского эксперта о найденной им бреши практически совпало с обнаружением уязвимостей Meltdown и Spectre в начале января. На фоне известий о багах в процессорах, которые затрагивают все компьютеры, серверы и мобильные устройства, работающие на базе практически всех ОС, отчет Кастро мог потеряться. Однако неясно, почему компания Microsoft хранила молчание на протяжении последующих десяти месяцев.