
PoC originale per CVE-2023-30367
Multi-Remote Next Generation Connection Manager (mRemoteNG) è un software gratuito che consente agli utenti di memorizzare e gestire configurazioni di connessione multi-protocollo per connettersi remotamente ai sistemi.
I file di configurazione di mRemoteNG possono essere memorizzati in forma crittografata su disco. Le versioni di mRemoteNG <= v1.76.20 e <= 1.77.3-dev caricano i file di configurazione in testo semplice in memoria (dopo averli decifrati se necessario) all'avvio dell'applicazione, anche se nessuna connessione è stata ancora stabilita. Ciò consente agli aggressori di accedere al contenuto dei file di configurazione in chiaro tramite un dump della memoria e quindi compromettere le credenziali degli utenti quando non è stata impostata una chiave di crittografia personalizzata per la password. Questo bypassa anche l'impostazione di crittografia del file di connessione, scaricando configurazioni già decifrate dalla memoria.
Questa vulnerabilità è stata assegnata CVE-2023-30367.
Testato con mRemoteNG 1.77.3.1784-NB e mRemoteNG 1.76.20 su Windows 11 (tedesco).
La scoperta è stata confermata da Dimitrij Gorodeckij, uno degli sviluppatori di mRemoteNG, qui. Una correzione è ancora in fase di sviluppo. Grazie ancora a Dimitrij Gorodeckij per la sua rapida risposta e cooperazione! Si spera che venga risolto presto!
1. Usa password/chiavi di crittografia delle password di configurazione forti (lunghe):
In caso di dump della memoria, un aggressore avrebbe accesso ai file di configurazione in chiaro, ma dovrebbe comunque forzare la chiave di crittografia delle password.
Sfortunatamente, abilitare l'opzione di crittografia del file di connessione non aiuta a prevenire questo attacco poiché i file di configurazione della connessione di mRemoteNG vengono decifrati in fase di esecuzione.
2. Aggiorna a mRemoteNG superiore alla v1.77.3.1784-NB quando è stata rilasciata una correzione.
3. Per prevenire l'esecuzione dannosa di, ad esempio, mRemoteNGDumper.exe, dovrebbe essere applicata la whitelist delle applicazioni.
Tieni presente che la crittografia della password di configurazione e la crittografia del file di connessione sono impostazioni diverse. La crittografia della password di configurazione viene utilizzata per crittografare solo la password all'interno del file di configurazione, mentre la crittografia del file di connessione viene utilizzata per crittografare l'intero file di configurazione stesso.
Questo exploit bypassa la crittografia del file di connessione scaricando configurazioni già decifrate dalla memoria. Queste contengono ancora password crittografate che possono essere decifrate con la chiave predefinita mR3m. Se è stata impostata una chiave/password di crittografia personalizzata per la password di configurazione, un aggressore dovrebbe comunque indovinare la chiave personalizzata. (Vedi sezione mremoteng-decrypt.py)
git clone https://github.com/S1lkys/CVE-2023-30367-mRemoteNG-password-dumper.git o scaricalo da GitHubmRemoteNG-password-dumperIl modo più semplice per testare manualmente questo su Windows è creare un dump del processo utilizzando il task manager di Windows, facendo clic con il pulsante destro del mouse sul processo mRemoteNG e selezionando "Crea file di dump". Il dump può essere aperto in VisualStudio Code. Cerca quindi i valori della connessione configurata.
mRemoteNG Password Dumper è un semplice strumento di prova di concetto utilizzato per scaricare i file di configurazione dalla memoria di mRemoteNG. Non è richiesta l'esecuzione di codice sul sistema di destinazione, solo un dump della memoria. È una POC rapida, quindi probabilmente non molto affidabile e robusta. Per favore, crea una pull request se trovi un problema e lo risolvi.
I file di configurazione sono attualmente hardcodati in questo modo: (\<Node)(.*)(?=\/>)\/>
mremoteng_decrypt.py (Vedi sezione mremoteng-decrypt.py)Ho aggiunto una funzionalità di forza bruta a mremoteng-decrypt (Vedi ringraziamenti). Può essere utilizzata per forzare le chiavi di crittografia personalizzate della configurazione/password di mRemoteNG. Se non è stata configurata alcuna chiave personalizzata, lo script decifrerà la configurazione con la chiave predefinita mR3m. Questo script può anche essere utilizzato per decifrare file di configurazione con password di crittografia personalizzate. Vedi anche Demo.

Decifra il file di configurazione con password di crittografia personalizzata 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
Decifra la stringa della password con password di crittografia personalizzata 123: python3 mremoteng_decrypt.py -s "QHrcb7I0KHi6YLFXxv93jenrUmNj5qO30zTM9qXqRUd7ImVm5/ROU7CLQ5u7+7+iOiFrY2BtZSpJ8RrR3jV6LoE=" -p 123
Decifra la stringa della password senza password di crittografia personalizzata: python3 mremoteng_decrypt.py -s "yW0Ypq/cTcwfHwYxIiHgczcsIKU+jWlfnZBcTdKQImsMbBnP3SLv2h75Z7IAbkFOsD2YzBo2wGk2fhDLpRFH2y8="
Utilizzo della forza bruta: python3 mremoteng_decrypt.py -s "[extracted encrypted configuration password]" -b y -w [path to wordlist]
Esempio di forza bruta: python3 mremoteng_decrypt.py -s "QHrcb7I0KHi6YLFXxv93jenrUmNj5qO30zTM9qXqRUd7ImVm5/ROU7CLQ5u7+7+iOiFrY2BtZSpJ8RrR3jV6LoE=" -b y -w .\wordli.txt
Dipende dal tuo modello di minaccia. Se il tuo computer è già infetto da malware che viene eseguito in background con i privilegi del tuo utente, questa scoperta non peggiora molto la tua situazione. Tuttavia, potrebbe essere più facile per il malware rimanere nascosto e eludere l'antivirus, poiché a differenza di KeeTheft o KeeFarce, non è necessaria alcuna iniezione di processo o altro tipo di esecuzione di codice.
Se hai un ragionevole sospetto che qualcuno possa ottenere accesso al tuo computer e condurre un'analisi forense, questo potrebbe essere grave.
Se usi la crittografia del file di configurazione con una password forte e il tuo sistema è pulito, dovresti essere a posto. Nessuno può rubare le tue password da remoto via internet solo con questa scoperta.
