Vulnerabilidades en SolarWinds Orion y Serv-U FTP permite control total del sistema

04/02/2021

En esta nota se analizarán tres nuevas fallas de seguridad que recientemente se detectaron en varios productos SolarWinds realizadas por el equipo de Trustwave. Las tres vulnerabilidades son graves, siendo la más crítica una que permite la ejecución remota de código con elevación de privilegios. De acuerdo con lo que Trustwave ha visto, ninguna de las vulnerabilidades ha sido fue utilizada durante el ataque reciente a SolarWinds o esta siendo utilizada actualmente. Sin embargo, dada la criticidad de estos fallos, se recomienda que los usuarios afectados actualicen tan pronto como sea posible. Trustwave cuenta con una prueba de concepto a las fallas mencionadas, pero no la hará pública hasta el 9 de febrero.

Vulnerabilidad en Plataforma SolarWinds Orion (CVE-2021-25274): Mensajes en cola, procesados deserializado y explotado

Debido a los recientes accesos a SolarWinds, se revisaron productos de SolarWinds basados en Orion. SolarWinds ofrece la descarga de versiones de prueba, por lo que se descargó e instaló User Device Tracker en una maquina virtual con Windows Server 2019. Como parte de la instalación, se tiene una instalación de Microsoft Message Queue (MSMQ), la cual se ha utilizado en las últimas dos décadas. Llamó nuestra atención que esta tecnología no es instalada en los últimos sistema de Windows. Después, la instalación sugirió instalar Microsoft SQL Server Express para la base de datos, pero se optó por usar una instancia existente de Microsoft SQL Server. Después de unos pasos adicional se contó con el software instalado y ejecutándose.

Con la instalación de MSMQ, la primera cosa que se intentó fue abrir el administrador de computadora para revisar lo que contaba bajo Message Queuing, como se observa en la siguiente figura.

Figura.1 SolarWinds Orion Collector utiliza MSMQ.

Como se puede observar, hay un lista de colas privadas, y cada un de estas tiene un problema en específico.

Figura 2. La seguridad no es implementada en las colas.

Es bastante difícil pasar por alto la alerta mostrada en la cola, como en todas las colas mostradas, no se requiere estar autenticado para utilizarlas. En resumen, usuarios no autenticados pueden enviar mensajes a las colas en el puerto 1801. Se revisó el código que maneja los mensajes entrantes, desafortunadamente, resultó ser víctima de la deserialización. Una simple prueba de concepto (PoC), la cual será liberada el 9 de febrero, permite ejecución remota de código, usuarios sin privilegios podrían combinar estos dos fallos. Debido a que el procesamiento de mensajes se ejecuta como un servicio de Windows utilizando la cuenta LocalSystem, es posible obtener un control total del sistema operativo.

Después de que la actualización es aplicada, hay una paso de validación de una firma digital cuando se reciben mensajes para que los mensajes que no contengan una firma o no estén firmados con un certificado por instalación no se procesen más. Por otro lado, MSMQ no está autenticado y permite que cualquiera le envíe mensajes. 

Vulnerabilidad en la plataforma SolarWinds Orion (CVE-2021-25275). Credenciales de la base de datos para todos.

El siguiente paso fue investigar cómo SolarWinds asegura las credenciales para la base de datos, debido a que la seguridad en la base de datos es un área de investigación que importa mucho. Después de una simple búsqueda de cadenas de texto con grep en los archivos instalados, se detectó un archivo como se muestra en la siguiente figura. 

Figura 3. Archivo de configuración con credenciales de la base de datos utilizada por Orion.

Los permisos en el archivo son para todos los usuarios autenticados de manera local, como se muestra a continuación.

Figura 4. Usuarios autenticados pueden leer el contenido del archivo.

Dentro del archivo podemos encontrar las credenciales para la base de datos utilizada por SolarWinds Orion con el identificador SOLARWINDS_ORION.

Figura 5. Dentro del archivo de configuraciones se encuentran las credenciales utilizadas por la base de datos de Orion.

Paso un tiempo para descifrar la contraseña, pero básicamente es una frase. Al final, los usuarios sin privilegios que puedan iniciar sesión de manera local o mediante RDP podrán ejecutar el código descifrado y obtener la contraseña sin cifrar para el usuario de SolarWinds Orion en la base de datos. Se está deteniendo todo el código de las Pruebas de Concepto (PoC) con el fin de darle a los usuarios un poco de tiempo adicional para actualizar, pero será posible probar lo antes mencionado una vez liberada la PoC el próximo 9 de febrero. El siguiente paso es conectar a Microsoft SQL Server usando la cuenta recuperada, y en este punto, tenemos control total sobre la base de datos SOLARWINDS_ORION. Con esto, cualquiera puede obtener información o agregar nuevos usuarios con privilegios administrativos para usarlo dentro de los productos SolarWinds Orion.

Figura 6. Después de usar una utilería de descifrado, pudimos conectarnos a la base de datos.

Como se mencionó al inició, se realizó la prueba en una versión de prueba y cuando se verificó la actualización se observó que sí se protege el archivo SWNetPerfMon.DB, pero no se protege el archivo SWNetPerfMon.DB.Eval encontrando en la versión de prueba.

Esto concluye esta sección sobre archivos de configuración almacenados de manera insegura.

Vulnerabilidad en SolarWinds Serv-U FTP (CVE-2021-25276) – FTP Server: Déjame agregar un administrador

Finalmente, se revisó otro producto de SolarWinds, Serv-U FTP para Windows. Las cuentas para este servicio se almacenan en disco en archivos separados. Las listas de control de acceso muestran que cualquier usuario de Windows tiene acceso a esos archivos. Específicamente, cualquier persona puede iniciar sesión localmente o mediante escritorio remoto puede simplemente colocar un archivo que defina un nuevo usuario, y Serv-U FTP lo reconocerá de forma automática. A continuación, dado que se puede crear cualquier usuario en Serv-U FTP, se generó una cuenta de administrador configurando un campo del archivo y luego se estebleció como inicio la unidad C:\. Ahora se puede iniciar sesión a través del servicio FTP y leer o remplazar cualquier archivo en C:\ debido a que el servicio se ejecuta con privilegios de LocalSystem.

Figura 7. Usuarios autenticados pueden escribir en el directorio de configuración. 

Resumen:

Se analizaron dos hallazgos en SolarWinds Orion User Device Tracker y uno en SolarWinds Serv-U FTP. Estas fallas podrían permitir a un atacante la ejecución remota de código, acceso para recuperar credenciales y la posibilidad de leer, escribir o borrar cualquier archivo en el sistema.

Trustwave reportó los tres hallazgos a SolarWinds y liberaron actualizaciones de manera oportuna. Recomendamos que los administradores actualicen tan pronto como sea posible. Trustwave liberará una PoC el 9 de febrero, con el fin de dar tiempo adicional a los usuarios para actualizar. Contar con un PoC ayuda a los profesionales de seguridad de la información a entender mejor este tipo de fallas, así como implementar protección para prevenir ataques.