本文由小茆同学编译,陈裕铭、Roe校对,转载请注明。

Windows帐户密码或NTLM密码是最容易恢复的密码之一,因为它们的加密强度相对较低。同时,NTLM密码可用于解锁受DPAPI保护的数据,例如存储在Web浏览器中的用户密码、加密聊天、受EFS保护的文件和文件夹等。在这篇文章中,我们将着重讨论NTLM哈希的恢复。

什么是NTLM哈希?

在Windows中,当用户登录到其Windows帐户时,系统使用NTLM哈希验证密码。在现版本的Windows中,微软仍然使用NTLM机制存储密码。这些密码存储在SAM数据库中,或存储在域控制器上的NTDS数据库中。有趣的是,由于算法的实现方式,NTLM哈希比更旧的LM哈希更易被破解。

NTLM哈希保护本地Windows帐户以及Windows 8中引入的较新类型的帐户:Microsoft Account登录。Windows缓存密码哈希并将其本地存储在计算机上。这允许用户在脱机使用时登录到计算机。另一方面,也允许提取缓存的哈希文件并运行离线攻击以恢复原始密码。经过哈希处理的Microsoft Account密码与其余的NTLM哈希一起存储在本地SAM数据库中。从技术上讲,本地缓存的Microsoft Accounts密码与其他类型的缓存凭据一样受到相同的 NTLM机制保护,这使得它们与本地Windows密码同样容易和快速地被攻击。

通俗地说,破解NTLM哈希会显示用户的纯文本Windows帐户或Microsoft帐户密码,从而允许技术人员登录到该用户的计算机并提取受DPAPI保护的数据。

NTLM哈希的加盐算法较差。微软使用加盐算法加密来保护LM和NTLM密码哈希,但对于同一台计算机上的帐户会使用相同的盐值,这就可能导致同时攻击某台计算机上存在的所有用户帐户的情况出现。

NTLM哈希是最弱和最容易被攻击的哈希之一。仅CPU攻击已经显示出非常惊人的速度,而采用中端NVIDIA RTX 2070板可以每秒尝试多达230亿个密码组合。这样的速度允许在87小时内破解由扩展字符集(小写字母、大写字母、数字和特殊字符)组成的8个字符的密码。一个更典型的8个字符的密码,仅包含小写和大写的英文字母和数字(无特殊字符),可以在3小时内破解。分布式攻击中可以使用更强大的GPU、多个GPU或多台计算机来加速恢复。

什么是DPAPI,它与NTLM有何关系?

Windows使用数据保护应用程序编程接口(DPAPI,Data Protection Application Programming Interface)作为访问各种系统资源的加密密钥的透明方式。此类受DPAPI保护的资源包括存储在Microsoft Edge和Google Chrome中的在线表单和身份认证(密码)、EFS(加密文件系统或 NTFS 文件加密)密钥、网络共享和 FTP 资源的密码等。

DPAPI透明地保护存储在每个用户的Windows帐户中的敏感信息。例如,如果用户通过勾选文件或文件夹的“高级属性”中的“加密内容以保护数据”框来启用文件加密,那么经过身份验证的用户将可以轻易地访问加密文件,但在分析磁盘镜像时无法访问。

此外,DPAPI还保护缓存在Microsoft Edge和Google Chrome浏览器中的身份认证凭据。这种保护也是无效的,用户无需输入任何其他密码即可访问这些身份验证凭据,但在分析没有经过身份认证的Windows会话的磁盘镜像时,无法提取此类凭据。

“NTLM优先”策略

此策略优先考虑可用于破解其他密码或解密数据的易访问数据,而忽略其作为证据的潜在价值。此策略尤其优先考虑被存储的密码(例如 Web 浏览器密码存储、钥匙串、受 DPAPI 保护的数据等)。

那么为什么我们终究还是需要NTML密码呢?这是因为它保护了其他东西。存储在Windows Web浏览器(如Microsoft Edge和Google Chrome)中的用户密码使用受Windows DPAPI保护的密钥进行加密。解密密钥(并访问存储的密码)需要Windows帐户解锁,这反过来意味着我们需要破解NTLM密码才能登录到用户的Windows帐户。众所周知,NTLM密码恢复速度非常快,这使其成为完美的选择。

您需要采取几个步骤充分利用该策略。

1. 分析未加密的数据以获取可以访问的任何密码。

2. 创建或更新自定义词典。

3. 使用自定义词典攻击NTLM密码。

4. 访问受DPAPI保护的数据(例如浏览器密码,SMB密码等)

5.更新自定义词典。

6.分析用户密码的字典。是否有任何可重复的模式?共享密码?常用模板?什么样的变型适合用户的个人资料?

7.使用“cleaned”的、基于模式的密码更新自定义词典(例如,对于“Password123”等条目,使用“密码”和中等强度的“数字”变型)。

8.攻击文件和文档时,将最快、最容易破坏的文件放在队列的顶部。NTLM密码是最弱的密码之一,应始终位于队列的顶部。

结论

本文所描述的策略是从最简单的入手,如果只考虑如何破解最有价值的证据,那么可能会被其最强大的保护所限制,通常无法暴力恢复密钥。

参考链接:

https://blog.elcomsoft.com/2022/12/windows-account-passwords-why-and-how-to-break-ntlm-credentials/

https://blog.elcomsoft.com/2016/03/breaking-into-microsoft-account-its-no-google-but-getting-close/

https://blog.elcomsoft.com/2022/08/breaking-windows-passwords-lm-ntlm-dcc-and-windows-hello-pin-compared/

声明:本文来自数据安全与取证,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。