中间商之 Ntlm Relay 攻击分析

NTLM、net NTLM

微软从windows

server 2003 以后微软禁用了LM

hash,使用NT

hash进行代替,所以就先不去看LM

hash了。因为NT

hash使用的NTLM协议,所以大家都将NT

hash错误地称为 ” NTLM

hash ” 。其实应该称为NT

hash。

通常NT

hash存放在计算机的Sam文件中。如果在域内则存放在NTDS数据库中,这类Hash可以直接用于PTH,并且这类Hash会在Lsass进程中缓存,便于Ssp使用。

Net-NTLM Hash用于网络身份认证 ,分为两个版本, Net-NTLMv1 和 Net-NTLMv2 。

通常如果使用Ntlm relay 的话是需要 Net-NTLM Hash的,这类Hash并不能直接用来Pth,但是如果版本较低可以通过暴力破解来获取明文密码。而 Net-NTLM Hash也就是NTLM认证的第二个包中Response字段的值

picture.image

默认情况下,客户端和服务器之间的所有 SMB 流量都未签名 ,但是在域控中 签名 是默认开启的,所以我们是不能对域控进行中继。签名作用是确保内容在发送和接受之间没有被篡改。

普通计算机中数字签名默认关闭

picture.image

在请求的数据包中,如果该标志为 0 时,则表示客户端不支持签名

picture.image

域控中数字签名默认开启

picture.image

在请求的数据包中,如果该标志为1时,则表示客户端支持签名,这是在向域控请求时获得的数据包

picture.image

当我们向域控发送请求后,我们是支持签名的但是不需要签名

picture.image

域控返回给我的包是它支持签名,而且还需要签名

picture.image

都支持签名

picture.image

picture.image

只要是支持NTLM SSP的协议,都可以Relay过去,那么如果所有协议都集成的NTLM,那么就会变得很乱,微软提供了SSPI可以处理身份验证的接口并处理不同的验证请求。

SSP & SSPI

SSP全称 Security Support Provider ,主要用于系统的认身份证,但是身份验证实现的机制不一样,其实SSP就是一个DLL文件。

SSPI全称 Security Support Provider Interface ,是微软提供的标准化身份验证接口,不同的包连接到这个接口来处理不同的认证请求,SSPI是windows在认证操作中所使用的API,也就是SSPI是SSP的API接口。

可以看到smb认证中使用的NTLMSSP , 是微软用来NTLM

challenge-response

身份验证

picture.image

Ntlm认证流程

当前机器:1 92.168.192.135

目标机器:1 92.168.192.134

首先向目标服务发送我们的信息

picture.image

目标服务接收到请求后,会返回给我们一个challenge,这个challenge是用来加密然后验证的

picture.image

然后我们将需要登录账号对应的NT

hash加密challenge得到Response,并将用户名以及域名和刚才得到的Response一起发送给目标服务

picture.image

之后目标服务会在自己的sam文件中查找对应的用户名,如果找到,则通过找到的nt

hash进行加密challenge,之后将发过来的结果进行对比,成功则允许访问,失败则不允许访问。

Net-NTLMv1 几乎不用了,从server 2008 开始,微软默认使用 Net-NTLMv2 ,所以 Net-NTLMv1 不去详细看, Net-NTLMv2 格式为:

username::domain:challenge:HMAC-MD5:blob

其中 HMAC-MD5 的值为NTP roofstr 字段的值,而 blob 为Response去掉NTP roofstr 字段值之后的值

picture.image

我们可以使用得到的值去使用hashcat进行爆破,但 Net-NTLMv2 hash一般爆破不出来,需要强大的字典才可以。

admin ::wjlab3 : 285f6f947321b8e0:be06d69174d34cd95abf9fb6e8c63c8e:0101000000000000e5ebb2166b1ed801686671564b574e50000000000100160057004a004c004100420033002d00570049004e00370002000c0057004a004c0041004200330003002c0077006a006c006100620033002d00770069006e0037002e0077006a006c006100620033002e0063006f006d000400140077006a006c006100620033002e0063006f006d000500140077006a006c006100620033002e0063006f006d0007000800e5ebb2166b1ed8010900200063006900660073002f0057004a004c004100420033002d00570049004e0037000000000000000000

picture.image

1、 首先client告诉server想要进行身份验证

2、 S erver在本地生成一个1 6 位随机数的challenge,并使用client的密码hash对challenge进行加密。

3、 C lient收到challenge后,用当前账号的密码hash对challenge进行加密,之后发送给server,server将自己加密的内容与client发送的内容进行对比,相同则验证成功,不相同则失败。

LLMNR 协议

首先我们要知道LLMNR是做什么用的,而且在什么情况下会触发。

LLMNR全称为 Link-Local Multicast Name Resolution , 是一种基于DN S数 据包格式的协议, 也就是与DNS协议类似,同一网络中的某主机可以通过此协议去查询其他主机。

当A向B发送请求时首先A会在本地的hosts文件中查找,如果没有找到的话会向DNS服务器中查找,如果还没有则会通过LLMNR协议 和NetBIO S协议向局域网中发送广播询问。

能够触发LLMNR的主要是smb请求,或者基于数据链路层的请求基本都会触发。

使用smb请求

picture.image

获取的LLMNR数据包

picture.image

使用 Responder 脚本进行监听

picture.image

再发送请求后运行 Responder 的机器会响应当前机器,并获取到当前机器的Net

ntlmv 2 的Hash。

picture.image

NetBios协议

NetBIOS(网络基本输入/输出系统)是一种网络服务,它使不同计算机上的应用程序能够通过局域网相互通信 , NetBIOS 也就是我们的计算机名,我们通过计算机名可以找到对应的IP,在windows中默认在安装TCP / IP时会自动安装。

Ntlm relay

流程

攻击者:1 92.168.192.135

目标s erver :1 92.168.192.134

client ( 已 控高权限):1 92.168.192.133

picture.image

在攻击机上使用 impacket 中的n tlmrelayx.py 脚本监听并转发到目标机 ( 1 92.168.192.134)

picture.image

在已拿到高权限 client 上发一个smb请求

picture.image

之后我们就可以获取到目标s erver (1 92.168.192.134) 上用户的hash

picture.image

原理

我们可以看到 client ( 1 92.168.192.133) 和目标s erver ( 1 92.168.192.134) 进行通信中间都经过了我们的攻击者 ( 1 92.168.192.135) 这台计算机。红色标注出来的地方为攻击者与目标server进行交互的地方。

picture.image

目标server将 challenge 发送给攻击者,攻击者又将目标发送的 challenge 转发给了高权限主机 ( 1 92.168.192.133)

攻击者收到的 challenge 为: 175a855d4466e8e6

picture.image

转发给 client (192.168.192.133) challenge 为: 175a855d4466e8e6

picture.image

然后 client 使用自己的hash加密 challenge 生成Response,并将生成的Response和用户名、主机名等信息发送给攻击者 (192.168.192.135)

picture.image

然后攻击者将得到的包发送给目标server,由于包里的admin用户为高权限用户,则攻击者就可以代表admin用户去执行操作。

picture.image

推荐阅读

实战|记一次奇妙的文件上传getshell

「 超详细 | 分享 」手把手教你如何进行内网渗透

神兵利器 | siusiu-渗透工具管理套件

一款功能全面的XSS扫描器

实战 | 一次利用哥斯拉马绕过宝塔waf

BurpCrypto: 万能网站密码爆破测试工具

快速筛选真实IP并整理为C段 -- 棱眼

自动探测端口顺便爆破工具t14m4t

渗透工具|无状态子域名爆破工具(1秒扫160万个子域)

查看更多精彩内容,还请关注 橘猫学安全:

每日坚持学习与分享,觉得文章对你有帮助可在底部给点个“ 再看

0
0
0
0
评论
未登录
暂无评论