Ipmi версия 1. Квантор - системный интегратор. Управление сервером через утилиту IPMICFG от SuperMicro
Часто задаваемые вопросы о IPMI в материнских платах Supermicro: зачем он нужен, особенности, наглядная демонстрация, подводные камни.
1) Самый популярный миф о KVM-over-LAN - это то, что он "не нужен"
. Почему-то многие путают его с обычным удаленным доступом к текстовой/графической консоли ОС, т.е. "зачем нам KVM-over-LAN, если есть SSH, VNC, RDP и Radmin?"
Разница принципиальная: KVM-over-LAN - это не просто доступ к консоли ОС, он никак от ОС не зависит, это доступ к консоли непосредственно самого сервера (и не только к консоли, подробности будут ниже), т.е. мы можем, например: зайти в BIOS системной платы или доп. контроллера, установить ОС, настроить мониторинг сенсоров (что, опять-таки, очень важно - независимый от ОС) через SNMP и т.д.
2) Как это работает?
Работает достаточно просто, вот структурная схема (Supermicro последнее время использует, как правило Winbond или Nuvoton WPCM450:
Всю работу выполняет процессор BMC (Baseboard management controller) - он имеет собственную память и специализированную ОС (обычно на базе Linux). BMC использует USB шину для подключения виртуальных клавиатуры, мыши и приводов CD/DVD/FDD. Через другие шины осуществляется сбор показаний датчиков вращения вентиляторов, температуры, управление питанием, доступ к COM-порту (для удаленного доступа к последовательной консоли). BMC также занимается захватом и перенаправлением содержимого видеобуфера - в современных BMC уже интегрировано видеоядро, когда-то, в первых реализациях, BMC занимался оцифровкой аналогового сигнала с отдельного VGA-контроллера. Обмен данными с "внешним миром" происходит через ethernet (выделенный порт или один из портов размещенного на системной плате контроллера ethernet).
Собственно, WPCM450 в продуктах Supermicro представляет собой систему на базе процессора ARM 926EJ-S, работающей под управлением ОС Linux на ядре 2.6.
В целях диагностики можно зайти через SSH, где вас будет ждать busybox.
3) Сколько это стоит?
В настоящее время Supermicro интегрирует IPMI BMC непосредственно на системные платы. Раньше использовались дополнительные модули (например - AOC-SIMSO+). Наличие IPMI BMC на плате Supermicro обозначает буквой F, например: X8DTi и X8DTi-F, и разница в цене не превышает $50, что уже является очевидным ответом на вопрос "нужно или нет", ведь внешний IP-KVM обойдется вам гораздо дороже. Ставить обычный KVM и каждый раз при необходимости что-нибудь переустановить или перепрошить идти в серверную - тоже не выход, это потеря времени, ведь ваш сервер может находится за десятки и сотни километров, да и, в конце концов - это просто неудобно.
4) Как это выглядит на практике?
Доступ к IPMI можно получить либо через IPMIView (специализированная утилита на Java, есть сборки под Windows и Linux) или через обычный браузер (при подключении к графической консоли запустится дополнительное java-приложение).
Рассмотрим IPMIView. Для начала в BIOS можно настроить ethernet-порт IPMI: по умолчанию стоит DHCP, но можно вручную выставить нужные IP/маску/шлюз, тэг VLAN (весь ужаленный менеджмент лучше выделить в отдельную подсеть из соображений безопасности и удобства).
Запускаем IPMIView и находим нужный сервер (можно просканировать диапазон адресов на предмет наличия IPMI), логин/пароль по умолчанию - ADMIN/ADMIN.
- Graceful shutdown - имитируется быстрое нажатие кнопки Power, для того чтобы ОС могла корректно выключить питание самостоятельно.
- Power Cycle - это Graceful shutdown с последующим включением питания
- Reset и Power Up говорят сами за себя
- Power Down - жесткое выключение, с длительным нажатием кнопки Power
Сетевые настройки можно поменять при необходимости на вкладке BMC Setting (помните, что можно по ошибке потерять удаленный доступ к серверу). Кстати, об удаленном доступе: используются следующие порты (их нужно будет пробросить через NAT или обеспечить способ доступа в менеджмент-сеть, например, через VPN):
TCP:
- HTTP: 80
- HTTPS: 443
- 5901 - нужен для графической консоли
- 5900 - HID, трафик виртуальной клавиатуры/мыши
- 5120 - трафик виртуального привода CD/DVD
- 5123 - трафик виртуального FDD
- IPMI: 623
На вкладке KVM Console
можно увидеть самую полезную вещь - графическую консоль сервера. Там же находятся кнопки снятия скриншота, управления виртуальными носителями (Virtual Media), перехода в полноэкранный режим и дополнительная софт-клавиатура. Зачем она нужна, если есть аппаратная? Для различных комбинаций клавиш, которые по каким-то причинам не удается отправить на сервер с аппаратной клавиатуры, например классический Ctrl+Alt+Delete.
Вот несколько особенностей:
- Если у вас есть контроллер от LSI, то вам знаком ориентированный на использование мыши интерфейс LSI Webbios. Так вот: мышь в Webbios через IPMI в современных платах Supermicro не работает, связано это с тем, что Webbios расчитан на мышь PS/2, а IPMI эмулирует мышь USB. В FAQ разделе технической поддержки Supermicro этот вопрос рассматривается , но рекомендации не помогают. Приходится пользоваться исключительно клавиатурой, что не совсем удобно, т.к. не через все пункты можно перемещаться при помощи Tab - нужны комбинации с Alt, которые отрабатываются только через Soft Keyboard.
Переключение раскладки в WinPE 3.0 не работает. Так что собирайте WinPE с английской раскладкой, для этого нужно добавить в скрипт сборки после монтирования Wim-образа следующую команду:
Dism /image:C:\winpe64\mount /Set-InputLocale:1033:00000409 "C:\winpe64\mount" - точка монтирования образа.
При желании можно заодно сменить локаль и язык интерфейса - смотрите документацию к WinPE.- Для не Windows ОС измените режим синхронизации курсора с абсолютного на относительный.
Можно либо перенаправить локальный привод, либо подключить образ, что гораздо удобнее. Для появления соответствующего устройства в загрузочном меню BIOS может потребоваться перезагрузка.
P.S. Как сбросить пароль IPMI? Только при помощи консольной утилиты ipmicfg . Существует в версиях под DOS, Windows и Linux. Запуск ipmicfg -fd обнуляет все настройки и устанавливает логин/пароль пользователя с администраторскими правами в стандартные ADMIN/ADMIN.
Обновление от 18.04.2010
. В какой-то момент, после очередного обновления Java, попытка смонтировать iso образ в IPMIView начала приводить к его падению (Windows 7 64бит с последними обновлениями).Вышел новый релиз IPMIView (build 110412 от 12 апреля). Пока еще не проверял, исправлен ли там этот баг, так как можно пользоваться запуском консоли через web-интерфейс.
Переходим на вкладку Remote Control
, жмем Launch Console
и получаем в отдельном окне Redirection Viewer
, аналогичный по функционалу консоли в IPMIView.
Стоит добавить, что web-интерфейс не облегчает задачу доступа к консоли из внешней сети - Redirection Viewer
- это не Java-апплет, а отдельное Java приложение и использует те же порты для трафика видео, HID и виртуальных приводов: 5900, 5901, 5120, 5123.
P.S. от 01.12.2011
. Дополнительная статья: FreeIPMI .
P.S. от 06.10.2013. Похожая .
P.S. от 10.11.2013.
P.S. от 20.06.2014.
Опять .
Не так давно, мне удалось поработать с новыми для меня серверами Supermicro удаленное управление которыми осуществляется с помощью интерфейса IPMI . В данной статье я постараюсь раскрыть основные моменты в настройки IPMI на серверах Supermciro, покажу основные пункты меню интерфейса IPMI, а также расскажу о дополнительных утилитах, командах и способах мониторинга сервера с помощью ipmi.
IPMI (Intelligent Platform Management Interface) — интеллектуальный интерфейс управления платформой, предназначенный для автономного мониторинга и управления функциями, встроенными непосредственно в аппаратное и микропрограммное обеспечения серверных платформ. (информация взята с официального источника). IPMI реализуется в виде отдельного контроллера сервера, который не зависит от операционной системы, BIOS, CPU севера и позволяет удаленно управлять физическим оборудованием.
Первичная настройка IPMI консоли и знакомство с интерфейсом
Настройка IPMI начинается с настройки IP адреса интерфейса, который нужно указать в BIOS. Если сервер установлен в офисе, это может быть серый IP-адрес, если же ваше оборудование размещается в ДатаЦентре, то наверняка вы используете белый статический IP-адрес.
На серверах Supermicro в BIOS можно попасть, нажав кнопку “Del ” при загрузке сервера, я не буду заострять на этом внимание и сразу перейду к интерфейсу самого BIOS.
Как видите на скриншоте, я вошел в пункт меню IPMI и активировал возможность конфигурации Lan для интерфейса (Update IPMI Lan Configuration=Yes, Configuration Address Source = Static), указал IP-адрес, маску подсети и основной шлюз.
Применить настройки можно нажав кнопку F4 , после чего произойдет перезагрузка сервера.
Если вы все сделали правильно, то введя в браузере, указанный для интерфейса IPMI IP, у вас откроется авторизация:
Теперь пройдем по основным моментам.
При покупке нового сервера, в IPMI уже создан пользователь ADMIN с паролем ADMIN , именно с этими данными мы и авторизуемся. Я всегда рекомендую создавать нового пользователя, а стандартного удалять или менять у него пароль, так оставлять такой логин и пароль, крайне небезопасно. Создать нового пользователя или поменять пароли/привилегии у текущих, можно в меню Configuration -> Users .
Рестарт интерфейса IPMI можно сделать из меню Maintenance -> Unit Reset .
Монтирование iso образа ОС для установки на сервер выполняется в меню Virtual Media -> CD-ROM Image .
У меня iso образы ОС хранятся на сервере Samba в той же подсети что и интерфейсы IPMI серверов. Я указываю адрес сервера Samba, путь к образу установочному ISO с ОС, после чего монтирую ISO образ и приступаю к установке операционной системы.
Удаленную графическую Java консоль сервера (KVM-over-IP ) можно открыть через Remote Control -> Console Redirection .
Консоль в целом удобная, но после установки ОС, для работы с сервером я обычно использую ssh клиенты. Иногда есть моменты когда, это невозможно, например если у вас не работает или еще не настроена сеть на сервере или же имеются какие-то проблемы с доступом. Именно тогда на помощь и приходит Remote Console.
Никаких отдельных настроек в самой консоли делать не нужно, хочу лишь добавить, что она имеет встроенную клавиатуру, которую можно вызывать из меню Virtual Media -> Virtual Keyboard .
Совет. После продолжительной работы с серверами SUpermicro, я обнаружил один неприятный баг. После установки операционной системы Centos 7 и установки KVM на нее, пропадает возможность использовать Remote Console. Пока сервер в процессе загрузки, консоль отвечает и можно пройти в Bios или увидеть загрузку ядра ОС. Но как только операционная система загрузилась, видео в консоли пропадает. Путем экспериментов мне удалось победить этот баг. Нужно в загрузки ядра добавить параметр загрузки nomodeset. Для этого после установки ОС нужно выполнить команду:
grubby --args "nomodeset" --update-kernel /boot/vmlinuz-`uname -r`
После этого, Remote Console работает исправно.
Управление сервером через утилиту IPMICFG от SuperMicro
Для управления серверами через IPMI компания SuperMicro разрабатывает собственную утилиту IPMICFG .
Скачать файл IPMICFG можно с помощью команды:
wget ftp://ftp.supermicro.com/utility/IPMICFG/IPMICFG_1.30.0_build.190710.zip
На момент публикации файл был с таким названием, я рекомендую заходить на репозиторий SuperMicro по ссылке ftp://ftp.supermicro.com/utility/IPMICFG/ и копировать url актуального файла.
Распакуем скачанный файл в директорию которой находимся:
ln -s /root/IPMI*/Linux/64bit/IPMICFG-Linux.x86_64 /usr/local/sbin/ipmicfg
Теперь мы можем запускать утилиту с помощью команды ipmicfg (символической ссылки). Рассмотрим базовые возможности утилиты ipmicfg.
Если выполнить команду ipmicfg -help мы получим список всех возможных параметров утилиты.
Разберем основные команды:
- ipmicfg -help – полная справка по утилите;
- ipmicfg -m – просмотр текущего IP и mac-адреса для IPMI;
- ipmicfg -k - просмотр маски подсети;
- ipmicfg -g – просмотр заданного шлюза;
- ipmicfg -fd - сброс IPMI к заводским настройкам;
- ipmicfg -user list – просмотр созданных пользователей и их привилегий.
Вы можете изменить IP адрес, маску и шлюз интерфейса IPMI:
- ipmicfg -m 192.168.1.200
- ipmicfg -k 255.255.255.0
- ipmicfg -g 192.168.1.1
Создать нового пользователя IPMI и его пароль:
ipmicfg -user add С помощью утилиты делаем следующее: ipmicfg -user add 6 test 123456 4 Тем самым мы создали пользователя test с паролем 123456 и привилегиями администратора. Список пользователей IPMI и их привилегии в системе можно вывести командами: Как уже видите на скриншоте, пользователь test создан. Чтобы изменит (сбросить) пароль пользователя IPMI, исползайте команду: ipmicfg -user setpwd И приведу еще пару примеров использование данной утилиты: Через IPMI мониторить температуру и работу железа сервера SuperMicro довольно просто. Полная информация о железе сервера содержится в пункте System -> Hardware Information. Информацию по состоянию процессора, оперативной памяти и вентиляторах, можно посмотреть перейдя во вкладку Server Health -> Sensor Readings. Для удобства просмотра, можно менять категории отображения датчиков, например, температуры: Или датчики напряжения: Так как в данный момент на нашем сервере нет проблем, ни с температурой, ни с напряжением, все датчики находятся в зеленой зоне. Если на сервере поднимается температура или есть проблемы с напряжением, зеленые прямоугольники будут окрашиваться в красный цвет, что послужит сигналом для проверки вашего сервера. Проверка состояния блоков питания: # ipmicfg -pminfo Item | Value
---- | -----
Status | (00h)
Input Voltage | 217.5 V
Input Current | 1.06 A
Main Output Voltage | 12.28 V
Main Output Current | 17.93 A
Temperature 1 | 23C/73F
Temperature 2 | 21C/70F
Fan 1 | 2064 RPM
Fan 2 | 2032 RPM
Main Output Power | 220 W
Input Power | 228 W
PMBus Revision | 0x22
PWS Serial Number | P2K4FCH02LT0125
PWS Module Number | PWS-2K04F-1R
PWS Revision | REV1.0
Current Sharing Control | PEC error
Item | Value
---- | -----
Status | (00h)
Input Voltage | 217.5 V
Input Current | 1.09 A
Main Output Voltage | 12.30 V
Main Output Current | 18.09 A
Temperature 1 | 24C/75F
Temperature 2 | 22C/72F
Fan 1 | 2064 RPM
Fan 2 | 2064 RPM
Main Output Power | 223 W
Input Power | 234 W
PMBus Revision | 0x22
PWS Serial Number | P2K4FCH02LT0126
PWS Module Number | PWS-2K04F-1R
PWS Revision | REV1.0
Current Sharing Control | PEC error
Посмотреть температуру процессора можно командой: ipmicfg -nm oemgettemp Так же можно проверить в каком режиме работают вентиляторы и изменить режим, если это необходимо. Проверка состояния и конфигурации вентилятора # ipmicfg -fan Current Fan Speed Mode is [ PUE2 Optimal Mode ]
Supported Fan modes:
0:Standard
1:Full
3:PUE2 Optimal
4:Heavy IO
Изменение режима работы кулера: ipmicfg -fan Информация о версии и прошивке IPMI: # ipmicfg -nm deviceid Device ID = 50h
Firmware Version = 4.1.4.54
IPMI Version = 2.000000
Manufacturer ID = 57 01 00
Product ID Minor Ver = Greenlow platform
Implemented DCMI version = DCMI not implemented/enabled
Firmware implemented version = NM Revision 4.0
Image Flag = operational image 1
raw = 50 01 04 14 02 21 57 01 00 09 0b 04 05 40 01
И посмотреть все сенсоры можно командой ipmicfg -sdr При выводе мы видим, что есть дополнительные столбцы, в которых отображена информация о лимитах нижнего и верхнего пределов. Так же существует еще не малое количество утилит, которые можно использовать для мониторинга и автоматизировать этот процесс, например, с nagios. В данный момент заострять на этом внимание мы не будем, так как цель статьи рассказать основные моменты в работе с IPMI. Если вас заинтересует тема мониторинга, вы можете оставить свои пожелания и возможно в дальнейшем мы осветим и эту тему. Надеюсь, данная статья окажется для вас полезной! Все сервера, предлагаемые нами в аренду, оснащены контроллером IPMI (Intelligent Platform Management Interface), позволяющим осуществлять включение, выключение, удаленное подключение (KVM) с возможностью монтирования ISO-образов, а также обеспечивающим доступ к информации о текущем состоянии сервера. При помощи IPMI после выдачи сервера вы сможете произвести установку операционной системы и первоначальную настройку сервера. Так как IPMI-контроллер подключён отдельным кабелем и имеет собственный IP-адрес, даже в случае потери доступа к ОС Вы всегда сможете управлять сервером удаленно без необходимости прямого физического доступа. Для установки операционной системы Вам потребуется подключиться к IPMI сервера одним из удобных для вас способов: через Web-интерфейс или при помощи программы IPMIView. В статье будут описаны оба варианта, однако мы рекомендуем использовать второй способ. Для подключения через web-интерфейс необходимо в адресной строке вашего браузера ввести адрес IPMI и авторизоваться. Адрес и реквизиты для авторизации вы можете найти в письме с доступом к серверу или в вашем личном кабинете. Далее потребуется перейти во вкладку Remote Control -> Console Redirection и нажать кнопку Launch Console . В разделе Device 1 выберите ISO File в выпадающем списке Logical Drive Type и укажите путь до образа на вашем диске при помощи кнопки Open Image , после чего подключите образ кнопкой Plug In . После подключения образа перезагрузите ваш сервер в разделе Power Control -> Некоторые серверы позволяют подключить до трёх устройств при помощи вкладок Device 2 или Device 3 в разделе Virtual Media -> Virtual Storage . Это может быть полезно, если при установке потребуется установить дополнительные драйвера. Если вы планируете установить на сервер ОС Windows, комбинацию клавиш Ctrl+Alt+Del можно передать в разделе Macro - Macro .
Для использования программы Supermicro IPMIView необходимо скачать её с официального сайта , указав свои данные, либо напрямую с ftp-сервера: https://www.supermicro.com/wftp/utility/IPMIView/ После установки и запуска программы необходимо добавить ваш сервер в разделе File - New - System . В качестве System Name укажите имя вашего сервера, а в графу IP address впишите адрес IPMI , который вы можете найти в письме с доступом к серверу или в вашем личном кабинете. Убедитесь, что в графе адреса отсутствуют пробелы в конце строки и нажмите OK . В списке слева дважды нажмите на имя добавленного сервера, после чего вы увидите окно авторизации. Заполните его при помощи реквизитов из письма или личного кабинета и нажмите Login . В случае успешного подключения вы увидите надпись Connected , а в самом низу окна появятся дополнительные вкладки для управления сервером. Для удалённого управления сервером перейдите в разде KVM Console и нажмите кнопку Launch KVM Console . Дальнейшие действия аналогичны работе через При помощи программы IPMIView вы также можете перезагрузить, включить или выключить ваш сервер во вкладке IPMI Device . Абсолютное большинство современных серверов имею IPMI/BMC интерфейс для управления сервером удаленно. Данный инструмент представляет собой доступ к виртуальной клавиатуре и экрану сервера посредством протокола TCP/IP. Сегодня мы коснемся истории исследования безопасности IPMI, рассмотрим векторы для проведения атак и их дальнейшего развития с использованием IPMI. IPMI
- это набор спецификаций, регламентирующих, как общаться и что предоставлять. УПРАВЛЕНИЕ
Интерфейсов управления несколько: С веб-интерфейсом все понятно. Каждый вендор сам решает, как он выглядит и как его реализовать. Второй и третий интерфейсы похожи, но различается среда передачи. В случае IPMI over LAN, как можно догадаться, команды передаются через сеть на порт UDP 623. Из установленной системы команды для IPMI передаются посредством файла устройства, обычно это /dev/ipm iO, которое появляется после установки драйвера. Стандартная утилита для взаимодействия с IPMI - это IPMltool под GNU/Linux, как наиболее простая в обращении. ЧТО ПЕНТЕСТЕРУ IPMl/BMC
Несмотря на то что отчет об уязвимостях IPMl/BMC был опубликован еще летом 2013 года, в настоящее время остается очень много уязвимых систем. Очень часто IPMl/BMC любой масти можно найти через поисковик . Естественно, не стоит держать подобные системы снаружи. В основном они встречаются при проведении внутренних пентестов. Один из самых простых векторов развития атаки с использованием таких систем - «угон» сервера с помощью IPMI/BMC. Заимев административный доступ к IPMl/BMC (как будет показано далее, это совсем несложно), можно подключиться через VirtualConsole (aka KVM) и, к примеру, сбросить пароль root’a или с помощью LiveCD сдампить хеш и локальных пользователей, если это Windows. При прокачанном скилле удачи можно даже поймать консоль, из которой root забыл разлогиниться (очень часто такое встречается на виртуальных машинах). В свою очередь, IPMI можно использовать и как возможность вернуть доступ к серверу после полной переустановки системы. ПУБЛИЧНЫЕ ИССЛЕДОВАНИЯ
Впервые на безопасность IPMI и ВМС обратил внимание Дэн Фармер (DanFarmer). С его полным отчетом, носящим говорящее название «Грузовой поезд в ад» . Мы рассмотрим наиболее интересные с точки зрения взлома моменты. · кастомные баги от производителей (например, уязвимости веб-интерфейса); На самом деле Дэн накопал много интересного, об этом ниже. NULL authentication
Описание
Вендоры
Условия
Ipmtiool -А NONE -Н targetIP bmc guid
IPMI Authentication Bypass via Cipher 0
Описание
Вендоры
Условия
Открытый порт UDP 623, IPMI 2.0, логин существующего юзера. Metasploit - auxiliary/scanner/ipmi/ipmi_cipher_zero
ipmitool -I lanplus -C 0 -Н targetIP -u
Administrator -Р anypasswordhere user list
IPMI 2.0 RAKP Authentication Remote Password Hash Retrieval
Описание
Вендоры
УСЛОВИЯ
Открытый порт UDP 623, IPMI 2.0 и валидные user-logins. Metasploit - auxiliary/scanner/ipmi/ipmi_dumphashes
http://fish2.com/ipmi/tools/rak-the-ripper.pl
IPMI Anonymous Authentication / Null user
Описание
Вендоры:
НР Условия
Открытый порт UDP 623. Metasploit - auxiliary/scanner/ipmi/ipmi_dumphashes
ipmitool -I lanplus -Н targetIP -U "" -Р "" user list
Supermicro IPMI UPnP Vulnerabllity
Описание
Вендоры
Условия
Metasploit exploit/multi/upnp/libupnp _ssdp_overflow
metasploit auxiliary/scanner/upnp/ssdp_msearch
Supermicro IPMI Clear-text Passwords
Описание
Вендоры
Условия
Cat /nv/PSBlock
echo (GET /PSBlock" 1 nc targetIP 49152
По поводу уязвимостей «NULL authentication / IPMI Authentication Bypass via Cipher О», «IPMI 2.0 RAKP Authentication Remote Password Hash Retrieval», «IPMI Anonymous Authentication» - обо всем этом написано в спецификации IPMI. HANDS-ON LAB
Давай разберем стандартную схему эксплуатирования уязвимостей IPMI. С помощью модуля Metasploit’a ipmi_dumphashes
мы имеем возможность собрать хеши пользователей. Важно: без знания логина пользователя не получится добыть его хеш. В опциях ipmi_dumphashes
можно указать путь до файла с логинами, например в том случае, если админы создали для себя учетные записи. Файл, который используется по умолчанию, содержит дефолтные логины всех вендоров. Брут хешей поддерживают как oclHashcat
, так и John the Ripper с jumbо
-патчами (community edition). Джона следует брать с гитхаба, так как на официальном сайте устаревшая версия без поддержки нужного нам формата. Последняя версия oclHashcat
, на данный момент 1.30, поддерживает все из коробки. Если у тебя в руках оказался хеш от НР ilO4, то тебе повезло. Дело в том, что при конфигурировании на заводе пароль по умолчанию для учетной записи Administrator устанавливают длиной восемь символов - uppercase + numeric. На моих скромных мощностях поиск подобного значения занимает около получаса. В случае наличия уязвимости cipher О
можно обойтись без брутфорса хешей и сбросить пароль. Для этого нам понадобится утили та IPMitool. Сборка под GNU/Linux не вызывает вопросов. А вот под Windows придется устроить пляски с бубном в Cygwin
. Последовательност ь действий для добавленияадминистратора такая: 1. Смотрим, какие пользователи присутствуют, и используем следующий свободный ID. Ipmitool -I lanplus -с 0 -H 1.1.1.1 -U
Administrator -Р anypasswordhere user list
2. Устанавливаем логин нашего пользователя. Ipmitool -I lanplus -С 0 -Н 1.1.1.1 -U Administrator
-P anypasswordhere user set name 3. Задаем для него пароль. Ipmitool -I lanplus -С 0 -Н 1.1.1.1 -U Administrator -P
anypasswordhere user set password 4. Делаем его администратором. Ipmitool -I lanplus -С 0 -Н 1.1.1.1 -U
Administrator -Р anypasswordhere user priv 5. Активируем толь ко что созданную учетную запись. Ipmitool -I lanplus -C 0 -H 1.1.1.1 -U
Administrator -Р anypasswordhere user еnаble После того как хеши взломаны, пароли сброшены или же добавлен новый администратор, у тебя появляется возможность зайти через веб-интерфейс, по SSH на SMASH или подключиться к удаленному рабочему столу, а -ля KVM. Стоит упомянут ь такую вещь, как НР BladeSystem Onboard Administrator. НР BladeSystem представляет собой шасси, к которому подключаются блейд-серверы. Так вот, это шасси позволяет управлять централизованно блейд-серверами с помощью IPMI. При этом авторизация на «Подчиннные» IPMI происходит с помощью механизма SSO. Все, что тебе требуется, - это получить хеш пользователя с административными привилегиями и с помощью веб-интерфейса подключиться на интересующий тебя сервер. Еще одна интересная особенность, найденная в НР il04, - это возможность подключиться к серверу по KVM прямо из SMASH (читай: SSH) с помощью команды TEXTCONS. Это весьма полезно, когда закрыты порты 80, 443, 17990. Для этого понадобятся права администратора, но какая разница? Утилита доступна на GitHub. Очень проста в использовании: 1. Параметр -р используется, когда необходимо провести сканирование определенного диапазона. Комбинируя различные параметры, можно влиять на поведение программы. Например, при использовании вместе опций -d и -р программа будет пробовать получить хеши только с тех систем, которые отвечают на IРМl- пинги. При использовании только опции -d будет пытаться получить хеши со всех адресов, что обычно происходит нереально медленно. Если что-то вызывает сомнения, то можно использовать опцию -v 5 - программа будет выводить в удобном формате получаемые сообщения. Для компилирования под Linux понадобится тол ько GCC - gcc ipmicd.c -static -о ipmicd
. В случае использования на Windows компилировать следует с помощью MinGW gcc ipmicd.c -mno-ms-bitfields -lws2_32 -DMINGW
. ЗАКЛЮЧЕНИЕ
Пара слов о высоком: изучение возможностей и реализаций разными вендорами IPMl/BMC только начинается. Сюда можно включить не только веб -интерфейсили SMASH, но и драйверы для операционных систем, позволяющие взаимодействовать с технологиями удаленного управления сервером IPMI/ВМС из установленной системы. Внутренние сервисы, реализующие обмен информацией в IPMl/BMC. Под прицел может попасть даже «железная» реализация самого ВМС и как именно он управляет основным сервером. Администраторам же я рекомендую проверить все свои системы на наличие в них публичных уязвимостей и по возможности устранить эти уязвимости. Самая же главная рекомендация, которую я бы хотел дать читателем - уделяйте максимум внимания настройкам оборудования которым вы управляете. Часто задаваемые вопросы о IPMI в материнских платах Supermicro: зачем он нужен, особенности, наглядная демонстрация, подводные камни. Всю работу выполняет процессор BMC (Baseboard management controller) - он имеет собственную память и специализированную ОС (обычно на базе Linux). BMC использует USB шину для подключения виртуальных клавиатуры, мыши и приводов CD/DVD/FDD. Через другие шины осуществляется сбор показаний датчиков вращения вентиляторов, температуры, управление питанием, доступ к COM-порту (для удаленного доступа к последовательной консоли). BMC также занимается захватом и перенаправлением содержимого видеобуфера - в современных BMC уже интегрировано видеоядро, когда-то, в первых реализациях, BMC занимался оцифровкой аналогового сигнала с отдельного VGA-контроллера. Обмен данными с "внешним миром" происходит через ethernet (выделенный порт или один из портов размещенного на системной плате контроллера ethernet). В целях диагностики можно зайти через SSH, где вас будет ждать busybox. 3) Сколько это стоит?
Сетевые настройки можно поменять при необходимости на вкладке BMC Setting (помните, что можно по ошибке потерять удаленный доступ к серверу). Кстати, об удаленном доступе: используются следующие порты (их нужно будет пробросить через NAT или обеспечить способ доступа в менеджмент-сеть, например, через VPN): На вкладке KVM Console
можно увидеть самую полезную вещь - графическую консоль сервера. Там же находятся кнопки снятия скриншота, управления виртуальными носителями (Virtual Media), перехода в полноэкранный режим и дополнительная софт-клавиатура. Зачем она нужна, если есть аппаратная? Для различных комбинаций клавиш, которые по каким-то причинам не удается отправить на сервер с аппаратной клавиатуры, например классический Ctrl+Alt+Delete. Можно либо перенаправить локальный привод, либо подключить образ, что гораздо удобнее. Для появления соответствующего устройства в загрузочном меню BIOS может потребоваться перезагрузка. Переходим на вкладку Remote Control
, жмем Launch Console
и получаем в отдельном окне Redirection Viewer
, аналогичный по функционалу консоли в IPMIView.
Стоит добавить, что web-интерфейс не облегчает задачу доступа к консоли из внешней сети - Redirection Viewer
- это не Java-апплет, а отдельное Java приложение и использует те же порты для трафика видео, HID и виртуальных приводов: 5900, 5901, 5120, 5123.Мониторинг железа на сервере SuperMicro через IPMI и утилиту IPMICFG
Мониторинг сервера SuperMicro через IPMI
Мониторинг с помощью утилиты ipmicfg
Как установить ОС?
Web-интерфейс
Инструкция по работе с web-интерфейсом в старых версиях прошивок IPMI
IPMIView
Все вендоры стараются придерживаться этих спецификаций.
ВМС
- это обертка из железа для работы IPMI. Представляет собой одноплатный компьютер (system on а chip) с щупальцами в сенсорах основного. Каждый вендор сам выбирает, что за железо использовать и как его объединять, что естественно. Все наши примеры мы будем рассматривать на lntegrated Lights Out (iLO) от Hewlett-Packard (НР). НР iLO - это какраз связка BMC/IPMI. У других вендоров свои названия, реализации в железе и софте. Но, как правило, это одноплатный компьютер с процессором ARM и Linux на борту.
Основная функция подобных устройств - сделать жизнь админов более простой и удобной: пропадает необходимость бежать к серверу и жать кнопку Reset /ставить новую систему/ смотреть, почему он не грузится. Теперь можно подключиться к IPMl/BMC и сделать все это удаленно. К тому же появляется возможность получать информацию со всевозможных датчиков температуры,
напряжения и так далее, что также довольно удобно.
- веб - интерфейс (зависит от вендора) ;
- IPMI over LAN (UDP 623);
- из установленной системы на сервере (при условии, что установлены драйверы от производителя). Используемый софт: WMI под виндой, OpenlPMI, IPMltool под Linux.
Доступ к IPMI/ВМС средствами операционной системы при наличии максимальных привилегий возможен без использования пароля, то есть авторизация вообще не нужна. В этом случае злоумышленник просто создает административный аккаунтов IPMl/BMC. При потере доступа к серверу он заходит на IPMl/BMC и возвращает честно заработанное добро. Вообще, связь IPMl/BMC с основным компьютером до сих пор досконально не изучена. Это непаханое поле для поиска багов и фич. Учитывая количество вендоров, которые реализуют это в своих серверах, можно говорить о «богатом внутреннем мире».
Руководствуясь исследованием Дэна, уязвимости IPMl/BMC можно разделить на две большие категории:
· уязвимости протокола IPMI.
Уязвимость позволяет обойти аутентификацию. Присутствует только в IPMI 1.5. Эксплуатация дает возможность управлять устройством, просто активировав опцию отключения аутентификации. Привилегии различаются у разных вендоров, но обычно бывают максимальными.
- НР
- Dell
- Supermicro.
Открытый порт UDP 623, IPMI 1.5, логин существующего юзера.
Уязвимость позволяет обойти аутентификацию. Бага появилась с IPM I верси ей
2.0. В этой ревизии решили добавить шифрования. Для эксплуатации надо
знать логин валидной учетной записи, а вот пароль знать не обязательно -
можно указать любой.
- НР
- Dell
- Supermicro.
Уязвимость позволяет неавторизированному юзеру получить захешированные пароли пользователей для последующего брута. Бага появилась в спецификации IPMI версии 2.0
- НР
- Dell;
- Supermicro.
Кто-то называет это null user, кто-то - anonymous authentication. Кто-то разделяет эти две уязвимости, кто-то нет. По умолчанию существует null user / anonymous - «» (пустая строка). Если говорят null user, то пароль у него тоже пустой. Если говорят anonymous authentication, то пасс у него admin и во всем виновато IPMI Chips with ATEN-Software.
Дэн в своем исследовании считает это как две разные уязвимости. А в доке от Rapid7 об null user уже ни слова.
Dell
Supermicro (используют IPMI Chips with ATEN-Software).
В Supermicro присутствует сервис UPnP SSDP на порту UDP 1900. Он уязвим к переполнению буфера.
Supermicro.
Открытый порт 1900.
Спецификация IPMI 2.0 подразумевает, что где-то должны храниться пароли в открытом виде. В Supermicro они находятся в файлах /nv/PSBlock или /nv/PSStore, в зависимости от firmware.
Помимо этого, в реализациях ВМС на Nuvoton WPCM450 на ТСР-порту 49152 висит сервис, который позволяет читать содержимое файлов в директории /nv, например PSBlock, server.pem и так далее.
· Supermicro.
Shell-дocтyп
Исследователи досконально изучили ее, сделав при этом упор на механизмы аутентификации и шифрования. Уязвимость, связанная с произвольным выполнением кода в UРnР-сервисе в прошивке Supermicro (Supermicro IPMI UPnP Vulnerability), относится к CVE-2012-5958 (BoF в libupnp). Остальные же затронутые нами уязвимости найдены с помощью анализа прошивки Supermicro для материнских плат Supermicro Х9, причем упор делался именно на анализ кода, отвечающего за веб.
С помощью модуля ipmi_version, доступного в известном фреймворке Metasploit, можно просканировать периметр сети. Если ты уже находишься во внутреннем сегменте и устанавливать/использовать Metasploit нет возможности, то можно обойтись простенькой утилитой ipmiping или rmcpping.
Как только удалось обнаружить открытые IPMI, в первую очередь следует проверить их на уязвимость «Authentication Bypass via Cipher О» (смотри выше). Если она присутствует, то можно обойтись без дампа хешей пользо вателей и просто сбросить пароль администратору или добавить своего. Важно: для использования этой уязвимости необходимо знание логи на учетной записи, в нашем случае у учетной записи должны присутствовать административные привилегии. Для начала рассмотрим случай с дампом хеша пользователя и посл едующим его брутфорсом.
Особую ценность представляет переключатель KVM, так как реализует доступ непосредственно к самой консоли, тем самым позволяя получить доступ в BIOS, установить операционную систему и тому подобное. За реализацию переключателя KVM отвечает каждый вендор сам. Например, в НР
ilO4 для этого используются порты ТСР 17988 и 17990. У Dell iDRAC7 это порт ТСР 5900. Cisco ICM порт ТСР 2068.
Стать администратором не так сложно. Персонально для тебя, читатель, я подготовил программу ipmicd на С под Windows/Linux. Она позволяет сканировать диапазон адресов на наличие IPMl/BMC, а также дампит хеши (аналог ipmi_dumphashes из Metasploit’a). Программы созданы на тот случай, когда использовать Metasploit не самая удачная идея, например IPMl/BMC находятся где-то далеко, куда Metasploit не пробросишь.
2. Параметр -d указывает необходимость получить захешированный пароль.
3. Параметр -v N указывает степень логирования при работе 0..5. При N = 1 программа выдает фингерпринты.
1) Самый популярный миф о KVM-over-LAN - это то, что он "не нужен"
. Почему-то многие путают его с обычным удаленным доступом к текстовой/графической консоли ОС, т.е. "зачем нам KVM-over-LAN, если есть SSH, VNC, RDP и Radmin?"
Разница принципиальная: KVM-over-LAN - это не просто доступ к консоли ОС, он никак от ОС не зависит, это доступ к консоли непосредственно самого сервера (и не только к консоли, подробности будут ниже), т.е. мы можем, например: зайти в BIOS системной платы или доп. контроллера, установить ОС, настроить мониторинг сенсоров (что, опять-таки, очень важно - независимый от ОС) через SNMP и т.д.
2) Как это работает?
Работает достаточно просто, вот структурная схема (Supermicro последнее время использует, как правило Winbond или Nuvoton WPCM450:
Собственно, WPCM450 в продуктах Supermicro представляет собой систему на базе процессора ARM 926EJ-S, работающей под управлением ОС Linux на ядре 2.6.
В настоящее время Supermicro интегрирует IPMI BMC непосредственно на системные платы. Раньше использовались дополнительные модули (например - AOC-SIMSO+). Наличие IPMI BMC на плате Supermicro обозначает буквой F, например: X8DTi и X8DTi-F, и разница в цене не превышает $50, что уже является очевидным ответом на вопрос "нужно или нет", ведь внешний IP-KVM обойдется вам гораздо дороже. Ставить обычный KVM и каждый раз при необходимости что-нибудь переустановить или перепрошить идти в серверную - тоже не выход, это потеря времени, ведь ваш сервер может находится за десятки и сотни километров, да и, в конце концов - это просто неудобно.
4) Как это выглядит на практике?
Доступ к IPMI можно получить либо через IPMIView (специализированная утилита на Java, есть сборки под Windows и Linux) или через обычный браузер (при подключении к графической консоли запустится дополнительное java-приложение).
Рассмотрим IPMIView. Для начала в BIOS можно настроить ethernet-порт IPMI: по умолчанию стоит DHCP, но можно вручную выставить нужные IP/маску/шлюз, тэг VLAN (весь ужаленный менеджмент лучше выделить в отдельную подсеть из соображений безопасности и удобства).
Запускаем IPMIView и находим нужный сервер (можно просканировать диапазон адресов на предмет наличия IPMI), логин/пароль по умолчанию - ADMIN/ADMIN.
За здоровьем сервера можно наблюдать на вкладке Sensors
(показания температурных и вентиляторных датчиков вы увидите только при включенном сервере):
TCP:
UDP:
Вот несколько особенностей:
И заключительный абзац - использование виртуальных носителей.
Переключение раскладки в WinPE 3.0 не работает. Так что собирайте WinPE с английской раскладкой, для этого нужно добавить в скрипт сборки после монтирования Wim-образа следующую команду:
Dism /image:C:\winpe64\mount /Set-InputLocale:1033:00000409
"C:\winpe64\mount" - точка монтирования образа.
При желании можно заодно сменить локаль и язык интерфейса - смотрите документацию к WinPE.
P.S. Как сбросить пароль IPMI? Только при помощи консольной утилиты ipmicfg . Существует в версиях под DOS, Windows и Linux. Запуск ipmicfg -fd обнуляет все настройки и устанавливает логин/пароль пользователя с администраторскими правами в стандартные ADMIN/ADMIN.
Обновление от 18.04.2010
. В какой-то момент, после очередного обновления Java, попытка смонтировать iso образ в IPMIView начала приводить к его падению (Windows 7 64бит с последними обновлениями).Вышел новый релиз IPMIView (build 110412 от 12 апреля). Пока еще не проверял, исправлен ли там этот баг, так как можно пользоваться запуском консоли через web-интерфейс.
P.S. от 01.12.2011
. Дополнительная статья: .
P.S. от 06.10.2013. Похожая .
P.S. от 10.11.2013.
IPMI и безопасность.
P.S. от 20.06.2014.
Опять