利用Frida从TeamViewer内存中提取密码

小龙 2017-8-12 教学频道 0 0

今天给大家介绍一款能够从TeamViewer内存中提取密码的工具,这款工具名叫Frida。

如何从TeamViewer内存中提取密码

使用Frida从TeamViewer的内存中提取密码

在这篇文章中,我将会跟大家分享我们近期对TeamViewer密码安全性所进行的研究分析结果。需要注意的是,我们在研究中所使用的方法可以在渗透测试(后渗透阶段)的过程中通过TeamViewer来获取其他设备的访问权。

GitHub主页

extractTVpasswords-【点我访问

TeamViewer的自动认证机制

在几天之前,我通过TeamViewer访问了我的VPS云服务器(Windows),我当时还专门为这台服务器设置了自定义的密码。完成了相应任务之后,我便断开了与服务器的连接。但是当我下次想要连接这台服务器时,我发现TeamViewer竟然会自动填写连接密码。

如何从TeamViewer内存中提取密码

这就非常有意思了,那我怎么样才能拿到TeamViewer保存的密码呢?而且这个密码是如何存储在我的电脑里的呢?

密码位置

我导出了TeamViewer的内存数据,然后使用搜索命令(grep)来尝试搜索密码。

如何从TeamViewer内存中提取密码

oh,耶~内存中果然保存了密码,而且密码是以Unicode格式存储的。在进行了深入分析后我发现,如果你使用完TeamViewer之后没有结束TeamViewer进程的话,或者你通过点击菜单中的“Exit TeamViewer”退出程序的话,密码将仍然存储在内存中。注意上图中的两个红色框框圈出来的部分(00 88和00 00 00 00 00 00),两个框框中间的数据就是我们所要寻找的密码。

获取密码的脚本

为了从TeamViewer内存中提取出密码,我们专门编写了两个小程序,这两个小程序分别采用Python和C++开发。(感谢Frida团队提供的帮助)

我们的Python脚本会绑定到TeamViewer.exe进程上,然后获取到这个进程的内存基地址以及内存大小。接下来,它会将每一块内存区域中的数据导出,然后搜索数据中以[00 88]字节开头并以[00 00 00]字节结尾的数据,然后将搜索到的数据拷贝到一个数组中保存。最后一步就是根据正则表达式和密码策略来解码原始数据了。

如何从TeamViewer内存中提取密码

在执行完C++代码之后,你就可以得到明文密码了(“asdQWE123”)。

如何从TeamViewer内存中提取密码

未完待续

1.      我们还会为这个小程序添加其他的功能,比如说远程提取ID以及密码,并尽量降低假阳性率。
2.      优化C++代码。

使用样例

C++例子:

如何从TeamViewer内存中提取密码

Python例子

如何从TeamViewer内存中提取密码

如果你对本项目有任何的疑问或者建议,可以直接与我们联系(@vah_13@NewFranny)或在GitHub上留言。

* 参考来源:extractTVpasswords, FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

转载请注明来自华盟网,本文标题:《利用Frida从TeamViewer内存中提取密码》

喜欢 (0) 发布评论