
PoC original pour CVE-2023-30367
Le Multi-Remote Next Generation Connection Manager (mRemoteNG) est un logiciel libre qui permet aux utilisateurs de stocker et de gérer des configurations de connexions multi-protocoles pour se connecter à distance à des systèmes.
Les fichiers de configuration de mRemoteNG peuvent être stockés cryptés sur le disque. Les versions de mRemoteNG <= v1.76.20 et <= 1.77.3-dev chargent les fichiers de configuration en texte clair en mémoire (après les avoir déchiffrés si nécessaire) au démarrage de l'application, même si aucune connexion n'a encore été établie. Cela permet aux attaquants d'accéder au contenu des fichiers de configuration en texte clair via un dump mémoire et ainsi de compromettre les identifiants utilisateur lorsqu'aucune clé de cryptage de mot de passe personnalisée n'a été définie. Cela contourne également le paramètre de cryptage du fichier de configuration de connexion en vidant les configurations déjà déchiffrées de la mémoire.
Cette vulnérabilité a été assignée sous CVE-2023-30367.
Testée avec mRemoteNG 1.77.3.1784-NB et mRemoteNG 1.76.20 sur Windows 11 (allemand).
La découverte a été confirmée par Dimitrij Gorodeckij, l'un des développeurs de mRemoteNG, ici. Un correctif est encore en développement. Merci encore à Dimitrij Gorodeckij pour sa réponse rapide et sa coopération ! Espérons qu'il sera corrigé bientôt !
1. Utilisez des mots de passe/clés de cryptage de mot de passe de configuration forts (longs) :
En cas de dump mémoire, un attaquant accéderait aux fichiers de configuration en texte clair mais devrait quand même forcer brutalement la clé de cryptage des mots de passe.
Malheureusement, l'activation de l'option de cryptage du fichier de connexion n'aide pas à prévenir cette attaque car les fichiers de configuration de connexion de mRemoteNG sont déchiffrés à l'exécution.
2. Mettez à jour mRemoteNG vers une version supérieure à v1.77.3.1784-NB lorsqu'un correctif sera publié.
3. Pour empêcher l'exécution malveillante, par exemple de mRemoteNGDumper.exe, une liste blanche d'applications devrait être appliquée.
Veuillez noter que le cryptage du mot de passe de configuration et le cryptage du fichier de connexion sont des paramètres différents. Le cryptage du mot de passe de configuration est utilisé pour crypter le mot de passe dans le fichier de configuration uniquement, tandis que le cryptage du fichier de connexion est utilisé pour crypter l'ensemble du fichier de configuration.
Cette exploitation contourne le cryptage du fichier de connexion en vidant les configurations déjà déchiffrées de la mémoire. Celles-ci contiennent toujours des mots de passe cryptés qui peuvent être déchiffrés avec la clé par défaut mR3m. Si une clé/mot de passe de cryptage de mot de passe de configuration personnalisée a été définie, un attaquant devrait toujours deviner la clé personnalisée. (Voir la section mremoteng-decrypt.py)
git clone https://github.com/S1lkys/CVE-2023-30367-mRemoteNG-password-dumper.git ou téléchargez-le depuis GitHubmRemoteNG-password-dumperLa manière la plus simple de tester cela manuellement sur Windows est de créer un dump de processus en utilisant le gestionnaire de tâches de Windows en cliquant droit sur le processus mRemoteNG et en sélectionnant "Créer un fichier de dump". Le dump peut être ouvert dans VisualStudio Code. Recherchez ensuite vos valeurs de connexion configurées.
mRemoteNG Password Dumper est un outil simple de preuve de概念 utilisé pour vider les fichiers de configuration de la mémoire de mRemoteNG. Aucune exécution de code sur le système cible n'est nécessaire, seulement un dump mémoire. C'est une POC rapide, donc probablement pas très fiable ni robuste. Veuillez créer une pull request si vous trouvez un problème et le corrigez.
Les fichiers de configuration sont actuellement codés en dur comme ceci : (\<Node)(.*)(?=\/>)\/>
mremoteng_decrypt.py (Voir la section mremoteng-decrypt.py)J'ai ajouté une fonctionnalité de brute force à mremoteng-decrypt (Voir les remerciements).
Cela peut être utilisé pour forcer brutalement les clés de cryptage de mot de passe/configuration personnalisées de mRemoteNG. Si aucune clé personnalisée n'a été configurée, le script déchiffrera la configuration avec la clé par défaut mR3m. Ce script peut également être utilisé pour déchiffrer des fichiers de configuration avec des mots de passe de cryptage personnalisés. Voir aussi Démo.

Déchiffrer un fichier de configuration avec un mot de passe de cryptage personnalisé 123 : python3 mremoteng_decrypt.py -rf "C:\Users\mbzra\source\repos\mRemoteNG Dumper\dump\extracted_Configfile_mRemoteNG_0_09.07.2023.11.01_confCons.xml" -p 123
Déchiffrer une chaîne de mot de passe avec un mot de passe de cryptage personnalisé 123 : python3 mremoteng_decrypt.py -s "QHrcb7I0KHi6YLFXxv93jenrUmNj5qO30zTM9qXqRUd7ImVm5/ROU7CLQ5u7+7+iOiFrY2BtZSpJ8RrR3jV6LoE=" -p 123
Déchiffrer une chaîne de mot de passe sans mot de passe de cryptage personnalisé : python3 mremoteng_decrypt.py -s "yW0Ypq/cTcwfHwYxIiHgczcsIKU+jWlfnZBcTdKQImsMbBnP3SLv2h75Z7IAbkFOsD2YzBo2wGk2fhDLpRFH2y8="
Utilisation du brute force : python3 mremoteng_decrypt.py -s "[mot de passe de configuration crypté extrait]" -b y -w [chemin vers la wordlist]
Exemple de brute force : python3 mremoteng_decrypt.py -s "QHrcb7I0KHi6YLFXxv93jenrUmNj5qO30zTM9qXqRUd7ImVm5/ROU7CLQ5u7+7+iOiFrY2BtZSpJ8RrR3jV6LoE=" -b y -w .\wordli.txt
Cela dépend de votre modèle de menace. Si votre ordinateur est déjà infecté par un logiciel malveillant qui s'exécute en arrière-plan avec les privilèges de votre utilisateur, cette découverte n'aggrave pas vraiment votre situation. Cependant, il pourrait être plus facile pour le malware d'être furtif et d'éviter l'antivirus, car contrairement à KeeTheft ou KeeFarce, aucune injection de processus ou autre type d'exécution de code n'est nécessaire.
Si vous avez des raisons de soupçonner que quelqu'un pourrait obtenir un accès à votre ordinateur et effectuer une analyse médico-légale, cela pourrait être problématique.
Si vous utilisez le cryptage du fichier de configuration avec un mot de passe fort et que votre système est propre, vous devriez être tranquille. Personne ne peut voler vos mots de passe à distance via Internet avec cette seule découverte.
