跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

Windows下密码hash——Net-NTLMv1介绍

精选回复

发布于

0x00 前言

在之前的文章《Windows下的密码hash——NTLM hash和Net-NTLM hash介绍》中,分别介绍了NTLM哈希和Net-NTLMv2哈希。Net-NTLMv2的最后一个版本Net-NTLMv1在安全性方面相对脆弱。具体漏洞在哪里?本文将介绍。

0x01 简介

本文将介绍以下内容:

Net-NTLMv1的加密方法

Net-NTLMv1的解决方案

Net-NTLMv1的使用

0x02 Net-NTLMv1的加密方法

与Net-NTLMv2相比,Net-NTLMv2的加密过程如下:

向客户端服务器发送请求。

收到请求后,服务器生成一个16位的质询,并将其发送回客户端。

收到质询后,客户端使用登录用户的密码哈希对质询进行加密,并将其作为响应发送给服务器。

服务器验证响应

Net-NTLMv1的加密过程如下:

向客户端服务器发送请求。

收到请求后,服务器生成一个8位的质询,并将其发送回客户端。

收到质询后,客户端使用登录用户的密码哈希对质询进行加密,并将其作为响应发送给服务器。

服务器验证响应

两个过程是一样的,只是加密算法不一样,所以Net-NTLMv1比较脆弱。

Net-NTLMv1响应的计算方法比较简单,方法如下(目前很少接触LM hash,所以不考虑):

用户的NTLM hash分为三组,每组7位(长度不够,末尾填0),作为3DES加密算法的三组密钥,对服务器发送的挑战进行加密。

请参考:

http://davenport.sourceforge.net/ntlm.html#theNtlmResponse

0x03 Net-NTLMv1的破解思路

1、捕获Net-NTLMv1数据包,提取关键数据,使用hashcat进行字典破解

服务器:

系统:Server2008 x64

IP: 192.168.62.144

登录用户名:log1

登录密码:logtest123!

客户:

系统:Win7 x64

IP: 192.168.62.137

修改注册表以打开Net-NTLMv1:

REG add HKLM \系统\当前控制集\控制\ Lsa \/v lmcompatibility level/t REG _ DWORD/d 0/f

注:

从Windows Vista/Server2008开始,系统默认禁用Net-NTLMv1,使用Net-NTLMv2。

只修改客户端,不修改服务器。

客户端通过命令行远程连接到服务器。该命令如下所示:

net使用\ \ 192 . 168 . 62 . 144/u:log1 logtest 123!

注:

如果通过接口访问\\192.168.62.144的文件共享,会有一个额外的验证操作,会使用当前用户的密码进行验证。

客户端运行Wireshark来捕获数据包,如下图所示。

2-1.png

前四个数据包对应于NTLM认证的四个步骤。

看第二个包,得到挑战,是8d2da0f5e21e20ee,如下图所示。

2-2.png

查看第三个数据包,我们得到的LM响应数据为fec9b 082080 e 34 ba 0000000000000000,NTLM响应数据为51 acb9 f 9909 f 0e 3c 4254 c 332 f 5 e 302 A 38429 c 5490206 BC 04,用户名为A,主机名为Win-。

2-3.png

这里做个对比,如果是Net-NTLMv2,响应数据多一个NTLMv2响应,如下图所示。

2-4.png

接下来,使用Hashcat破解Net-NTLM v1。

NTLMv1的格式是:

用户名:主机名:LM响应:NTLM响应:挑战

构建的数据如下:

log 1:WIN-bh7 svrrdgva:fec9b 082080 e 34 ba 00000000000000000000000:51 acb9 f 9909 f 0e 3c 4254 c 332 f 5e 302 a 38429 c 5490206 BC 04:8d 20 f 5e 21 e 20 ee

Hashcat参数如下:

hashcat-m 5500 log1:WIN-bh7 svrrdgva:fec9b 082080 e 34 ba 00000000000000000000:51 ACB 9 f 9909 f 0 e 3c 4254 c 332 f 5 e 302 a 38429 c 5490206 BC 04:8d 20 f 5 e 21 e 20 ee/tmp/password . list-o found . txt

描述:

-m: hash-type,5500对应NetNTLMv1,详细参数请参考表格:https://hashcat.net/wiki/doku.php?

-o:输出文件,字典文件是/tmp/password.list。

-force代表强制,测试系统不支持英特尔OpenCL。

成功破解了登录的明文密码,输出如下

2-5.png

2、使用Responder等中间人攻击工具,控制Challenge为固定值1122334455667788

出口订单的NTLM哈希可以借助彩虹表恢复

例如,获得以下NetNTLMv1哈希:

a:WIN-bh7 svrrdgva:aebc 606d 66 e 80 ea 649198 ed 339 BDA 8 CD 7872 c 227d 6 BAF 33 a:aebc 606d 66 e 80 ea 649198 ed 339 BDA 8 CD 7872 c 227d 6 BAF 33 a:112233445567788

LM哈希是aebc 606d 66 e 80 ea 649198 ed 339 BDA 8 CD 7872 c 27d 6 BAF 33 a。

访问网站https://crack.sh/get-cracking/和使用免费的彩虹表来破解它。

按如下格式填写:

n hash:aebc 606d 66 e 80 ea 649198 ed 339 BDA 8 CD 7872 c 227d 6 BAF 33 a

然后填写邮箱,提交后会在短时间内(1分钟内)收到邮件,表示破解成功。

参考资料:

https://crack.sh/netntlm/

如下图

3-1.png

破解的ntlm哈希是d 25 ECD 13 FDD bb 542 D2 e 16 da 4 e 9 e 0333d,耗时45秒。

使用mimikatz获取该用户的ntlm哈希,对比结果相同,如下图所示。

3-2.png

0x04 Net-NTLMv1的利用思路

由于Net-ntlmv1的漏洞,在控制挑战后,可以在短时间内通过彩虹表恢复用户的NTLM哈希。所以在利用上的首选是将Win7环境下默认的Net-ntlmv2降级为Net-NTLMv1,获取本机的通讯数据,恢复NTLM哈希。实现工具是InternalMonologue。

下载地址:

https://github.com/eladshamir/Internal-Monologue

通过修改注册表,将Net-NTLMv2降级为Net-NTLMv1,获取运行用户令牌,模拟用户与NTLM SSP交互,将挑战控制为固定值112234455667788,导出返回的Net-NTLMv1响应。

注:

修改注册表需要管理员权限。

修改注册表以打开Net-NTLMv1:

REG add HKLM \系统\当前控制集\控制\ Lsa \/v lmcompatibility level/t REG _ DWORD/d 2/f

为了确保成功打开Net-NTLMv1,需要修改两个注册表项:

REG add HKLM \系统\当前控制集\控制\ Lsa \ ms v1 _ 0 \/v NtlmMinClientSec/t REG _ DWORD/d 536870912/f

REG add HKLM \系统\当前控制集\控制\ Lsa \ ms v1 _ 0 \/v RestrictSendingNTLMTraffic/t REG _ DWORD/d 0/f

获得的结果可以通过访问https://crack.sh/get-cracking/网站和使用免费的彩虹表来破解,所以我不会在这里重复。

优点:

这种方法不能操作lsass.exe过程。

与本地NTLM SSP的交互不会产生流量。

如果没有NTLM身份验证,将不会生成任何日志。

补充:

如果用普通用户权限执行InternalMonologue,可以得到当前用户权限的Net-NTLMv2数据包,用hashcat破解就可以得到当前用户的明文密码。

4-1.png

如上图,Net-NTLMv2的数据包如下:

a:WIN-bh7 svrrdgva:1122334455667788:db 18 AC 502 e 829 dfab 120 e 78 c 041 e 2 f 87:01010000000000008 e 2d debb 92 c 2d 30175 f 9 BDA 9183379000000000000200000000000

使用hashcat进行字典破解,参数如下:

hashcat-m 5600 a:WIN-bh7 svrrdgva:1122334455667788:db 18 AC 502 e 829 dfab 120 e 78 c 041 e 2 f 87:010100000000000008 e 2d debb 92 c 2d 30175 f 9 BDA 91833337900000000000000000000000000

成功破解,如下图

4-2.png

4-3.png

0x05 防御思路

从Windows Vista开始,微软默认使用Net-NTLMv2协议。如果要降级到Net-NTLMv1,必须先获得当前系统的管理员权限。

至于Net-NTLMv2协议,即使通信包被抓到,也只能被字典攻击或者暴力破解,破解的概率不是很高。

综上所述,从Windows Vista开始,系统使用的默认Net-NTLMv2协议可以保证其安全性。

0x06 小结

本文介绍了Net-NTLMv1的加密方法和破解思路,并对工具InternalMonologue进行了分析和测试。通过InternalMonologue可以在普通用户权限下获取Net-NTLMv2数据,这个功能很不错。

留下回复

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。