
Tool zum Extrahieren von Passwörtern aus dem TeamViewer-Speicher mit Frida
Hallo zusammen, in diesem Artikel möchten wir über unsere kleine Forschung zur Passwortsicherheit in TeamViewer berichten. Die Methode kann während des Pentests für die Post-Exploitation hilfreich sein, um über TeamViewer Zugriff auf eine andere Maschine zu erhalten.
Vor ein paar Tagen habe ich mit TeamViewer auf meiner Windows-Cloud-VPS gearbeitet (dort habe ich ein eigenes Passwort festgelegt). Nach der Arbeit habe ich die Verbindung getrennt. Als ich mich das nächste Mal verbinden wollte, sah ich, dass TeamViewer das Passwort automatisch ausgefüllt hatte.

Ich denke: „Interessant, wie kann ich an das Passwort gelangen? Wie wird das Passwort auf meinem Computer gespeichert?“
Ich habe den Speicher von TeamViewer gedumpt und mit grep nach dem Passwort gesucht.

Ooo ja, 😊 das Passwort wird im Speicher im Unicode-Format gespeichert. Es stellt sich heraus, dass, wenn du deine Arbeit mit TeamViewer beendest und den Prozess nicht beendest (oder TeamViewer nicht verlässt

das Passwort im Speicher gespeichert wird)
Nach der Analyse haben wir verstanden, dass der erste rote Bereich magische Startdaten sind, der zweite – magische Enddaten (von Zeit zu Zeit haben die magischen Enddaten diesen Wert = 00 00 00 20 00 00).
Um Passwörter aus dem Speicher zu extrahieren, haben wir zwei Miniprogramme geschrieben, eines in Python und eines in C++.
Danke an das Frida-Team für ein wunderbares Tool! Unser Python-Skript hängt sich an den TeamViewer.exe-Prozess an, ermittelt die Basisadresse und Speichergröße jeder Bibliothek in diesem Prozess. Danach dumpt es einen Speicherbereich nach dem anderen, sucht nach Teilen mit [00 88]-Bytes am Anfang und [00 00 00]-Bytes am Ende und kopiert sie in das Array. Der nächste und letzte Schritt ist die Auswahl der endgültig dekodierten Rohstrings gemäß dem Regexp und der Passwortrichtlinie.

Nach der Ausführung des C++-Codes erhältst du diese Ansicht: „asdQWE123“ ist das Passwort.

C++-Beispiel

Python-Beispiel
