
Código de prueba de concepto de Pyrescom Termod para CVE-2020-23160, CVE-2020-23161 y CVE-2020-23162
Este es el código de explotación de prueba de concepto para tres vulnerabilidades descubiertas por Jonas Mattsson y Hugo van den Toorn en Outpost24 Ghost Labs. Estas vulnerabilidades se descubren en el componente del servidor web de una máquina de control de tiempo Pyrescom Termod4. Estas vulnerabilidades se pueden encadenar y permiten a un atacante remoto eludir la autenticación, leer archivos del sistema de archivos local y ejecutar comandos arbitrarios. Los siguientes IDs CVE se pueden usar para hacer referencia a estas vulnerabilidades: CVE-2020-23160, CVE-2020-23161 y CVE-2020-23162.

Estas vulnerabilidades se identifican por tres IDs CVE, descritos a continuación.
La ejecución remota de código en dispositivos de gestión de tiempo Pyrescom Termod4 anteriores a 10.04k permite a atacantes remotos autenticados ejecutar comandos arbitrarios como root en los dispositivos. Ver MITRE CVE
La inclusión de archivos locales en dispositivos de gestión de tiempo Pyrescom Termod4 anteriores a 10.04k permite a atacantes remotos autenticados recorrer directorios y leer archivos sensibles a través del menú Mantenimiento > Registros y manipulando la ruta del archivo en la URL. Ver MITRE CVE
La divulgación de información sensible y el cifrado débil en dispositivos de gestión de tiempo Pyrescom Termod4 anteriores a 10.04k permite a atacantes remotos leer un archivo de sesión y obtener credenciales de usuario en texto plano. Ver MITRE CVE
Ataque encadenado contra dispositivos Termod4, que permite a un atacante no autenticado:
Clone este repositorio, (opcionalmente) configure un entorno virtual de Python e instale las dependencias. Asumiendo que tiene Python3 y python3-venv instalados (apt-get install python3-venv).
(opcional) Configure un virtualenv llamado 'Pyrescom-CVE': python3 -m venv Pyrescom-CVE, cambie de directorio cd Pyrescom-CVE y actívelo . bin/activate.
Clone el repositorio en el directorio actual:
git clone https://github.com/Outpost24/Pyrescom-Termod-PoC.git .
python -m pip install -r requirements.txt
python Pyrescom-poc.py
El uso básico de este PoC es el siguiente:
python Pyrescom-poc.py http://<URI o IP del objetivo>python Pyrescom-poc.py http://<URI o IP del objetivo> -spython Pyrescom-poc.py http://<URI o IP del objetivo> <comando>python Pyrescom-poc.py -hDistribuido bajo la licencia GPL3. Consulte LICENSE para más información.
Los detalles sobre estas vulnerabilidades y cómo fueron descubiertas se pueden encontrar en nuestro blog - Tales from the frontline: Outsmarted by smart devices.
Las vulnerabilidades están corregidas, los detalles exactos sobre las versiones del parche son desconocidos y no reconocidos por el proveedor. Descubrimos las vulnerabilidades en la versión 10.02r y verificamos que en la versión 10.04k las vulnerabilidades están remediadas. Se desconoce cómo afectan a las versiones intermedias, por lo tanto recomendamos actualizar a la última versión de firmware estable disponible para su dispositivo.
La información sobre nuestra política de divulgación responsable se puede encontrar en nuestro sitio web.
Jonas Mattsson - LinkedIn
Hugo van den Toorn - @HugovdToorn - LinkedIn
Muchas gracias a Jonas, que tiene el gran hábito de encontrar los hallazgos más asombrosos en los lugares más extraños. Desafortunadamente para nosotros, hoy es tu último día en Outpost24. Así que nos gustaría celebrar tu partida con estos tres CVE y te deseamos todo lo mejor en tus futuros proyectos.
"That might have been a bit out of scope..."
De Ghostlabs con amor <3
| Día # | Fecha | Actividad |
|---|
| 0-day | 18-12-2019 | Contacto inicial con el proveedor. |
| 2 días | 20-12-2019 | Segundo intento de contacto con el proveedor. |
| 21 días | 08-01-2020 | Tercer intento de contacto con el proveedor. |
| 29 días | 16-01-2020 | Reunión con el proveedor organizada a través de nuestro cliente. |
| 40 días | 27-01-2020 | Reunión con el proveedor y nuestro cliente, el proveedor reconoció los problemas y recibió el informe completo. |
| 82 días | 09-03-2020 | Actualización publicada e implementada, se realizó una breve nueva prueba para nuestro cliente. Vulnerabilidades resueltas. |
| 83 días | 10-03-2020 | Confirmada la efectividad del parche con el proveedor. Se propuso cronograma de divulgación, sin respuesta del proveedor. |
| 124 días | 20-04-2020 | Se propuso cronograma de divulgación, sin respuesta del proveedor. |
| 141 días | 07-05-2020 | Solicitud de reserva de CVE. Más de 100 días desde la confirmación por parte del proveedor. |
| 401 días | 22-01-2021 | Múltiples solicitudes a Mitre para actualización/CVE en los últimos 204 días. Después de la re-presentación, los IDs CVE se publicaron el 22 de enero. |
| 408 días | 29-01-2021 | Publicación de este blog, IDs CVE y PoC. |