
Un faux hôte qui peut être « géré » par Dell OMSA, vous permettant de contourner l'écran de connexion.
Un hôte factice qui peut être « géré » par Dell OMSA, vous permettant de dépasser l'écran de connexion, et servant éventuellement de point de départ pour du fuzzing ou d'autres tests.
En recherchant des vulnérabilités potentielles¹ dans Dell OpenManage Server Administrator, je m'intéressais à deux choses :
ne pas avoir à trimballer un serveur Dell pour lequel j'avais des identifiants admin, afin de pouvoir facilement exploiter des vulnérabilités qui nécessitaient simplement de passer l'écran de connexion¹, et
voir si de nouvelles vulnérabilités pouvaient résulter d'un serveur « factice » (nœud géré) que je contrôlais, qui répondrait de manière inattendue et malveillante aux requêtes d'OMSA.
¹Comme https://www.exploit-db.com/exploits/39486/ et au moins un XXE
Un peu de code Java vraiment vite fait et sale, destiné à écouter les requêtes d'OMSA et à répondre comme vous le souhaitez. Quand j'ai écrit ce code au départ, il ne comportait une réponse que pour deux requêtes envoyées pendant le processus de connexion, ce qui suffisait à vous faire entrer² dans une instance d'OMSA en tant qu'admin « véritable »³. Si vous voulez cibler d'autres types de requêtes, fouillez dans l'application, observez quelles données POST OMSA envoie, comprenez ce qui est attendu en retour, construisez une réponse de votre choix et intégrez cette logique dans ce code.
²Juste après une connexion réussie, OMSA vous redirige vers une page de démarrage qui déclenche un déluge d'autres requêtes. Vous voudrez arrêter votre navigateur, car OMSA a tendance à vous rediriger vers l'écran de connexion lorsqu'il rencontre des erreurs, et il le fera si ce code n'a pas été modifié pour gérer ces requêtes ultérieures, et ne répond pas de manière appropriée.
³Il semble y avoir deux ensembles de droits distincts, et selon le code que vous
trifouillez, l'ensemble utilisé peut varier. Seuls trois bits semblent utilisés par
ensemble, donc 7 (4 + 2 + 1) représente les droits maximum de chaque ensemble. Un ensemble occupe
les 16 bits supérieurs d'un entier 32 bits, tandis que le second ensemble occupe les bits inférieurs.
En fin de compte, le nœud géré factice répond avec 7 + (7 << 16). Si votre intention est
de tester si OMSA restreint l'accès à certaines ressources en fonction des droits utilisateur, vous pourriez
choisir de modifier cette valeur.
Depuis le 31 mai 2016, il existe également une réponse pour exploiter un XXE. OMSA essaie de filtrer les requêtes URL à l'apparence malveillante, mais ne semble pas aussi paranoïaque à propos des données qu'il reçoit d'un nœud géré.
Ce code n'a absolument pas vocation à vous aider à gérer vos serveurs Dell, ni aucun autre serveur. Bien que vous puissiez essayer de réimplémenter toute la sauce secrète de Dell, cela est bien loin de l'intention de ce code. Si, contrairement à ce code, vous avez l'intention de reproduire fidèlement les comportements de Dell en réponse aux requêtes conçues par Dell, vous voudrez peut-être consulter un avocat, car Oracle v Google ( https://www.eff.org/cases/oracle-v-google ) ou d'autres questions juridiques pourraient s'appliquer.
Le but final est d'avoir le servlet fakedell.XMLResponder accessible à
https://[yourIP]:5986/wsman
Des tests supplémentaires avec des versions plus anciennes d'OMSA suggèrent que vous voudrez aussi que ce servlet
soit accessible à https://[yourIP]:443/wsman
Le serveur doit utiliser un certificat auto-signé et, lors de la connexion à OMSA, vous fournirez votre IP comme hôte distant à gérer et vous choisirez d'ignorer les avertissements de certificat.
Le web.xml fourni suppose qu'il s'agit de l'application racine et mappe le servlet vers /wsman.
Vous devrez peut-être l'adapter à votre configuration.
Vous pouvez choisir de faire journaliser tout le trafic entrant/sortant par le serveur Java ou un autre outil. Par exemple, j'ai fait écouter Tomcat sur le port 8080, stunnel sur le port 5986, et j'ai utilisé Wireshark pour capturer tout le trafic du port 8080 sur l'interface loopback.
Amusez-vous bien~
Si vous avez de bonnes raisons de demander une licence alternative, envoyez-moi un message et nous pourrons en discuter. (Bien qu'honnêtement, ceci étant plus qu'autre chose un petit PoC et un squelette de code, vous pourriez probablement le recréer assez facilement.)
Sinon,
FakeDellOM
Copyright (C) 2016 Harrison Neal, [email protected]
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.