记录一次学习--委派攻击学习

news2024/12/23 5:44:31

目录

为什么要使用委派

什么账号可以使用委派

非约束性委派

这里有一张图

利用

流程

约束性委派

这里有一张图

如何利用

条件

具体流程


为什么要使用委派

这个是因为可能A服务需要B服务的支持,但是A服务的权限不可以使用B服务。然后这时就可以让域用户将自己的权限委派到A服务这里,这样A服务就可以通过域用户权限访问B服务了。

什么账号可以使用委派

机器账户(主机账户)、和服务账户。也只有前面两类账户有委派属性

非约束性委派

这里有一张图

我们首先分析以下上面的图

1、首先用户向KDC请求TGT1

2、然后KDC返回TGT1

3、然后用户向KDC再次请求TGT,我们这里称TGT2

4、然后KDC返回TGT2

5、然后用户向KDC请求服务1的ST票据

6、然后KDC返回服务1的ST票据

7、然后用户用服务1的ST向服务1请求服务,同时用户将TGT2给了服务1

8、然后服务1用用户的TGT2去向KDC请求服务2的ST票据

9、然后KDC返回ST票据给服务1

10、然后服务1去访问服务2

11、服务2回复服务1

12、然后服务1回复给用户

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

在这里有一个问题TGT2是没有被限制的,如果委派的账户是一个高权限账户,那么我们就可以利用TGT2去访问其他服务,我们的非约束委派攻击就是利用这一点来进行攻击的。

非约束性委派其实就是权限最大的一种委派方式,即完全的获取到你这个用户的权限(相当于获取到这个用户的TGT)。对于非约束性委派,服务账号可以获取被委派用户的TGT,并将TGT缓存到LSASS进程中,从而服务账号可使用该TGT,模拟用户访问任意服务。

利用

这里需要拿下一台1设置了非约束委派的设备,然后诱导域管访问这台机子。然后就可以获取到域管TGT了。也就是域管一访问服务就将TGT留在服务这里了。

这个东西也是一个后门,当你拿下的管理员权限被收走后你使用普通用户可以去访问其他服务。我感觉这个东西更偏向权限维持,因为如果我只是拿下了一个低权限用户,是没有办法利用mimikatz等些工具做很多事情,但是如果我拿到了一个域控或者本地管理员的账号我可以把这个票据导出来,然后如果我的域控或者本地管理员的权限丢到。我还可以使用普通用户拿着刚刚的导出的票据去进行一些操作如访问域控什么的。

流程

寻找配置了非约束性委派的服务或主机账号,这里可以使用adfind进行查询,可以使用下面命令查询

# ADFind查询非约束委派普通账户
AdFind.exe -b "DC=redteam,DC=lab" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" dn
# ADFind查询非约束机器账户
AdFind.exe -b "DC=redteam,DC=lab" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" dn

诱导其他账号访问配置了非约束性委派的服务或主机。

这里有两个思路一个是诱导域管账户来访问这台机器,这个不是很合理,毕竟人家域控没事为啥要访问你。

第二个思路是结合打印机漏洞,这个漏洞是强迫运行的主机向目标主机发起 Kerberos 或 NTLM 认证请求。 这里就可尝试强制让域控来连接你的机器

这里需要administrator权限,然后这里可以使用rubeus工0具监听回连,然后使用spoolsqmple工具利用漏洞强制回连

使用rubeus工具监听回连

Rubeus.exe monitor /interval:隔多少秒监听一次 /filteruser:监听的账户

使用spoolsqmple工具执行打印机漏洞利用,进行强制回连

SpoolSample.exe 监听的账户 有委派的机器

(这里可以直接使用rubeus导入:Rubeus.exe ptt /ticket:抓出来的票据)

导出票据,进行票据注入。

域内主机导出票据
mimikatz.exe "privilege::debug" "sekurlsa::tickets /export" "exit"

使用秘密katz导入内存
mimikatz.exe "kerberos::ptt 票据名称" "exit"

约束性委派

这里有一张图

出现约束委派就是因为非约束委派的不安全性,所以微软映入了S4U(S4U2Self / S4U2proxy )进行委派

利用S4U2Self协议(这里看协议名字就可以知道是用来请求自身)

1、用户向服务1发起请求,这里是通过kerberos协议外的方式访问服务1,所以这里是没有权限的

2、服务1以用户的名义向KDC请求用于访问服务1的ST1,在这里服务1已经获取了TGT

3、KDC返回给服务1一个服务1的ST票据

4、服务1响应用户

利用S4U2proxy协议

5、用户向服务1发起请求

6、服务1以用户名义向KDC请求服务2的ST2

7、KDC返回服务2的ST2给服务1(如果请求中包含 PAC,则 KDC 通过检查 PAC 的签名数据来验证 PAC ,如果 PAC 有效或不存在,则 KDC 返回 ST2 给 service1,但存储在 ST2 的 cname 和 crealm 字段中的客户端身份是用户的身份,而不是 service1 的身份。 )

8、服务1使用ST2以用户的名义访问服务2

9、服务2响应服务1

10、服务1回复用户

如何利用

条件

管理员设置了约束委派
攻击者控制了服务1的账户

具体流程

如果我们可以攻破配置约束委派的服务账户(获取密码/Hash)(这个账户就是上面过程中的服务1账户),我们就可以模拟域内任意用户(如 domain\administrator) 并代表其获得对已配置服务的访问权限(获取 TGS 票据)。

1、我们可以使用Adfind查询约束委派的用户

AdFind.exe -b "DC=xinhuo,DC=com" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto

2、然后我们可以使用keko工具请求该用户的TGT(这个账户就是上面过程中的服务1账户)

tgt::ask /user:服务用户用户名 /domain:域名 /password:服务用户的明文密码 /ticket:指定票据名称

3、伪造S4U请求以administrator用户请求访问服务2获取服务2的ST

tgs::s4u /tgt:票据名称 /user:伪造用户名@域名 /service:服务2/用户名.域名

4、使用mimikatz导入票据ST2和票据ST1

kerberos::ptt 票据名称

复现过程在另外一篇文章

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

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

相关文章

2024年【烟花爆竹经营单位主要负责人】免费试题及烟花爆竹经营单位主要负责人考试技巧

题库来源:安全生产模拟考试一点通公众号小程序 烟花爆竹经营单位主要负责人免费试题是安全生产模拟考试一点通总题库中生成的一套烟花爆竹经营单位主要负责人考试技巧,安全生产模拟考试一点通上烟花爆竹经营单位主要负责人作业手机同步练习。2024年【烟…

吉林大学微机接口实验五:D/A转换

1.实验内容 2.实验原理/预备知识 D/A转换器TLC7528是关键,其用法参见: 芯片部件汇总:常用功能部件大全-CSDN博客 直接找"TLC7528 D/A数模转换器"(实际上学校的讲义已经讲的很清楚,我只是给搬到了博客里&…

C++ | Leetcode C++题解之第430题扁平化多级双向链表

题目&#xff1a; 题解&#xff1a; class Solution { public:Node* flatten(Node* head) {function<Node*(Node*)> dfs [&](Node* node) {Node* cur node;// 记录链表的最后一个节点Node* last nullptr;while (cur) {Node* next cur->next;// 如果有子节点…

【源码+文档+调试讲解】重庆旅游景点数据分析系统python

摘 要 重庆旅游景点数据分析系统是一个专门为旅游管理部门和景点运营商设计的信息化工具&#xff0c;它通过集成和分析各种数据来优化景点管理和提升游客体验。该系统能够实时收集游客流量、景点信息、满意度反馈等关键信息&#xff0c;帮助管理者洞察游客行为和市场趋势。系统…

C++ const成员函数

个人主页&#xff1a;Jason_from_China-CSDN博客 所属栏目&#xff1a;C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目&#xff1a;C知识点的补充_Jason_from_China的博客-CSDN博客 C const引用常量 使用规则 引用常量对象&#xff1a;可以引用一个常量对象&#xff0…

Unity 的Event的Use()方法

对于Event的Use方法&#xff0c;其在调用后将不会再判断同类型的事件 这种情况下&#xff0c;第二个MosueDown不会进入&#xff0c;因为已经Use 如果把Use注释掉 依旧能进入第二个MosueDown 也就是说当使用了Use方法&#xff0c;相同的事件类型不会进第二遍

【文心智能体】从零到一的优质智能体构建全攻略

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; 目录 创作平台&#xff1a;文心智能体平台&#xff1a; 基本配置智能体名称与简介人物设定回复逻辑prompt提示词的编写开场白设定与开场白…

利士策分享,领导者素养自检:五维审视法

利士策分享&#xff0c;领导者素养自检&#xff1a;五维审视法 在人生的广阔舞台上&#xff0c;每个人都蕴藏着成为领导者的潜力&#xff0c;但如何知晓自己是否已具备那份独特的素养&#xff1f; 这需要我们进行一次深刻而诚实的自我审视。 以下五个维度&#xff0c;或许能为你…

K8s Calico替换为Cilium,以及安装Cilium过程(鲁莽版)

迁移CNI插件的3种办法&#xff1a; 1、创建一个新的集群&#xff0c;通过Gitops的方式迁移负载&#xff0c;然而&#xff0c;这可能涉及大量的准备工作和潜在的中断。 2、另一种方法是重新配置/etc/cni/net.d/指向Cilium。但是&#xff0c;现有的pod仍将由旧的…

AI 驱动的数据库 TDSQL-C 实战与电商可视分析

目录 一、背景介绍二、实验介绍三、效果展示四、实操指导4.1 系统设计4.2 环境搭建4.2.1 购买 TDSQL-C Mysql Serverless 实例4.2.2 部署HAI高算力服务器本地python环境搭建 4.3 应用构建4.3.1 搭建项目框架4.3.2 TDSQL-C 数据库&HAI云算力配置4.3.3 应用开发4.3.4 运行程序…

将本地文件上传至虚拟机

1、查看虚拟机ip地址 ip addr 2、xshell连接上虚拟机 连接root连接不上的解决办法更改配置文件vim /etc/ssh/sshd_config 重启&#xff08;sudo service ssh restart&#xff09;并查看是否开启ssh服务&#xff08;sudo ps -e | grep ssh&#xff09; 即可连接成功 3、复制文…

深度学习500问——Chapter15:异构计算,GPU和框架选型(2)

文章目录 15.5 GPU硬件环境配置推荐 15.5.1 GPU主要性能指标 15.5.2 购买建议 15.6 软件环境搭建 15.6.1 操作系统选择 15.6.2 常用基础软件安装 15.5 GPU硬件环境配置推荐 15.5.1 GPU主要性能指标 GPU的性能主要由以下三个参数构成&#xff1a; 计算能力。通常我们关心的是…

Python酷库之旅-第三方库Pandas(127)

目录 一、用法精讲 566、pandas.DataFrame.swapaxes方法 566-1、语法 566-2、参数 566-3、功能 566-4、返回值 566-5、说明 566-6、用法 566-6-1、数据准备 566-6-2、代码示例 566-6-3、结果输出 567、pandas.DataFrame.melt方法 567-1、语法 567-2、参数 567-3…

sheng的学习笔记-AI-蒙特卡罗强化学习

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 强化学习&#xff1a;sheng的学习笔记-AI-强化学习&#xff08;Reinforcement Learning, RL&#xff09;-CSDN博客 K-摇臂赌博机&#xff08;K-armed bandit&#xff09;&#xff1a;https://blog.csdn.net/coldstarry/ar…

【AAOS】CarService -- Android汽车服务

概述 Android Automative OS理解为Android OS + Android Automative Service,而CarService就是提供汽车相关功能的最主要模块。 CarService与Android OS的关系:CarService运行于独立的进程中,其作为原有Android服务的补充,在汽车设备上运行。CarService在整体车载通信中起…

海南聚广众达电子商务咨询有限公司可靠不?

在这个短视频与直播电商风起云涌的时代&#xff0c;海南聚广众达电子商务咨询有限公司以其专业的服务能力和敏锐的市场洞察力&#xff0c;在抖音电商领域脱颖而出&#xff0c;成为了众多商家信赖的合作伙伴。今天&#xff0c;就让我们一同走进海南聚广众达&#xff0c;探索它是…

LLM - 使用 vLLM 部署 Qwen2-VL 多模态大语言模型 (配置 FlashAttention) 教程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142528967 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 vLLM 用…

VS Code使用Git Bash终端

Git Bash可以运行linux命令&#xff0c;在VS Code的终端界面&#xff0c;找到号旁边的箭头&#xff0c;就能直接切换了 当然&#xff0c;前提是安装了Git Bash&#xff0c;并且在资源管理器里&#xff0c;能鼠标右键出"Git Bash Here"

【个人笔记】线程和线程池的状态以及转换方式

线程和线程池的状态是不一样的&#xff01;&#xff01; 线程有 6 种状态&#xff0c;查看Thread的State枚举类&#xff1a; NEW&#xff1a;创建后没启动的线程就处于这种状态RUNNABLE&#xff1a;正在java虚拟机中执行的线程就处于这种状态BLOCKED&#xff1a;受阻塞并等待…