
PoC original para CVE-2023-30367
Multi-Remote Next Generation Connection Manager (mRemoteNG) es un software libre que permite a los usuarios almacenar y gestionar configuraciones de conexión multiprotocolo para conectarse remotamente a sistemas.
Los archivos de configuración de mRemoteNG pueden almacenarse cifrados en el disco. Las versiones de mRemoteNG <= v1.76.20 y <= 1.77.3-dev cargan los archivos de configuración en texto plano en memoria (tras descifrarlos si es necesario) al iniciar la aplicación, incluso si aún no se ha establecido ninguna conexión. Esto permite a los atacantes acceder al contenido de los archivos de configuración en texto plano mediante un volcado de memoria y, por tanto, comprometer las credenciales del usuario cuando no se ha establecido una clave de cifrado de contraseñas personalizada. También elude el ajuste de cifrado de archivos de conexión al volcar desde memoria configuraciones ya descifradas.
A esta vulnerabilidad se le asignó CVE-2023-30367.
Probado con mRemoteNG 1.77.3.1784-NB y mRemoteNG 1.76.20 en Windows 11 (alemán).
El hallazgo fue confirmado por Dimitrij Gorodeckij, uno de los desarrolladores de mRemoteNG, aquí. La corrección aún está en desarrollo. ¡Gracias de nuevo a Dimitrij Gorodeckij por su rápida respuesta y cooperación! ¡Esperemos que se solucione pronto!
1. Usa contraseñas/claves de cifrado de contraseñas de configuración fuertes (largas):
En caso de un volcado de memoria, un atacante obtendría acceso a los archivos de configuración en texto plano, pero aún tendría que aplicar fuerza bruta a la clave de cifrado de las contraseñas.
Desafortunadamente, habilitar la opción de cifrado de archivos de conexión no ayuda a prevenir este ataque, ya que los archivos de configuración de conexiones de mRemoteNG se descifran en tiempo de ejecución.
2. Actualiza a una versión de mRemoteNG posterior a v1.77.3.1784-NB cuando se haya publicado una corrección.
3. Para prevenir la ejecución maliciosa de, p. ej., mRemoteNGDumper.exe, se debe aplicar la lista blanca de aplicaciones.
Ten en cuenta que el cifrado de contraseñas de configuración y el cifrado de archivos de conexión son ajustes diferentes. El cifrado de contraseñas de configuración se utiliza para cifrar únicamente la contraseña dentro del archivo de configuración, mientras que el cifrado de archivos de conexión se utiliza para cifrar todo el archivo de configuración en sí.
Este exploit elude el cifrado de archivos de conexión al volcar desde memoria configuraciones ya descifradas. Estas aún contienen contraseñas cifradas que pueden descifrarse con la clave predeterminada mR3m. Si se ha establecido una clave/contraseña personalizada de cifrado de contraseñas de configuración, un atacante aún tendría que adivinar la clave personalizada. (Ver la sección mremoteng-decrypt.py)
git clone https://github.com/S1lkys/CVE-2023-30367-mRemoteNG-password-dumper.git o descárgalo desde GitHubmRemoteNG-password-dumperLa forma más sencilla de probar esto manualmente en Windows es crear un volcado de proceso usando el administrador de tareas de Windows, haciendo clic derecho en el proceso de mRemoteNG y seleccionando "Create dump file". El volcado se puede abrir en VisualStudio Code. Busca entonces tus valores de conexión configurados.
mRemoteNG Password Dumper es una herramienta simple de prueba de concepto utilizada para volcar archivos de configuración de la memoria de mRemoteNG. No se requiere ejecución de código en el sistema objetivo, solo un volcado de memoria. Es un POC rápido, por lo que probablemente no sea muy fiable ni robusto. Si encuentras un problema y lo arreglas, crea una pull request.
Actualmente, los archivos de configuración están codificados de esta manera: (\<Node)(.*)(?=\/>)\/>
mremoteng_decrypt.py (Ver la sección mremoteng-decrypt.py)Añadí una funcionalidad de fuerza bruta a mremoteng-decrypt (Ver agradecimientos).
Esto se puede utilizar para aplicar fuerza bruta a claves de cifrado de configuración/contraseña personalizadas de mRemoteNG. Si no se ha configurado una clave personalizada, el script descifrará la configuración con la clave predeterminada mR3m. Este script también se puede utilizar para descifrar archivos de configuración con contraseñas de cifrado personalizadas. Ver también Demo.

Descifrar archivo de configuración con contraseña de cifrado personalizada 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
Descifrar cadena de contraseña con contraseña de cifrado personalizada 123: python3 mremoteng_decrypt.py -s "QHrcb7I0KHi6YLFXxv93jenrUmNj5qO30zTM9qXqRUd7ImVm5/ROU7CLQ5u7+7+iOiFrY2BtZSpJ8RrR3jV6LoE=" -p 123
Descifrar cadena de contraseña sin contraseña de cifrado personalizada: python3 mremoteng_decrypt.py -s "yW0Ypq/cTcwfHwYxIiHgczcsIKU+jWlfnZBcTdKQImsMbBnP3SLv2h75Z7IAbkFOsD2YzBo2wGk2fhDLpRFH2y8="
Uso de fuerza bruta: python3 mremoteng_decrypt.py -s "[extracted encrypted configuration password]" -b y -w [path to wordlist]
Ejemplo de fuerza bruta: python3 mremoteng_decrypt.py -s "QHrcb7I0KHi6YLFXxv93jenrUmNj5qO30zTM9qXqRUd7ImVm5/ROU7CLQ5u7+7+iOiFrY2BtZSpJ8RrR3jV6LoE=" -b y -w .\wordli.txt
Depende de tu modelo de amenazas. Si tu ordenador ya está infectado con malware que se ejecuta en segundo plano con los privilegios de tu usuario, este hallazgo no empeora mucho tu situación. Sin embargo, podría ser más fácil que el malware sea sigiloso y evada el antivirus, ya que, a diferencia de KeeTheft o KeeFarce, no es necesaria la inyección de procesos ni ningún otro tipo de ejecución de código.
Si tienes una sospecha razonable de que alguien podría obtener acceso a tu ordenador y realizar un análisis forense, esto podría ser malo.
Si usas el cifrado de archivos de configuración con una contraseña fuerte y tu sistema está limpio, deberías estar bien. Nadie puede robar tus contraseñas de forma remota a través de internet solo con este hallazgo.
