Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ipmi — Outils IPMI issus des travaux de la DARPA | Kitploit
Outils/GitHubGitHub/zenfish/ipmi
Cassage de Mots de PasseReconnaissanceCartographie RéseauScan de PortsAnalyse des VulnérabilitésAudit de ConfigurationCollecte d'InformationsTests d'IntrusionSécurité MatérielleAuthentification
GitHub
76637il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
zenfish/ipmi

ipmi

Outils IPMI issus des travaux de la DARPA

Voir le dépôt

J'ai écrit un logiciel pour explorer IPMI ; voici quelques résultats. Je pensais suivre le cycle habituel : détection, récupération de données et audit. Chacun de ces aspects s'est révélé être un problème assez intéressant en soi, du moins pour moi.

**BTW/FYI ** - J'ai publié un nouvel outil pour explorer IPMI - https://github.com/zenfish/zipmi - ainsi qu'un ensemble de recettes/images/etc. Qemu pour exécuter des BMC en tant que systèmes virtuels sous Qemu à l'adresse https://github.com/zenfish/zbmc.

Site web IPMI

Les articles et autres documents de http://fish2.com/ipmi

html

Cassage de mots de passe

Voici un petit programme Perl qui tente de deviner un compte sur un BMC distant, d'en extraire le hash, puis d'essayer de casser son mot de passe (haché en HMAC). J'ai rédigé un petit texte à ce sujet pour les curieux. Abondamment commenté, il pourra peut-être être utile.

Obtenir les chiffrements

La spécification IPMI indique que l'on peut obtenir le chiffrement d'un système distant sans aucune authentification, mais je ne connais aucun outil qui le fasse réellement (ils exigent tous une authentification, bien sûr vous pourriez saisir les octets hexadécimaux bruts si vous le souhaitiez !) J'ai donc écrit ce petit outil pour le faire ; il suit essentiellement la sortie d'ipmitool ; ce faisant, je pense avoir trouvé un bug dans cet utilitaire (sur la dernière ligne, parfois les systèmes émettent des déchets qui semblent être mal interprétés), mais qui sait, je n'ai pas assez de systèmes pour tester. Bref... ipmi-get-ciphers.py.

Si ce n'est rien d'autre, utile pour repérer les systèmes Cipher0 (note - cela signale simplement les chiffrements qui sont pris en charge - cela ne signifie pas qu'ils sont réellement activés), mais il y a des choses intéressantes dans la nature.

Obtenir les détails d'authentification

Deux programmes ici, l'un est un simple sondeur distant en Python (je commence à détester Perl, je vous le dis) et un second qui utilise les utilitaires de FreeIPMI pour récupérer les données de configuration authentifiées.

Un petit programme Python (plus de 50 % de commentaires en ligne, 2,5k compressé en gzip) qui envoie un seul paquet à un BMC et analyse la réponse. Que peut-on faire avec un seul paquet, pourrait-on se demander ? Plus de 10 tests de sécurité différents pour IPMI, pour commencer. Eh bien, pour commencer et pour finir, ce n'est qu'un paquet :) Nécessite Python, un BMC et un chemin ouvert vers le port UDP 623 pour fonctionner. L'utilisation est simplement « ipmi-get-auth.py target ».

ipmi-get-auth.py / Une très brève description

En poussant à l'extrême... eh bien, voici une sorte de méga version de ce qui précède qui le fait pour tous les canaux, tous les privilèges, tous... enfin, vous voyez l'idée. Pour les monomaniaques (lisez les commentaires ou l'article que j'ai écrit à ce sujet pour comprendre pourquoi il fait ce qu'il fait !)

mega_chan.py / Mega mega mega ... chan chan chan...

Obtenir l'ID de périphérique (GUID)

Et voici un simple programme pour envoyer un paquet Get Device ID (voir p250 de la spécification IPMI v 2) à un système. Cela devrait, en théorie, fonctionner sans authentification. Dans une petite enquête, environ 90 % des systèmes ont répondu à cela (mais pas tous avec des informations valides !) Vous pouvez, parfois, obtenir le fournisseur et d'autres informations, comme les numéros de modèle et autres, mais le plus intéressant est en fait d'obtenir un ID unique, traditionnellement une chose difficile à obtenir via le réseau.

get-ipmi-guid.py / Get Device ID

Extraire les mots de passe d'un fichier de mots de passe binaire SuperMicro

Supermicro a eu quelques problèmes de divulgation de fichiers de mots de passe depuis son BMC - par exemple, voir ceci et d'autres articles :

a-penetration-testers-guide-to-ipmi

Pour utiliser ce script, il suffit de saisir :

dump_SM.py password_file

Fonctionne chez moi, aucune garantie implicite, explicite, etc.

Détection

Eh bien, si vous pouvez communiquer avec le port UDP 623, il est assez simple de déterminer si un système distant exécute IPMI. Toutefois, à moins de vous trouver à l'intérieur d'un centre de données, la plupart des gens bloquent l'UDP. Et même s'ils ne le font pas... le scan UDP est à peu près aussi lent qu'on peut l'imaginer. J'utilise donc actuellement deux méthodes de base, en m'appuyant sur le vénérable Nmap et ipmiping (issu des outils GNU FreeIPMI). La chose la plus simple à faire est :

  • Utiliser ipmiping pour demander à un système distant s'il parle IPMI ou non. Une réponse positive est l'indication la plus forte qu'un système parle IPMI (mais rien n'est certain !) Plus techniquement, il envoie deux appels IPMI Get Channel Authentication Capabilities via un datagramme de requête Get Channel Authentication Capabilities sur le port UDP 623 (deux requêtes puisqu'il utilise UDP, et les connexions ne sont pas garanties.)
    </p> <p>
    
    Comme Nmap est bien plus efficace pour scanner des réseaux à grande échelle
    qu'ipmiping, cette méthode n'est utilisée que si Nmap indique qu'un hôte
    a le port UDP 623 ouvert.
    
    </p> <p>
    
    Pour le meilleur ou pour le pire, ce port est souvent bloqué, si bien que la plupart du
    temps d'autres méthodes sont plus susceptibles de déterminer indirectement si
    IPMI est en cours d'exécution ou non.
    
  • La seconde méthode est un peu floue, et repose sur un peu d'induction (autrement dit de la devinette). Nmap scanne les ports connus pour être associés à IPMI et aux ajouts des constructeurs ; l'UDP 623 est évident (le port IPMI par défaut), mais il existe une variété de ports (à la fois UDP et TCP) qui, pris isolément, pourraient ne pas vous donner immédiatement une réponse, mais qui, pris dans leur ensemble, peuvent fortement indiquer sa présence. TFTP, SNMP, SSH/SMASH, VNC, et bien d'autres figurent parmi ceux-ci.
    </p> <p>
    
    Les ports sont pondérés selon leur capacité indicative et selon que
    Nmap les trouve ouverts, filtrés, ou dans d'autres états.
    
    </p> <p>
    
    Nmap peut également afficher les bannières des services auxquels il se connecte. J'utilise
    des expressions régulières pour traquer les cibles - par exemple les chaînes
    "iLO" et "DRAC" sont de bons indicateurs qu'un système pourrait exécuter
    le service Integrated Lights Out de HP, ou iLO.
    
    </p> <p>
    
Télécharger l’outil