网站建设、公众号开发、微网站、微商城、小程序就找牛创网络 !

7*24小时服务专线: 152-150-65-006 023-68263070 扫描二维码加我微信 在线QQ

行业资讯团结互助,让我们共同进步!

当前位置:主页 > 技术资讯 > 新闻资讯 > 行业资讯 >

我们的优势: 10年相关行业经验,专业设计师量身定制 设计师一对一服务模式,上百家客户案例! 企业保证,正规流程,正规合作 7*24小时在线服务,售后无忧

以net use客户端为例,分析并修复了Responder实现的SMBv1和SMBv2中存在的问题。

文章来源:重庆网络安全 发布时间:2020-01-09 10:07:54 围观次数:
分享到:

摘要:由于SMB客户端的多样性以及不同客户端实现的复杂性,本文以网络使用客户端为例来分析和修复Responder实现的SMBv1和SMBv2中存在的问题。

  1.Responder


  到目前为止,Laurent Gaffie的Responder是每个渗透测试人员用来窃取各种形式的凭据(包括Net-NTLM哈希)的最受欢迎的工具。 它污染LLMNR和NBT-NS等主机以解析请求,从而欺骗目标主机以与其实现的恶意服务器进行通信,从而建立恶意浏览器代理并窃取凭据。 当网络上的设备尝试使用LLMNR和NBT-NS请求解析目标计算机时,响应者将伪装成目标计算机。 当受害者计算机尝试登陆攻击者计算机时,响应者可以获取受害者计算机用户的Net-NTLM哈希值。


  2.SMB工作流程


  2.1。 客户端首先发送SMB协商协议请求数据报,并列出其支持的所有SMB协议版本,如图3的20所示:


  2.2。 在收到请求消息后,服务器将对请求SMB2进行响应,以协商协议响应并列出其希望使用的协议版本。 如图3中的第24号所示:(有经验的学生会发现一些软件包已被跳过,不用担心,让我们稍后再谈)


  2.3。 确定协议后,客户端进程使用协商的版本来启动与服务器的身份验证以获取访问权限。


  2.4。 服务器发送会话建立响应响应数据包,以允许或(出于拒绝的原因)拒绝连接。


  注意:2.3和2.4认证涉及4个步骤(NTLM认证的内容)。 有更多要讨论的内容和更多在线信息。 我的任务是介绍该过程,以便每个人都不熟悉SMB。

blob.png

 3.NTLM身份验证(挑战响应机制)


实验环境:


  Windows 7(默认支持smb1和smb2)ip:172.20.10.8


  Windows XP(默认仅支持smb1)IP:172.20.10.7


  kali(默认值随响应程序一起提供)ip:172.20.10.6

  

实验细节:


  1.让我们从SMBv1开始:


  1.1。 同时启动Windows XP和Kali,并在Kali中的/usr/share/responder/Responder.conf路径下配置Responder配置文件。 设置CaptureMultipleCredentials = On,这也是响应者的默认设置。 设置完成后,在终端中输入响应者-I eth0以启用响应者进行哈希捕获。


  1.2。 进入XP,在cmd下输入net use \\ cfca(当用户不输入帐户密码时,Windows将使用当前的用户帐户密码尝试NTLM身份验证。如果身份验证失败,客户端将要求用户输入密码。 帐户密码重新验证-这是正常过程。根据正常过程,我们将进行两次身份验证,响应者还将捕获两次哈希。)


  1.3 Windows提示:帐户被禁用然后终止,而Kali仅捕获了一次hash。 

blob.png

blob.png

让我们看一下WireShake捕获数据包的情况。

blob.png

就像配置文件中所说的那样,响应者返回了ACCOUNT_DISABLED“ \ x72 \ x00 \ x00 \ xc0”的响应,没问题。


  为什么会这样?


  这是由于SMB客户端的复杂性,并且不同的团队可能实现不同的SMB客户端。  ACCOUNT_DISABLED“ \ x72 \ x00 \ x00 \ xc0”将使客户端重新验证某些SMB客户端,并且网络使用实现SMB客户端将收到ACCOUNT_DISABLED“ \ x72 \ x00 \ x00 \ xc0”数据包,身份验证状态为 打印在屏幕上,然后正常的重新认证过程被中断。


  在查阅了数据和实验之后,我们可以将其更改为PASSWORD_EXPIRED“ \ x71 \ x00 \ x00 \ xc0”,因为它具有更好的兼容性(实际上,有许多可以更改的值,例如LOGON_FAILURE“ \ x6d  \ x00 \ x00 \ xc0”,这里我们使用PASSWORD_EXPIRED“ \ x71 \ x00 \ x00 \ xc0”),客户端将再次执行身份验证。


  1.4返回kali,打开终端,输入vi /usr/share/responder/servers/SMB.py。 进行如下图所示的更改

blob.png

1.5删除Responder.db,重新启动Responder。 返回Windows XP重新验证。 成功!

blob.png

blob.png

2.再次使用SMBv2:


  2.1同时启动Windows 7和Kali,启动Responder,然后在Windows 7系统的cmd下使用net use \\ cfca。 您什么也找不到,仅响应LLMNR分析。 再次如图所示

blob.png

blob.png

让我们分析一下WireShark捕获的数据包

blob.png

客户端已正常身份验证(No2945,No2946,No2947),但是responder未响应客户端,因此它在客户端上导致了“系统错误64”错误,但是从理论上讲,net-ntlmhash具有 到达服务器现在,至少您必须解析一次,否则将很浪费。


  按照不浪费的原则,我迅速在代码中找到了数据包的代码(编号2947),并捕获了包含hash的包的MessageID捕获结果

blob.png

blob.png

您认为将其更改为3是否会结束?


  那你很简单


  我们应该做的是删除’ and GrabMessageID(data)[0:1] == “\x02″。


  你为什么这样做? 来,来,让微软告诉您很多

blob.png

一般含义是SMB2支持两种协商:多协议协商和SMB2仅协商。 区别在于多协议协商支持多版本SMB,而仅SMB2协商仅支持SMB2。


  当使用多协议协商时,包含哈希的数据包的ID为3;否则为0。 当使用仅MB2协商时,包含哈希的数据包的ID为2。


  当Microsoft实现对多个版本的SMB客户端的支持时,它将首先使用“多协议协商”进行协商。 一旦确定服务器和客户端共同支持SMB版本(假设为SMB2),则将使用SMB2唯一协商功能进行后续身份验证。 你为什么这样做? 兼容性兼容性兼容性,重要的是要说三遍,柔和的绿色将仅使用SMB2协商。 想想我 微软绝对不会那样做。


  因此,无论它等于2还是等于3,都会出现问题。 删除成为我能想到的最佳策略。


  让我们看一下更改后的SMBv2的效果

blob.png

blob.png

本文由 重庆网络安全 整理发布,转载请保留出处,内容部分来自于互联网,如有侵权请联系我们删除。

相关热词搜索:Responder SMBv1 SMBv2

上一篇:移动互联网的新时代:微信小程序制作
下一篇:Python:CRLF和任意文件读取的实战案例

热门资讯

鼠标向下滚动