首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >彩虹表是破解NTLMv2哈希的可行工具吗?

彩虹表是破解NTLMv2哈希的可行工具吗?
EN

Security用户
提问于 2016-08-30 13:53:33
回答 3查看 7.6K关注 0票数 4

背景

我不清楚NTLM散列和NTLM协议之间的区别,不管版本如何。

我的初步理解是,存在"NTLMv2散列“这样的东西,并且这些散列未加盐,将是使用彩虹桌进行计算前攻击的可行目标。

既然如此,我惊讶地发现,网上搜索"NTLMv2彩虹表“没有显示NTLMv2发布的彩虹表。分布式彩虹表项目为NTLM创建了彩虹表,但据我所知没有为NTLMv2创建彩虹表。它的社区表现出极大的兴趣也没有生成NTLMv2彩虹表。也许这是因为NTLMv2彩虹表是计算成本更高,而到目前为止,还没有一个投资于生成彩虹表的人愿意发布这些表格?

问题

有没有所谓的"NTLMv2哈希“,如果是的话,这些是使用彩虹表进行计算前攻击的可行目标吗?如果不是,那是因为没有所谓的"NTLMv2散列“,还是因为有,但彩虹表不是对它们的可行攻击?

EN

回答 3

Security用户

回答已采纳

发布于 2016-08-30 16:13:19

当考虑适用于Windows环境中针对用户密码的暴力攻击的风险时,值得考虑的是使攻击者能够捕获哈希的妥协的性质。

对于在用户身份验证期间依赖于哈希的网络捕获的攻击,彩虹表将无效-- NTLMv2协议提供了额外的散列计算,有效地引入了salt (如前面的答案所述)。

但是,如果攻击者能够成功地从SAM数据库中提取密码散列,则情况并非如此。存储的'NT散列‘没有应用额外的散列操作/盐析。

以下引用自此微软文章微软文章

密码的NT散列使用未加盐的MD4哈希算法计算。MD4是一个密码单向函数,它生成密码的数学表示.这个散列函数被设计成总是从相同的密码输入产生相同的结果,并将两个不同的密码可以产生相同结果的冲突最小化。此散列的长度总是相同的,不能直接解密以显示明文密码。因为NT哈希只在密码更改时才会更改,所以在更改用户密码之前,NT哈希对于身份验证是有效的。注意,为了防止对NT散列或联机系统的暴力攻击,使用密码进行身份验证的用户应该设置强大的密码或密码,这些密码或密码包含来自多个集合的字符,并且只要用户能够容易记住。

票数 2
EN

Security用户

发布于 2017-05-31 19:00:49

NTLMv1或NTLMv2是一种Windows挑战响应身份验证协议,用于在交互式和非交互式登录中对用户进行身份验证。这里解释了交互式登录和非交互式登录。

https://msdn.microsoft.com/en-us/library/gg604699.aspxhttps://msdn.microsoft.com/en-us/library/windows/desktop/aa378749(v=vs.85).aspx

NTLMv1和NTLMv2身份验证协议存在诸如传递哈希、反射和中继攻击等漏洞,但不受彩虹表攻击的影响。

在NTLMv1和NTLMv2上的MSDN文档中,NT Hash称为NT单向函数(NTOWF),并使用MD4或MD5散列算法从用户密码中获取哈希。NTOWF使用MD4或MD5散列算法从用户密码计算哈希。Windows域中所有用户的NT散列存储在域控制器上的ntds.dit文件中。虽然用户密码的NT哈希也可以从Windows系统的安全帐户管理器(SAM)和安全注册表单元中检索,但它们可以交互登录。

NTLM经常用于引用NTLM挑战-响应协议和NTOWF,这是造成这种混乱的根本原因。

在Windows系统或域控制器上存储用户密码NTOWF缺乏盐碱化,使其易受彩虹表攻击。

下面是字符串‘hashcat’作为NTOWF的样子,以及在NTLMv1和NTLMv2中使用时的样子。我从hashcat的示例散列页面中借用了这个。

NTOWF b4b9b02e6f09a9bd760f388b67351e2b =>,这仍然是静态的,并且将以相同的格式存储在SAM或域控制器中,直到密码更改为止。

admin::N46iSNekpT:08ca45b7d7ea58ee:88dcbe4446168966a153a0064958dac6:5c7830315c7830310000000000000b45c67103d07d7b95acd12ffa11230e0000000052920b85f78d013c31cdb3b92f5d765c783030 NTLMv2 =>这个身份验证响应将改变,即使密码是‘hashcat’,因为每次协商挑战响应协议时,用于计算此响应的挑战都会发生变化。

u4-netntlm::kNS:338d08f8e26de93300000000000000000000000000000000:9526fb8c23a90751cdd619b6cea564742e1e4bf33006ba41:cb8086049ec4736c NTLMv1 =>这个身份验证响应即使密码是‘hashcat’也会改变,因为每次协商挑战响应协议时,用于计算此响应的挑战都会发生变化。

维基百科对NTLMv1和NTLMv2如何在“NTLMv1”中使用他们的密码(也称为NTOWF)来验证用户的身份有很好的文章。

如果您好奇为什么NTLMv1和NTLMv2,先对客户端到服务器进行身份验证,而不是反之亦然,而后者则将客户端和服务器相互进行身份验证。

票数 3
EN

Security用户

发布于 2016-08-30 14:22:25

尽管NTLMv2散列没有真正的盐,但仍然存在这样的情况:仅凭密码并不是唯一需要散列的东西。从你的维基链接:

LMv2和NTv2都使用用户密码的NT哈希和其他标识信息来质疑客户端和服务器。确切的公式是从存储在SAM或AD中的NT Hash开始,然后使用HMAC-MD5继续散列用户名和域名。

在这种情况下,用户名和域名实际上是唯一的盐。

因此,盐渍散列是唯一的,不容易通过彩虹表受到攻击。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/135349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档