解密VMware Workstation密码(附工具)

admin 2023年6月24日02:54:30评论56 views字数 2919阅读9分43秒阅读模式
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

来源:Medium,作者:@David Azria、@Zur Ulianitzky

现在只对常读和星标的公众号才展示大图推送,建议大家把潇湘信安设为星标”,否则可能看不到了

0x00 概述

我们一直在努力研究攻击者用来攻击您的 VMware 环境的技术,您将要阅读的内容是我们持续研究的成果。

您可能认为您的 VMware 密码是安全的。但对于经验丰富的黑客来说,即使是这些也是可以争夺的。

当您从 VMware Workstation 连接到 ESXi 或 Vsphere 服务器时,您可以选择在计算机上保存连接详细信息,包括密码。下次连接到服务器时,您无需再次输入凭据。

经典的“记住我”功能。

解密VMware Workstation密码(附工具)

使用逆向工程的方法,我们分析了解密流程,发现我们可以自行解密保存的 VMware 凭据。如果我们能做到,那么经验丰富的黑客也能做到。

在此博客中,我们将逐步向您展示黑客如何窃取您的 VMware 凭据。最后,我们将向您展示我们创建的工具,它可以做到这一点,让红队队员的生活更轻松。

让我们进入研究。

0x01 解密流程

我们通过假设凭据保存在本地文件或注册表项中来开始研究。为了准确找到位置,我们使用了 SysInternals 工具中的 Procmon。

我们可以看到,当我们通过工作站添加或删除凭据时,会访问以下文件:

解密VMware Workstation密码(附工具)

我们来看看这两个文件:

%AppData%VMwarepreferences-private.ini
解密VMware Workstation密码(附工具)
%AppData%VMwareace.dat
解密VMware Workstation密码(附工具)

这些文件似乎已加密。所以我们需要了解如何,以及到解密它们。我们将从 preferences-private.ini 文件开始。

0x02 preferences-private.ini

该文件包含以下属性:.encoding

encryption.userKeyencryption.keySafeencryption.data

encryption.userKey 值使用数据保护 API (DPAPI) 加密,可通过第一个常量 ~60 字节元数据识别。

解密VMware Workstation密码(附工具)

DPAPI 允许使用来自当前用户的信息加密数据。因此,只有执行加密的用户才能解密数据。

让我们编写一个使用 Unprotect 函数并尝试解密数据的简单 .Net 应用程序:

解密VMware Workstation密码(附工具)
我们执行应用程序并获得解密数据:
解密VMware Workstation密码(附工具)

我们得到了一种加密算法类型 AES-256——我们也得到了一个密钥。我们称它为 KEY_1。

我们现在需要解密在 preferences-private.ini 文件中找到的其他属性的值,即 encryption.keySafe 和 encryption.data。为此,我们需要知道每个属性、使用的算法、初始化向量 (IV) 和密钥。

为了找到这些未知数,我们将使用静态和动态逆向工程分析技术。查看 Procmon 中的调用堆栈向我们展示了哪些 DLL 文件和函数需要访问加密文件。

解密VMware Workstation密码(附工具)

我们vmwarebase.dll文件中找到了对BCryptDecrypt函数的调用,这是一个用于解密数据的 WinAPI 函数:
https://learn.microsoft.com/en-us/windows/win32/api/bcrypt/nf-bcrypt-bcryptdecrypt
解密VMware Workstation密码(附工具)
就在函数调用之前,我们可以看到 IV,以及发送到函数的加密数据和返回的解密数据,它们被推送到堆栈。查看 MSDN 文档告诉我们,发送给函数的最后一个参数 hKey 是用于解密数据的密钥的句柄。
https://learn.microsoft.com/en-us/windows/win32/api/bcrypt/nf-bcrypt-bcryptgeneratesymmetrickey
这个句柄是从BCryptGenerateSymmetricKey密钥创建函数中获得的:
解密VMware Workstation密码(附工具)

pbSecret 参数包含用于加密和解密过程的密钥(在 base64 解码之后)。

动态分析应该可以帮助我们获得实际的 IV 和密钥值,并了解完整的解密流程。

下面我们用WinDBG调试vmware.exe,用IDA同步地址基础镜像,插入断点,分析流程。

我们在BCryptGenerateSymmetricKey函数调用上插入断点,然后我们在栈上显示第五个参数pbSecret的内容,也就是秘钥。

解密VMware Workstation密码(附工具)

经过base64编码后,我们得到:

mXhLLOJnBFo0tNr7PVaxuzmaxwOsWsR/i0k8RAJf9cs=

这就是我们的KEY_1,由上面的DPAPI解密得到。

现在我们在 BCryptDecrypt 函数调用上插入一个断点,然后我们将看到使用此密钥解密了哪个有效负载以及使用了哪个 IV:

解密VMware Workstation密码(附工具)
堆栈上的第二个参数是加密的有效负载,第五个是 IV:
解密VMware Workstation密码(附工具)

经过base64编码后,我们可以看到这个数据对应于preferences-private.ini文件中的encryption.keySafe值。前 16 个字节是 IV,其余是加密数据。

解密结果为:

解密VMware Workstation密码(附工具)
简而言之,KEY_1 用于解密 encryption.keySafe 值,解密后的值是另一个密钥,我们称之为 KEY_2:
解密VMware Workstation密码(附工具)

接下来,我们可以使用相同的方法,调试对 BCryptDecrypt 函数的调用,以完成我们对解密流程的理解。

使用 KEY_2,我们能够解密 encryption.data 属性。同样,前 16 个字节是 IV,使用 AES-256 算法,解密后的值为:

解密VMware Workstation密码(附工具)

很好,我们成功解密了配置,我们有了主机名和用户名。但是……密码仍然是加密的。密码的解密密钥是什么?

为此,我们将继续处理工作站保存的第二个文件 ace.dat。

0x03 ace.dat

这是文件的内容:
%AppData%VMwareace.dat
解密VMware Workstation密码(附工具)

您可以看到数据值已加密。我们将其称为 DATA_1。

跟踪对 BCryptGenerateSymmetricKey 函数的堆栈调用会将我们带到 vmwarebase.dll 文件中的硬编码密钥。此密钥用于解密 ace.dat 文件内容:

解密VMware Workstation密码(附工具)
让我们使用它并解密 DATA_1 值,这是解密后的数据:
解密VMware Workstation密码(附工具)

数据包含密钥派生函数 PBKDF2-HMAC-SHA-1、盐和加密数据值,我们称之为 DATA_2。

PBKDF2 算法用于根据秘密值和盐生成密钥。秘密值硬编码在 vmwarebase.dll 文件中:

解密VMware Workstation密码(附工具)
让我们生成密钥并将其命名为 KEY_3:
解密VMware Workstation密码(附工具)

使用 KEY_3,我们将解密 DATA_2 值,这是解密后的数据:

解密VMware Workstation密码(附工具)
我们得到另一把钥匙,使用此密钥,我们从上面解密的配置中解密密码。
解密VMware Workstation密码(附工具)

使用的 IV 是加密密码的前 16 个字节。

最后,这是明文密码!

解密VMware Workstation密码(附工具)

0x04 工具解密

面的解密流程很长很复杂,所以我们也写了一个工具来完成这项工作;只需运行它,它就会解密 VMware Workstation 配置文件,包括密码。

它还可以通过尝试连接到服务器来验证提取的凭据是否有效。

解密VMware Workstation密码(附工具)

工具

链接

https://github.com/XMCyber/VmwarePasswordDecryptor

原文始发于微信公众号(潇湘信安):解密VMware Workstation密码(附工具)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月24日02:54:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   解密VMware Workstation密码(附工具)http://cn-sec.com/archives/1826917.html

发表评论

匿名网友 填写信息