
Pyrescom Termod Proof-of-Concept-Code für CVE-2020-23160, CVE-2020-23161 und CVE-2020-23162
Dies ist der Proof-of-Concept-Exploit-Code für drei Schwachstellen, die von Jonas Mattsson und Hugo van den Toorn bei Outpost24 Ghost Labs entdeckt wurden. Diese Schwachstellen wurden in der Webserver-Komponente einer Pyrescom Termod4 Zeiterfassungsmaschine entdeckt. Diese Schwachstellen können miteinander verkettet werden und ermöglichen einem entfernten Angreifer, die Authentifizierung zu umgehen, Dateien vom lokalen Dateisystem zu lesen und beliebige Befehle auszuführen. Die folgenden CVE-IDs können verwendet werden, um auf diese Schwachstellen zu verweisen: CVE-2020-23160, CVE-2020-23161 und CVE-2020-23162.

Diese Schwachstellen sind durch drei CVE-IDs identifiziert, die im Folgenden beschrieben werden.
Remote-Code-Ausführung in Pyrescom Termod4 Zeiterfassungsgeräten vor 10.04k ermöglicht es authentifizierten entfernten Angreifern, beliebige Befehle als Root auf den Geräten auszuführen. Siehe MITRE CVE
Lokale Dateieinbindung in Pyrescom Termod4 Zeiterfassungsgeräten vor 10.04k ermöglicht es authentifizierten entfernten Angreifern, Verzeichnisse zu durchsuchen und vertrauliche Dateien über das Menü Maintenance > Logs und durch Manipulieren des Dateipfads in der URL zu lesen. Siehe MITRE CVE
Die Offenlegung vertraulicher Informationen und schwache Verschlüsselung in Pyrescom Termod4 Zeiterfassungsgeräten vor 10.04k ermöglicht es entfernten Angreifern, eine Sitzungsdatei zu lesen und Benutzeranmeldedaten im Klartext zu erlangen. Siehe MITRE CVE
Verketteter Angriff gegen Termod4-Geräte, der es einem nicht authentifizierten Angreifer ermöglicht:
Klone dieses Repository, richte (optional) eine virtuelle Python-Umgebung ein und installiere die Abhängigkeiten. Vorausgesetzt, du hast Python3 und python3-venv installiert (apt-get install python3-venv).
(optional) Richte eine virtuelle Umgebung namens 'Pyrescom-CVE' ein: python3 -m venv Pyrescom-CVE, wechsel in das Verzeichnis cd Pyrescom-CVE und aktiviere sie mit . bin/activate.
Klone das Repository in das aktuelle Verzeichnis:
git clone https://github.com/Outpost24/Pyrescom-Termod-PoC.git .
python -m pip install -r requirements.txt
python Pyrescom-poc.py
Die grundlegende Verwendung dieses PoC ist wie folgt:
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 -hVerteilt unter der GPL3-Lizenz. Siehe LICENSE für weitere Informationen.
Details zu diesen Schwachstellen und wie sie entdeckt wurden, findest du in unserem Blog - Tales from the frontline: Outsmarted by smart devices.
Die Schwachstellen wurden behoben; genaue Details zu den Patch-Versionen sind unbekannt und wurden vom Hersteller nicht bestätigt. Wir haben die Schwachstellen in Version 10.02r entdeckt und bestätigt, dass sie in Version 10.04k behoben sind. Wie Zwischenversionen betroffen sind, ist unbekannt. Daher empfehlen wir, auf die neueste stabile Firmware-Version zu aktualisieren, die für dein Gerät verfügbar ist.
Informationen zu unserer Richtlinie für verantwortungsvolle Offenlegung findest du auf unserer Website.
Jonas Mattsson - LinkedIn
Hugo van den Toorn - @HugovdToorn - LinkedIn
Vielen Dank an Jonas, der die großartige Angewohnheit hat, die erstaunlichsten Entdeckungen an den seltsamsten Orten zu machen. Leider ist heute dein letzter Tag bei Outpost24. Deshalb möchten wir deinen Abschied mit diesen drei CVEs feiern und wünschen dir alles Gute für deine zukünftigen Unternehmungen.
"That might have been a bit out of scope..."
Von Ghostlabs mit Liebe <3
| Tag # | Datum | Aktivität |
|---|
| 0-day | 18-12-2019 | Erstkontakt mit dem Hersteller. |
| 2 Tage | 20-12-2019 | Zweiter Kontaktversuch mit dem Hersteller. |
| 21 Tage | 08-01-2020 | Dritter Kontaktversuch mit dem Hersteller. |
| 29 Tage | 16-01-2020 | Herstellertreffen über unseren Kunden arrangiert. |
| 40 Tage | 27-01-2020 | Treffen mit Hersteller und unserem Kunden; der Hersteller bestätigte die Probleme und erhielt den vollständigen Bericht. |
| 82 Tage | 09-03-2020 | Update veröffentlicht und ausgerollt; kurzer Nachtest für unseren Kunden durchgeführt. Schwachstellen behoben. |
| 83 Tage | 10-03-2020 | Wirksamkeit des Patches mit dem Hersteller bestätigt. Offenlegungszeitplan vorgeschlagen, keine Antwort vom Hersteller. |
| 124 Tage | 20-04-2020 | Offenlegungszeitplan vorgeschlagen, keine Antwort vom Hersteller. |
| 141 Tage | 07-05-2020 | CVE-Reservierung beantragt. Mehr als 100 Tage seit Bestätigung durch den Hersteller. |
| 401 Tage | 22-01-2021 | In den letzten 204 Tagen mehrere Anfragen an Mitre bezüglich Update/CVE. Nach erneuter Einreichung wurden die CVE-IDs am 22. Januar veröffentlicht. |
| 408 Tage | 29-01-2021 | Veröffentlichung dieses Blogs, der CVE-IDs und des PoC. |