欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

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

来源:本站整理 作者:佚名 时间:2017-08-11 TAG: 我要投稿

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

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

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

这就非常有意思了,那我怎么样才能拿到TeamViewer保存的密码呢?而且这个密码是如何存储在我的电脑里的呢?
密码位置
我导出了TeamViewer的内存数据,然后使用搜索命令(grep)来尝试搜索密码。

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]字节结尾的数据,然后将搜索到的数据拷贝到一个数组中保存。最后一步就是根据正则表达式和密码策略来解码原始数据了。

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

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

Python例子

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载