从常用工具 PlatoBlockchain 数据智能中提取加密凭证。 垂直搜索。 哎呀。

从常用工具中提取加密凭证

大多数网络攻击 依赖窃取的凭据——通过欺骗员工和最终用户共享它们,或者通过获取缓存在工作站和网络上其他系统上的域凭据来获得。 这些被盗的凭据使攻击者能够在环境中横向移动,因为他们从一台机器转移到另一台机器——包括本地和云端——直到他们到达关键业务资产。

优步违规 早在九月,攻击者 在特定的 PowerShell 脚本中找到凭据. 但是,攻击者可以通过许多不那么华而不实但同样具有破坏性的方式找到允许他们访问环境的凭据。 其中包括常见的本地凭据、具有相似密码的本地用户以及存储在网络共享文件中的凭据。

在我们的研究中,我们面临这样一个问题,即可以从受感染的机器中提取什么样的信息——而不利用任何漏洞——以便横向移动或提取敏感信息。 我们在这里使用的所有工具都可以在我们的 GitHub上 库。

组织依靠多种工具使用 SSH、FTP、Telnet 或 RDP 协议对服务器和数据库进行身份验证——其中许多工具会保存凭据以加快身份验证。 我们研究了三种此类工具——WinSCP、Robomongo 和 MobaXterm——以展示攻击者如何提取非明文凭据。

WinSCP:混淆凭证

当域控制器不可用时,用户可以使用在成功登录域后保存在本地的缓存凭据来访问系统资源。 由于用户之前已获得授权,因此即使过去对用户进行身份验证的域控制器不可用,用户也可以通过缓存的凭据使用域帐户登录机器。

WinSCP 提供了保存用于通过 SSH 连接到远程计算机的凭据详细信息的选项。 虽然凭据在保存在 Windows 注册表 (ComputerHKEY_CURRENT_USERSOFTWAREMartin PrikrylWinSCP 2Sessions) 中时会被混淆,但它们根本没有加密。 任何知道用于混淆的算法的人都可以访问凭据。

由于 GitHub 上提供了 WinSCP 的源代码,因此我们能够找到混淆算法。 我们使用了一个实现相同算法的工具来对凭据进行去混淆处理,并且我们获得了对明文凭据的访问权限。

实施混淆算法来保护存储的凭据并不是最佳做法,因为它很容易被逆转并导致凭据被盗。

Robomongo:不是秘密钥匙

Robomongo(现在的 Robo 3T)是一个用于连接到 Mongo 数据库服务器的 MongoDB 客户端。 当您保存凭据时,它们会被加密并保存在 robo3t.json JSON 文件。 用于加密凭据的密钥也以明文形式保存在本地 robo3t.key 文件中。

这意味着获得计算机访问权限的攻击者可以使用以明文形式保存的密钥来解密凭据。

我们在 GitHub 上查看了 Robomongo 的源代码以了解密钥是如何用于加密密码的,并了解到它使用了 Qt 中的 SimpleCrypt 库。 虽然 Robomongo 使用加密来安全地存储凭据,但以明文形式保存密钥并不是最佳实践。 攻击者可能会读取它,因为任何有权访问工作站的用户都可以解密凭据。 即使信息以人类无法读取的方式编码,某些技术也可以确定正在使用哪种编码,然后对信息进行解码。

MobaXterm:解密密码

MobaXterm 是一个强大的工具,可以使用各种协议(如 SSH、Telnet、RDP、FTP 等)连接到远程机器。 想要在 MobaXterm 中保存凭据的用户将被要求创建一个主密码来保护他们的敏感数据。 默认情况下,MobaXterm 仅在新计算机上请求主密码。

这意味着主密码保存在某个地方,MobaXterm 将检索它以访问加密的凭据。 我们使用 Sysinternals Suite 中的 Procmon 映射 MobaXterm 访问的所有注册表项和文件,我们发现主密码保存在 Windows 注册表中 (ComputerHKEY_CURRENT_USERSOFTWAREMobatekMobaXtermM)。 凭据和密码分别保存在 C 和 P 注册表项中。

最初,我们无法解密使用 DPAPI 加密的主密码。 我们最终发现前 20 个 DPAPI 字节(在使用 DPAPI 时始终相同)已被删除。 当我们添加前 20 个字节时,我们能够解密 DPAPI 密码以获得主密码的 SHA512 哈希。 此哈希用于加密和解密凭据。

在这里,用于安全存储凭据的加密密钥是使用 DPAPI 保存的。 这意味着只有保存凭据的用户才能访问它们。 但是,具有管理员访问权限的用户或获得受害者会话访问权限的攻击者也可以解密存储在计算机上的凭据。

了解风险

开发人员、DevOps 和 IT 使用各种工具连接到远程机器并管理这些访问详细信息。 供应商必须以最安全的方式存储这些敏感信息。 然而,加密总是在客户端进行,攻击者可以复制工具行为来解密凭证。

一如既往,没有一个神奇的解决方案可以解决我们在这里讨论的所有问题。 然而,组织可能会从检查他们现在使用的服务开始。 他们可以构建准确的风险矩阵,并通过更深入地了解他们存储的敏感数据和凭据的类型,为数据泄露做好更好的准备。

时间戳记:

更多来自 暗读