Сценарий на основе уязвимости CVE 2017-5689 может быть реализован очень быстро и все еще может стать причиной фатальных последствий для многих систем.
Автор: Laxita Jain
В этой статье рассматривается ручная эксплуатация уязвимости CVE-2017-5689 в технологии Intel AMT (Active Management Technology). Она позволяет обойти механизм аутентификации в ее веб-интерфейсе и удаленно получить права администратора. В статье кратко рассмотрены веб-интерфейс технологии и ее аппаратная часть, а затем — процесс обнаружения и эксплуатации данной уязвимости.
Intel AMT — это прошивка, позволяющая получить удаленный доступ к аппаратному обеспечению компьютера. С ее помощью системные администраторы могут удаленно управлять, устанавливать обновления и решать проблемы на серверах, настольных системах и даже умных торговых автоматах. Intel AMT широко используется в корпоративных средах, где сотрудники часто перемещаются, а количество управляемых систем велико. Для устранения неисправностей достаточно подключения к интернету, что значительно упрощает работу технических специалистов.
На материнских платах корпоративных компьютеров с поддержкой AMT установлен отдельный микропроцессор — Intel Management Engine (ME). Он имеет полный доступ к аппаратному обеспечению, что позволяет выполнять различные задачи во время загрузки, работы или даже в спящем режиме основной системы. Благодаря этому администратор получает удаленный доступ к памяти, клавиатуре, драйверам, BIOS и сетевому интерфейсу.
Доступ к веб-интерфейсу осуществляется через два порта:
16992: Доступ к веб-серверу AMT по протоколу HTTP.
16993: Доступ к веб-серверу AMT по протоколу HTTPS.
Для входа в интерфейс требуется авторизация, но рассматриваемая уязвимость позволяет обойти этот механизм.
В процессе авторизации используется механизм дайджест-аутентификации, когда перед отправкой пароль преобразуется в хэш-строку (дайджест). Пароль, введенный пользователем, сравнивается на сервере с сохраненным значением при помощи вызова следующей функции:
strcmp(user_value, server_value, length)
Эта функция возвращает 0, если строки идентичны, что означает успешную аутентификацию. Последний аргумент, length
, соответствует длине строки, введенной пользователем.
Уязвимость заключается в том, что произойдет, если передать пустую строку. В этом случае ее длина, а значит и количество сравниваемых символов, будет равна нулю. Если сравнивать нечего, функция strcmp
вернет 0. Используя прокси-сервер (например, Burp Suite) для перехвата и изменения запроса, можно отправить пустое значение в поле пароля. В результате уязвимость позволит обойти аутентификацию в веб-интерфейсе и получить полный удаленный контроль над системой.
Шаг 1: Настройте прокси-сервер для перехвата запросов. Для начала найдите IP-адрес и порт уязвимой системы, например, с помощью поисковой системы Shodan, и откройте веб-интерфейс Intel AMT. В появившемся диалоговом окне введите имя пользователя «admin» и любой случайный пароль.
Рисунок 1: Диалоговое окно аутентификации в веб-интерфейсе Intel AMT
Имя пользователя «admin» является стандартным для интерфейсов AMT, поэтому его менять не нужно. В запросе будет изменен только параметр, отвечающий за пароль.
Шаг 2: В перехваченном запросе найдите параметр response
.
Рисунок 2: Запрос, перехваченный во время авторизации
При дайджест-аутентификации пароль, введенный пользователем, преобразуется в хэш, который и передается в параметре response
.
Шаг 3: Обнулите параметр response
.
Рисунок 3: Запрос с обнуленным параметром response
После обнуления этого параметра на сервер отправляется пустой ответ (дайджест).
Шаг 4: Отправьте измененный запрос и получите доступ.
Рисунок 4: Авторизация успешно пройдена
Пустая строка, отправленная на сервер, передается в функцию сравнения. Поскольку длина строки равна нулю, функция возвращает 0, что система интерпретирует как успешное совпадение паролей. Аутентификация пройдена.
Эксплуатация уязвимости CVE-2017-5689 не требует много времени и до сих пор может привести к серьезным последствиям для скомпрометированных систем. Получив доступ, злоумышленник может нанести значительный ущерб как отдельному компьютеру, так и всей сети. Поскольку Intel ME функционирует независимо от основной операционной системы, атакующий, проникнув в локальную сеть, может удаленно активировать AMT на других машинах и масштабировать атаку. Этой уязвимости присвоен рейтинг CVSS 9.8.
· https://www.blackhat.com/docs/us-17/thursday/us-17-Evdokimov-Intel-AMT-Stealth-Breakth rough-wp.pdf