Получение доступа к iLO через уязвимость IPMI Cipher 0

Сегодня мы на практике воспользуемся уязвимостью в серверах HP.
Уязвимость называется IPMI Cipher Suite Zero Authentication Bypass (CVE-2013-4805) и дает возможность добавлений административного пользователя в iLO.
Уязвимость присутствует на серверах HP с Integrated Lights-Out 3 (iLO3) firmware версии до 1.60 и iLO4 firmware версии до 1.30.

Для Эксплуатации уязвимости будем использовать дистрибьютив Kali Linux.

Так уязвомость выглядит в сканере безопасности Nessus.

nessus_ipmi_1

Сначала установим требуемые пакеты:

Теперь после этого попробуем подключиться к атакуемой системе и посмотреть на ней конфигурацию:
В дальнейшем будем считать, что 192.168.1.2 это адрес атакуемой системы.

-I выбор протокола. lanplus говорит, что мы используем протокол IPMI v2.0 RMCP+ LAN Interface
-C 0 говорит, что мы не будем использовать аутентификацию (Cipher 0)
-H указываем IP сервера.
192.168.1.2 — это IP атакуемой системы.
-U имя пользовтеля (в данном случае Administrator) обычно первый пользователь это Administrator, или смотрите что выдает сканер безопасности по данному вопросу
Так же можно указать пароль (хотя уязвимость основана на безпарольном доступе): -P YourPassword
-P говорит использовать пароль, а YourPassword это сам пароль.
Если мы не указали пароль, то утилита его запросит. Просто нажимаем Enter, чтобы подтвердить, что пробуем подключиться без пароля.

В случае успеха мы увидим список пользователей:

Теперь загрузим текущую конфигурацию себе (на всякий случай):

-D выбор драйвера. Мы выбираем дравер LAN_2_0
-I 0 -выбираем без алгоритма аутентификации (Cipher 0)
-v выводим подробную информацию
-u имя пользователя (он все еще тот же: Administrator)
-p можно так же указать пароль. Но мы продолжаем без него. Хотя бы потому, что мы его не знаем.
-o получить конфигурацию.
-f сохранить конфигурацию. В файл config.txt

Загрузка конфигурации продлится некоторое время (2-5 минут).
Теперь в любом текстовом редакторе (vi, vim, nano) создадим файл с конфигурацией нового пользователя (назовем его useradd.txt):

И запишем в него следующую конфигурацию, которая добавит (или заменит) второго пользователя (User2):

Теперь загрузим новую конфигурацию:

Флаги все те же, за исключением:
—commit загрузить конфигурацию на сервер.
useradd.txt ранее созданный файл с конфигурацией.

Если в ответ мы получим:

или что все ОК, то атака удалась.

Теперь проверим есть ли у нас доступ:

На этот раз мы должны получить список из двух пользователей:

Теперь можно подключаться через веб-интерфейс под новым пользователем.

P.S. Для удаления второго пользователя загружаем следующий конфиг:

Заказать Аудит Безопасности или Пентест Вашей IT-инфраструктуры

Быть уверенным в своей IT-инфраструктуре — это быть уверенным в завтрашнем дне.

Для того, чтобы сделать заказ:

Заполните форму обратной связи и мы обязательно с вам свяжемся:
Форма обратной связи
Позвоните нам по телефону:
+7(909)952-44-33
Напишите нам на электронную почту:
order@blackdiver.net
Напишите нам в Telegram:
Telegram
Другие способы связи Вы сможете найти в разделе Контакты.