
Original-PoC für CVE-2023-30367
Multi-Remote Next Generation Connection Manager (mRemoteNG) ist eine freie Software, die es Benutzern ermöglicht, Multi-Protokoll-Verbindungskonfigurationen zu speichern und zu verwalten, um sich remote mit Systemen zu verbinden.
mRemoteNG-Konfigurationsdateien können verschlüsselt auf der Festplatte gespeichert werden. mRemoteNG Version <= v1.76.20 und <= 1.77.3-dev lädt Konfigurationsdateien im Klartext in den Arbeitsspeicher (nach Entschlüsselung falls erforderlich) beim Programmstart, auch wenn noch keine Verbindung hergestellt wurde. Dies ermöglicht Angreifern, auf den Inhalt von Konfigurationsdateien im Klartext durch einen Speicherauszug zuzugreifen und somit Benutzeranmeldedaten zu kompromittieren, wenn kein benutzerdefinierter Passwort-Verschlüsselungsschlüssel festgelegt wurde. Dies umgeht auch die Einstellung zur Verschlüsselung der Verbindungskonfigurationsdatei, indem bereits entschlüsselte Konfigurationen aus dem Speicher ausgelesen werden.
Diese Sicherheitslücke wurde als CVE-2023-30367 eingestuft.
Getestet mit mRemoteNG 1.77.3.1784-NB und mRemoteNG 1.76.20 unter Windows 11 (Deutsch).
Der Fund wurde von Dimitrij Gorodeckij, einem der Entwickler von mRemoteNG, hier bestätigt. Ein Fix ist noch in Entwicklung. Nochmals vielen Dank an Dimitrij Gorodeckij für seine schnelle Reaktion und Zusammenarbeit! Hoffentlich wird es bald behoben!
1. Verwenden Sie starke (lange) Konfigurations-Passwort-Verschlüsselungspasswörter/-schlüssel:
Im Falle eines Speicherauszugs hätte ein Angreifer zwar Zugriff auf Konfigurationsdateien im Klartext, müsste aber dennoch den Passwort-Verschlüsselungsschlüssel erraten.
Leider hilft das Aktivieren der Option zur Verschlüsselung der Verbindungsdatei nicht, diesen Angriff zu verhindern, da mRemoteNG-Verbindungskonfigurationsdateien zur Laufzeit entschlüsselt werden.
2. Aktualisieren Sie mRemoteNG auf eine Version größer als v1.77.3.1784-NB, sobald ein Fix veröffentlicht wurde.
3. Um die bösartige Ausführung von z.B. mRemoteNGDumper.exe zu verhindern, sollte eine Anwendungs-Whitelist durchgesetzt werden.
Bitte beachten Sie, dass die Konfigurationspasswort-Verschlüsselung und die Verschlüsselung der Verbindungsdatei unterschiedliche Einstellungen sind. Die Konfigurationspasswort-Verschlüsselung wird verwendet, um nur das Passwort innerhalb der Konfigurationsdatei zu verschlüsseln, während die Verschlüsselung der Verbindungsdatei die gesamte Konfigurationsdatei selbst verschlüsselt.
Dieser Exploit umgeht die Verschlüsselung der Verbindungsdatei, indem er bereits entschlüsselte Konfigurationen aus dem Speicher ausliest. Diese enthalten noch verschlüsselte Passwörter, die mit dem Standardschlüssel mR3m entschlüsselt werden können. Wenn ein benutzerdefinierter Konfigurationspasswort-Verschlüsselungsschlüssel/ein benutzerdefiniertes Passwort festgelegt wurde, müsste ein Angreifer den benutzerdefinierten Schlüssel erraten. (Siehe mremoteng-decrypt.py Abschnitt)
git clone https://github.com/S1lkys/CVE-2023-30367-mRemoteNG-password-dumper.git oder von GitHub herunterladenmRemoteNG-password-dumperDer einfachste Weg, dies manuell unter Windows zu testen, ist die Erstellung eines Prozess-Dumps mit dem Windows Task-Manager, indem Sie mit der rechten Maustaste auf den mRemoteNG-Prozess klicken und "Dump-Datei erstellen" auswählen. Der Dump kann in VisualStudio Code geöffnet werden. Suchen Sie dann nach Ihren konfigurierten Verbindungswerten.
mRemoteNG Password Dumper ist ein einfaches Proof-of-Concept-Tool, das verwendet wird, um Konfigurationsdateien aus dem Speicher von mRemoteNG auszulesen. Es ist keine Codeausführung auf dem Zielsystem erforderlich, nur ein Speicherauszug. Es ist ein schneller POC, daher wahrscheinlich nicht sehr zuverlässig und robust. Bitte erstellen Sie einen Pull-Request, falls Sie ein Problem finden und beheben.
Configuration files are currently hardcoded like this: (\<Node)(.*)(?=\/>)\/>
mremoteng_decrypt.py (Siehe mremoteng-decrypt.py Abschnitt)Ich habe eine Brute-Force-Funktionalität zu mremoteng-decrypt hinzugefügt (siehe Danksagungen).
Diese kann verwendet werden, um benutzerdefinierte mRemoteNG-Konfigurations-/Passwort-Verschlüsselungsschlüssel zu erraten. Wenn kein benutzerdefinierter Schlüssel konfiguriert wurde, entschlüsselt das Skript die Konfiguration mit dem Standardschlüssel mR3m. Dieses Skript kann auch zum Entschlüsseln von Konfigurationsdateien mit benutzerdefinierten Verschlüsselungspasswörtern verwendet werden. Siehe auch Demo.

Konfigurationsdatei mit benutzerdefiniertem Verschlüsselungspasswort 123 entschlüsseln: 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
Passwort-Zeichenfolge mit benutzerdefiniertem Verschlüsselungspasswort 123 entschlüsseln: python3 mremoteng_decrypt.py -s "QHrcb7I0KHi6YLFXxv93jenrUmNj5qO30zTM9qXqRUd7ImVm5/ROU7CLQ5u7+7+iOiFrY2BtZSpJ8RrR3jV6LoE=" -p 123
Passwort-Zeichenfolge ohne benutzerdefiniertes Verschlüsselungspasswort entschlüsseln: python3 mremoteng_decrypt.py -s "yW0Ypq/cTcwfHwYxIiHgczcsIKU+jWlfnZBcTdKQImsMbBnP3SLv2h75Z7IAbkFOsD2YzBo2wGk2fhDLpRFH2y8="
Brute-Force-Verwendung: python3 mremoteng_decrypt.py -s "[extrahierte verschlüsselte Konfigurationspasswort]" -b y -w [Pfad zur Wortliste]
Brute-Force-Beispiel: python3 mremoteng_decrypt.py -s "QHrcb7I0KHi6YLFXxv93jenrUmNj5qO30zTM9qXqRUd7ImVm5/ROU7CLQ5u7+7+iOiFrY2BtZSpJ8RrR3jV6LoE=" -b y -w .\wordli.txt
Hängt von Ihrem Bedrohungsmodell ab. Wenn Ihr Computer bereits mit Malware infiziert ist, die im Hintergrund mit den Berechtigungen Ihres Benutzers läuft, verschlechtert dieser Fund Ihre Situation nicht wesentlich. Allerdings könnte es für die Malware einfacher sein, unauffällig zu bleiben und das Antivirenprogramm zu umgehen, da im Gegensatz zu KeeTheft oder KeeFarce keine Prozessinjektion oder andere Art von Codeausführung erforderlich ist.
Wenn Sie einen begründeten Verdacht haben, dass jemand Zugang zu Ihrem Computer erhalten und forensische Analysen durchführen könnte, könnte das problematisch sein.
Wenn Sie die Konfigurationsdateiverschlüsselung mit einem starken Passwort verwenden und Ihr System sauber ist, sollten Sie sicher sein. Niemand kann allein mit diesem Fund Ihre Passwörter über das Internet fernstehlen.
