利用Frida从TeamViewer内存中提取密码(CVE-2018-14333)

利用Frida从TeamViewer内存中提取密码(CVE-2018-14333)

项目地址:https://gitcode.com/vah13/extractTVpasswords

在这篇文章中,我们将探讨一个关于TeamViewer密码安全的有趣研究,这个方法在渗透测试后期获取通过TeamViewer访问其他机器的权限时非常有用。

TeamViewer自动登录揭秘

您是否曾在Windows云VPS上设置过自定义密码并使用TeamViewer工作?然后,当你下次想要连接时,发现TeamViewer已经自动填充了密码?这是怎么回事?

tw_interface

我们好奇:“我如何能获取这个密码呢?密码是如何存储在我的电脑里的?”

密码存储位置

通过对TeamViewer内存的转储和搜索,我们找到了答案:

dump

密码以Unicode格式存储在内存中。如果你结束TeamViewer的工作但并未结束进程(或者没有从菜单选择退出),密码会被保留在内存中。

经过分析,我们发现红色区域是起始魔法数据,而第二个区域是结束魔法数据(有时,其值为00 00 00 20 00 00)。

获取密码的脚本

为了从内存中提取这些密码,我们编写了两个小型程序,分别用Python和C++语言实现。

感谢Frida团队开发出如此出色的工具!我们的Python脚本会附加到TeamViewer.exe进程,获取每个库的基址和内存大小,然后逐一转储内存区域,寻找以[00 88]开头,以[00 00 00]结尾的部分,并将它们复制到数组中。最后一步是按照正则表达式和密码策略解码有效的行。

python_work_example

执行C++代码后,你会看到类似"asdQWE123"这样的密码:

cpp_poc

展望未来

  1. 程序能够有效提取远程ID和密码,但也可能存在一些误报日期的问题。如果我们有时间,我们将尝试降低误报率。
  2. 对C++代码进行优化,可参考GitHub上的extractTVpasswords仓库。
示例

这是C++示例的结果:

cppex

以及Python示例的效果:

pyex

@NewFranny@vah_13 共同呈现。


这个开源项目不仅揭示了TeamViewer密码存储的一个重要漏洞,也为安全研究人员提供了一个实用的工具来学习和实践内存取证。无论是出于教育目的还是实际的安全评估,extractTVpasswords都是一个值得探索的宝贵资源。如果你经常与TeamViewer打交道,那么了解和掌握这项技术将使你的工作更加得心应手。立即加入我们,一起深入探究这一领域的奥秘吧!

项目地址:https://gitcode.com/vah13/extractTVpasswords

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gitblog_00088

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值