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

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

利用Frida从TeamViewer内存中提取密码_第1张图片

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

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

GitHub主页

extractTVpasswords-【点我访问】

TeamViewer的自动认证机制

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

利用Frida从TeamViewer内存中提取密码_第2张图片

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

密码位置

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

利用Frida从TeamViewer内存中提取密码_第3张图片

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

利用Frida从TeamViewer内存中提取密码_第4张图片

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

利用Frida从TeamViewer内存中提取密码_第5张图片

未完待续

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

使用样例

C++例子:

利用Frida从TeamViewer内存中提取密码_第6张图片

Python例子

利用Frida从TeamViewer内存中提取密码_第7张图片

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

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

这些评论亮了

  • 风在指尖 (1级) 找工作安全~本人电话15194177995 回复
    看到这里我也是笑了,你能在对方电脑上执行程序,还用盗取别人tearviewer 密码?直接盗取密码远控不就是了么?
    ) 8 ( 亮了
发表评论

已有 9 条评论

  • YMB  2017-08-11 回复 1楼

    TeamViewer_Dump????又造轮子..

    亮了( 1)
    • 草莓丶丶  (1级)  2017-08-11 回复

      @ YMB 不太一样 ,TeamViewer_Dump是读取本地的密码 一个是读取本地保存的远程主机的密码 ps:如果我没理解错作者的意思的话

      亮了( 0)
  • 风在指尖  (1级) 找工作安全~本人电话15194177995  2017-08-11 回复 2楼

    看到这里我也是笑了,你能在对方电脑上执行程序,还用盗取别人tearviewer 密码?直接盗取密码远控不就是了么?

    亮了( 8)
    • 草莓丶丶  (1级)  2017-08-11 回复

      @ 风在指尖  他的思路可能是 拿下服务器权限 然后如果开着tearviewer 可以读取密码 扩大战果 蔓延到其他服务器

      亮了( 2)
  • 死宅10086  (6级)  2017-08-11 回复 3楼

    :mrgreen::mrgreen:

    亮了( 1)
  • 马化腾  2017-08-11 回复 4楼

    我想问C++写的在哪里?

    亮了( 1)
    • 草莓丶丶  (1级)  2017-08-11 回复

      @ 马化腾 他放的github地址里有

      亮了( 0)
  • 强煎的蛋  2017-08-11 回复 5楼

    我记得好像在一定时间内重新连接才自动填写密码吧

    亮了( 0)
  • Jumbo  (6级) 论坛https://www.chinabaiker.com  2017-08-11 回复 6楼

    反正我是测试失败的,1、内存中没抓到密码;2、py脚本也没抓到。TV版本12.0.81460

你可能感兴趣的:(Windows渗透)