Бесплатно Экспресс-аудит сайта:

29.07.2020

CVE 2017-5689: Ручная эксплуатация уязвимости в Intel AMT

Автор: Laxita Jain

Введение

В этой статье рассматривается ручная эксплуатация уязвимости, найденной в 2017 году в технологии Intel AMT (Intel Active Management Technology), позволяющей обойти основной механизм аутентификации в веб-интерфейсе и удаленно получить максимальные (административные) привилегии. Коротко рассматривается веб-интерфейс, сопутствующая аппаратная часть, а затем исследование и эксплуатация бреши.

Технология Intel AMT

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

Intel Management Engine

На выбранных корпоративных компьютерах, где доступна технология AMT, помимо основного процессора, есть крошечный субкпомпьютер, называемый Intel Management Engine, у которого есть полный доступ к аппаратной части, что позволяет выполнять разные задачи, когда система загружается, работает или даже находится в спящем режиме. В этом случае у нас есть удаленный доступ к памяти, клавиатуре, драйверам, BIOS и даже к сети.

Веб-интерфейс в Intel AMT

К веб-интерфейсу можно получить доступ через два порта:

  • 16992: Доступ к веб-серверу AMT Web Server по протоколу HTTP.

  • 16993: Доступ к веб-серверу AMT Web Server по протоколу HTTPS.

Для доступа к интерфейсу нужна авторизация, но уязвимость позволяет обойти этот механизм.

Суть проблемы

Во время авторизации используется механизм дайджест-аутентификации, когда перед отправкой пароли конвертируются в зашифрованную строку. Пароль, введенный пользователем, сравнивается на сервере с сохраненным значением при помощи вызова следующей функции:

strcmp(значение указанное пользователем, значение хранимое на сервере, длина сравнения)

Эта функция возвращает положительное или отрицательное значение в случае различия строк или 0, если строки идентичны. Соответственно, 0 означает, что аутентификация завершилась успешно. Последний аргумент соответствует количеству сравниваемых символов и соответствует длине строки, введенной пользователем.

Теперь рассмотрим, что произойдет, если длина равна нулю. В этом случае количество сравниваемых символов тоже равно пустому значению. Если нечего сравнивать, функция вернет 0, и в этом заключается уязвимость. При использовании прокси-сервера (навроде Burpsuite) для перехвата запроса и модификации с целью отправки пустого значения вместо пароля, вы сможете пройти авторизации в веб-интерфейсе и получить полный удаленный контроль над системой.

Тестирование уязвимости

Шаг 1: Настраиваем прокси-сервер для перехвата запросов. Откройте веб-интерфейс Intel AMT, используя IP-адрес и порт (можно найти через поисковую систему shodan.io). Появится диалоговое окно для авторизации. Введите имя пользователя «admin» и любой случайный пароль.

Рисунок 1: Диалоговое окно во время аутентификации в веб-интерфейсе Intel AMT

Имя пользователя «admin» используется по умолчанию во всех AMT-интерфейсах, и нам не понадобится менять это значение. В запросе мы будем менять пароль, введенный в виде случайных символов.

Шаг 2: В перехваченном запросе ищем параметр «response».

Рисунок 2: Запрос, перехваченный во время авторизации

Во время дайджест-аутентификации строка в формате ASCII, введенная в качестве пароля, была сконвертирована в шестнадцатеричное значение, которое находится в параметре «response».

Шаг 3: Обнуление параметра «response».

Рисунок 3: Запрос с измененным значением параметра «response»

После изменения параметра «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

· https://nvd.nist.gov/vuln/detail/CVE-2017-5689