
Code de preuve de concept pour Pyrescom Termod pour CVE-2020-23160, CVE-2020-23161 et CVE-2020-23162
Ceci est le code Proof-of-concept (preuve de concept) d'exploitation de trois vulnérabilités découvertes par Jonas Mattsson et Hugo van den Toorn chez Outpost24 Ghost Labs. Ces vulnérabilités ont été découvertes dans le composant serveur web d'une machine de contrôle de temps Pyrescom Termod4. Ces vulnérabilités peuvent être enchaînées et permettent à un attaquant distant de contourner l'authentification, de lire des fichiers du système de fichiers local et d'exécuter des commandes arbitraires. Les identifiants CVE suivants peuvent être utilisés pour référencer ces vulnérabilités : CVE-2020-23160, CVE-2020-23161 et CVE-2020-23162.

Ces vulnérabilités sont identifiées par trois identifiants CVE, décrits ci-dessous.
L'exécution de code à distance dans les dispositifs de gestion de temps Pyrescom Termod4 avant la version 10.04k permet à des attaquants distants authentifiés d'exécuter des commandes arbitraires en tant que root sur les dispositifs. Voir MITRE CVE
L'inclusion de fichier local dans les dispositifs de gestion de temps Pyrescom Termod4 avant la version 10.04k permet à des attaquants distants authentifiés de parcourir les répertoires et de lire des fichiers sensibles via le menu Maintenance > Logs et la manipulation du chemin de fichier dans l'URL. Voir MITRE CVE
La divulgation d'informations sensibles et le chiffrement faible dans les dispositifs de gestion de temps Pyrescom Termod4 avant la version 10.04k permet à des attaquants distants de lire un fichier de session et d'obtenir les identifiants utilisateur en texte clair. Voir MITRE CVE
Attaque enchaînée contre les dispositifs Termod4, permettant à un attaquant non authentifié de :
Clonez ce dépôt, (optionnellement) mettez en place un environnement virtuel Python et installez les dépendances. En supposant que vous ayez Python3 et python3-venv installés (apt-get install python3-venv).
(optionnel) Créez un virtualenv appelé 'Pyrescom-CVE' : python3 -m venv Pyrescom-CVE, changez de répertoire cd Pyrescom-CVE et activez-le . bin/activate.
Clonez le dépôt dans le répertoire courant :
git clone https://github.com/Outpost24/Pyrescom-Termod-PoC.git .
python -m pip install -r requirements.txt
python Pyrescom-poc.py
L'utilisation de base de ce PoC est la suivante :
python Pyrescom-poc.py http://<target-URI or IP>python Pyrescom-poc.py http://<target-URI or IP> -spython Pyrescom-poc.py http://<target-URI or IP> <command>python Pyrescom-poc.py -hDistribué sous la licence GPL3. Voir LICENSE pour plus d'informations.
Les détails sur ces vulnérabilités et leur découverte se trouvent sur notre blog - Tales from the frontline: Outsmarted by smart devices.
Les vulnérabilités sont corrigées, les détails exacts sur les versions de correctifs sont inconnus et non reconnus par le fournisseur. Nous avons découvert les vulnérabilités dans la version 10.02r et vérifié que dans la version 10.04k les vulnérabilités sont corrigées. L'impact des versions intermédiaires est inconnu, par conséquent nous recommandons de mettre à niveau vers la dernière version stable du firmware disponible pour votre appareil.
Des informations sur notre politique de divulgation responsable se trouvent sur notre site web.
Jonas Mattsson - LinkedIn
Hugo van den Toorn - @HugovdToorn - LinkedIn
Un grand merci à Jonas qui a l'habitude de faire les découvertes les plus géniales dans les endroits les plus étranges. Malheureusement pour nous, aujourd'hui marque votre dernier jour chez Outpost24. Nous souhaitons donc célébrer votre départ avec ces trois CVE et nous vous souhaitons le meilleur dans vos projets futurs.
"That might have been a bit out of scope..."
De Ghostlabs avec amour <3
| Jour # | Date | Activité |
|---|
| Jour 0 | 18-12-2019 | Premier contact avec le fournisseur. |
| 2 jours | 20-12-2019 | Deuxième tentative de contact avec le fournisseur. |
| 21 jours | 08-01-2020 | Troisième tentative de contact avec le fournisseur. |
| 29 jours | 16-01-2020 | Réunion avec le fournisseur organisée via notre client. |
| 40 jours | 27-01-2020 | Réunion avec le fournisseur et notre client, le fournisseur a reconnu les problèmes et a reçu le rapport complet. |
| 82 jours | 09-03-2020 | Mise à jour publiée et déployée, bref re-test effectué pour notre client. Vulnérabilités résolues. |
| 83 jours | 10-03-2020 | Efficacité du correctif confirmée avec le fournisseur. Calendrier de divulgation proposé, aucune réponse du fournisseur. |
| 124 jours | 20-04-2020 | Calendrier de divulgation proposé, aucune réponse du fournisseur. |
| 141 jours | 07-05-2020 | Demande de réservation de CVE. Plus de 100 jours depuis la confirmation par le fournisseur. |
| 401 jours | 22-01-2021 | Demandes multiples auprès de Mitre pour mise à jour/CVE au cours des 204 derniers jours. Après une nouvelle soumission, les identifiants CVE ont été publiés le 22 janvier. |
| 408 jours | 29-01-2021 | Publication de ce blog, des identifiants CVE et du PoC. |