记录一次学习--委派攻击学习
目录
为什么要使用委派
什么账号可以使用委派
非约束性委派
这里有一张图
利用
流程
约束性委派
这里有一张图
如何利用
条件
具体流程
为什么要使用委派
这个是因为可能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 票据名称
复现过程在另外一篇文章
相关文章:
记录一次学习--委派攻击学习
目录 为什么要使用委派 什么账号可以使用委派 非约束性委派 这里有一张图 利用 流程 约束性委派 这里有一张图 如何利用 条件 具体流程 为什么要使用委派 这个是因为可能A服务需要B服务的支持,但是A服务的权限不可以使用B服务。然后这时就可以让域用户将…...
前端列表数据太多导致页面卡顿就这么处理
前端列表数据太多页面卡顿就这么处理 实际场景什么是虚拟列表虚拟列表实现原理实战中虚拟列表的问题及相应解决方案 实际场景 首先看以下两个实际场景: 场景一:有一个数据列表,数据量非常大且每一个数据项都有几十列甚至更多,且后…...
机器学习_神经网络_深度学习
【神经网络——最易懂最清晰的一篇文章 - CSDN App】https://blog.csdn.net/illikang/article/details/82019945?type=blog&rId=82019945&refer=APP&source=weixin_45387165 参考以上资料,可对神经网络有初步了解。接下来可参考书籍等投身实际项目中使用。 书…...
MT6765/MT6762(R/D/M)/MT6761(MT8766)安卓核心板参数比较_MTK联发科4G智能模块
联发科Helio P35 MT6765安卓核心板 MediaTek Helio P35 MT6765是智能手机的主流ARM SoC,于2018年末推出。它在两个集群中集成了8个ARM Cortex-A53内核(big.LITTLE)。四个性能内核的频率高达2.3GHz。集成显卡为PowerVR GE8320,频率…...
TikTok五分钟开户快速步骤流程!
1、注册您的账户 首先,访问TikTok广告管理器的注册页面(https://ads.tiktok.com/i18n/signup/)以创建账户。您可以选择使用电子邮件或手机号码进行注册。输入您的电子邮件和密码后,您需要同意TikTok的广告条款,然后点击…...
BFS 解决拓扑排序 , 课程表 , 课程表 II , 火星词典
文章目录 拓扑排序简介1.有向无环图(DAG图)2.AOV网:顶点活动图3.拓扑排序4.实现拓扑排序 207. 课程表210. 课程表 IILCR 114. 火星词典 拓扑排序简介 1.有向无环图(DAG图) 像这样只能从一个点到另一个点有方向的图&a…...
web安全攻防渗透测试实战指南_web安全攻防渗透测试实战指南,零基础入门到精通,收藏这一篇就够了
1. Nmap的基本 Nmap ip 6 ip Nmap -A 开启操作系统识别和版本识别功能 – T(0-6档) 设置扫描的速度 一般设置T4 过快容易被发现 -v 显示信息的级别,-vv显示更详细的信息 192.168.1.1/24 扫描C段 192.168.11 -254 上 nmap -A -T4 -v -i…...
大模型如何赋能智慧城市新发展?
国家数据局近期发布的《数字中国发展报告(2023)》显示,我国数据要素市场化改革步伐进一步加快,数字经济规模持续壮大,数字技术应用场景不断拓展。这一成就的背后是数字技术广泛应用,数字技术不仅影响着老百…...
随记——机器学习
前言 本来有个500块钱的单子,用机器学习做一个不知道什么鸟的识别,正好有数据集,跑个小项目,过一下机器学习图像识别的流程,用很短的时间记录下来..... 一、数据预处理 将数据集分为训练集和测试集,直接…...
【在Linux世界中追寻伟大的One Piece】进程间通信
目录 1 -> 进程间通信介绍 1.1 -> 进程间通信目的 1.2 -> 进程间通信发展 1.3 -> 进程间通信分类 1.3.1 -> 管道 1.3.2 -> System V IPC 1.3.3 -> POSIX IPC 2 -> 管道 2.1 -> 什么是管道 2.2 -> 匿名管道 2.3 -> 实例代码 2.4 -…...
多路复用IO
一。进程处理多路IO请求 在没有多路复用IO之前,对于多路IO请求,一般只有阻塞与非阻塞IO两种方式 1.1 阻塞IO 需要结合多进程/多线程,每个进程/线程处理一路IO 缺点:客户端越多,需要创建的进程/线程越多,…...
C++ prime plus-7-編程練習
1, #include <iostream>// 函数声明 double harmonicMean(double x, double y);int main() {double x, y, result;while (true) {std::cout << "请输入两个数(其中一个为0时结束): ";std::cin >> x >> y;…...
计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值,打印出结果
我们写这道题的时候需要俩变量接受,一个总数一个分母,我们发现分母变化是有规律的从1~100循环。 #include<stdio.h> int main() {int i 0;int tag 1;double sum 0.0;for (i 1; i < 101; i){if (i % 2 0){sum sum - 1.0 / i;}else{sum s…...
Linux本地服务器搭建开源监控服务Uptime Kuma与远程监控实战教程
文章目录 前言**主要功能**一、前期准备本教程环境为:Centos7,可以跑Docker的系统都可以使用本教程安装。本教程使用Docker部署服务,如何安装Docker详见: 二、Docker部署Uptime Kuma三、实现公网查看网站监控四、使用固定公网地址…...
JS 历史简介
目录 1. JS 历史简介 2. JS 技术特征 1. JS 历史简介 举例:在提交用户的注册信息的时候,为避免注册出现错误后重新填写信息,可以在写完一栏信息后进行校验,并提示是否出现错误,这样会大大提高用户提交的成功率&…...
爬虫逆向学习(七):补环境动态生成某数四代后缀MmEwMD
声明:本篇文章内容是整理并分享在学习网上各位大佬的优秀知识后的实战与踩坑记录 前言 这篇文章主要是研究如何动态生成后缀参数MmEwMD的,它是在文章爬虫逆向学习(六):补环境过某数四代的基础上进行研究的,代码也是在它基础上增…...
光伏电站并网验收需要注意什么细节
一、设备质量及安装验收 光伏组件:检查光伏组件的外观是否完好无损,无明显的缺陷和破损,表面是否清洁无污染。同时,需要验证光伏组件的型号、参数是否与设备台账资料一致。 逆变器:确认逆变器具备防雷、防尘、防潮等…...
页面禁用鼠标右键属于反爬虫措施吗 ?
是的,禁用鼠标右键通常被视为一种反爬虫(anti-scraping)措施。网站开发者常常采用这种技术来防止用户通过右键菜单复制文本、图像或其他内容,特别是在内容保护和数据安全方面。以下是禁用鼠标右键的一些背景和目的: 1…...
视频理解大模型最新进展
文章目录 Video-LLaMAVision-Language BranchAudio-Language Branch Video-ChatGPTMiniGPT4-videoCogVLM2-Video(1)Pre-training(2)Post-training Qwen2-VLMA-LMMChat-UniVi大模型对比 Video-LLaMA 2023:阿里达摩院的…...
cocos creator 使用 protobuf 的步骤与注意事项
移除可能曾安装过的protobuf // 移除全局 npm remove -g protobufjs npm remove -g protobufjs-cli npm remove -g pbjs // 移除项目中的 npm remove --save protobufjs npm remove --save protobufjs-cli npm remove --save pbjs全局安装 npm i -g protobufjs //或者 cnpm …...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...

