SMB中继——内网渗透

admin 2025年2月15日23:25:19评论24 views字数 2378阅读7分55秒阅读模式

声明

以下内容,均为文章作者原创,由于传播,利用此文所提供的信息而造成的任何直接或间接的后果和损失,均由使用者本人负责,长白山攻防实验室以及文章作者不承担任何责任。

长白山攻防实验室拥有该文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的副本,包括版权声明等全部内容。声明长白山攻防实验室允许,不得任意修改或增减此文章内容,不得以任何方式将其用于商业目的。

0x01 SMB协议

SMB概述:
SMB(ServerMessage Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。
SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。
SMB使用了NetBIOS的应用程序接口 (ApplicationProgram Interface,简称API),一般端口使用为139,445。
SMB是应用层(和表示层)协议,使用C/S架构,其工作的端口与其使用的协议有关。

0x02 NTLM hash& 

 Net-NTLM hash

NTLM(V1/V2)的hash是存放在安全账户管理(SAM)数据库以及域控的NTDS.dit数据库中,获取该Hash值可以直接进行Pass the Hash攻击。
Net-NTLM(V1/V2)的hash值是基于用户密码的NTLM hash计算出来的,用于网络中的认证,步骤如下:
  • 客户端向服务器发送一个请求,请求中包含明文的登录用户名。服务器会提前保存登录用户名和对应的密码 hash。

  • 服务器接收到请求后,生成一个 16 位的随机数 (被称为 Challenge也就是挑战码), 明文返回客户端。使用存储的登录用户密码 hash 加密 Challenge,获得 Challenge1。

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

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

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

0x03 NTLM和SMB的关系

SMB的认证可以基于NTLM协议或者kerberos协议,前者使用了hash,后者使用了ticket,是构成SMB的PtH和PtT攻击的基础。
NTLM 并没有定义它所依赖的传输层协议。NTLM 消息的传输完全依赖于使用 NTLM 的上层协议来决定,可以是SMB,也可以是TCP,亦或HTTP。
从攻击角度来看:
  • 可以利用NTLM哈希值进行“哈希传递”攻击
  • 无法利用Net-NTLM哈希值来进行“哈希传递”攻击

0x04 SMB中继攻击

1、获取NTLMv2哈希值
(1)使用Responder工具
Responder工具可以污染LLMNR和NBT-NS请求。
在目录下的Responder.conf可以配置启用的模块,开启Responder开始嗅探
responder -I eth0
(最新版的responder取消了-f参数)
SMB中继——内网渗透
然后在受害机上对目标机器进行访问共享,输入\192.168.192.157
SMB中继——内网渗透
会自动弹出认真对话框之后我们看到responder已经嗅探到了NTLMv2 hash
SMB中继——内网渗透
(2)原理解析
如果网络中的任何用户试图访问共享哪个机器没有IP或用户类型共享名称不正确,该机器将触发LLMNR请求到网络,Responder将通过说我是那台机器来回答该请求,请提供给我NTLMv2哈希并访问资源。
SMB中继——内网渗透
当机器触发LLMNR请求时,Responder响应该请求并从域中捕获用户的NTLMv2的哈希值,并且在logs目录下生成txt文件。
2、攻击方式
(1)hashcat爆破密码
Hashcat是一个用来破解哈希值的工具,支持CPU/GPU散列破解,并支持多种哈希格式
当我们获取到NTLMv2的hash值后可以采用hashcat进行爆破,但是hashcat进程缓慢而且hashcat是根据字典爆破的,如果字典不够强大是不可能爆破成功的。
(2)通过MultiRelay.py进行中继
前提条件是目标机器关闭SMB签名
首先用Responder中的RunFinger.py脚本来识别主机是否关闭SMB签名,大部分机器默认关闭
Windows server关闭SMB签名命令
SMB中继——内网渗透
reg add HKLMSYSTEMCurrentControlSetServicesLanmanServerParameters /v RequireSecuritySignature /t REG_DWORD /d 0 /f
这里可以看到两台机器的SMB签名都是关闭状态,我们就可以对其发起NTMLv2中继攻击直接运行MultiRelay脚本进行中继。
SMB中继——内网渗透
然后修改Responder的配置文件,不让其对hash进行抓取。
SMB中继——内网渗透
然后重启启动Responder.py,进行毒化responder -I eth0,然后在机器上传递一个SMB流量即可获得shell。
MultiRelay还集成了Mimikatz,可以抓取密码,和尝试cs上线。

0x05 参考链接

  1. https://tttang.com/archive/1548/#toc_responder

  2. https://www.jianshu.com/p/9627962db4da

SMB中继——内网渗透
SMB中继——内网渗透
SMB中继——内网渗透

▇ 扫码关注我们 ▇

长白山攻防实验室

学习最新技术知识

原文始发于微信公众号(长白山攻防实验室):SMB中继——内网渗透

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月15日23:25:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SMB中继——内网渗透https://cn-sec.com/archives/1076193.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息