
herramienta para extraer contraseñas de la memoria de TeamViewer usando Frida
Hola a todos, en este artículo queremos contarles sobre nuestra pequeña investigación acerca de la seguridad de las contraseñas en TeamViewer. El método puede ayudar durante el pentest en la fase de post-explotación para obtener acceso a otra máquina usando TeamViewer.
Hace unos días trabajé en mi VPS en la nube con Windows usando TeamViewer (donde configuré una contraseña personalizada). Después del trabajo me desconecté, y la siguiente vez que quise conectarme, vi que TeamViewer había rellenado automáticamente la contraseña.

Pienso: «Interesante, ¿cómo puedo acceder a la contraseña? ¿Cómo se almacena la contraseña en mi computadora?»
Volqué la memoria de TeamViewer y busqué la contraseña con grep.

Ooo sí, 😊 la contraseña en la memoria se almacena en formato Unicode. Resulta que si terminas de trabajar con TeamViewer y no matas el proceso (o no sales de TeamViewer

la contraseña permanecerá almacenada en la memoria)
Después de analizar, entendimos que la primera área roja son los datos mágicos de inicio, y la segunda son los datos mágicos de fin (de vez en cuando, los datos mágicos de fin tienen este valor = 00 00 00 20 00 00).
Para extraer contraseñas de la memoria escribimos dos miniprogramas, en lenguaje Python y C++.
¡Gracias al equipo de Frida por esta maravillosa herramienta! Nuestro script en Python se adjunta al proceso TeamViewer.exe, obtiene la dirección base y el tamaño de memoria de cada librería en este proceso. Después, vuelca área por área de memoria, busca partes con bytes [00 88] al inicio y bytes [00 00 00] al final y las copia en un array. El siguiente y último paso es elegir las filas de decodificación final según la expresión regular y la política de contraseñas.

Después de ejecutar el código en C++, obtendrás esta vista «asdQWE123» es la contraseña

ejemplo en C++

ejemplo en Python
