常见的ACL攻击方式,集权设施如何防御攻击?

news2024/11/28 20:50:41

本文主要介绍了 WindowsAD域中基于访问控制列表(ACL)的攻击,在AD域的攻击手法中,基于ACL的攻击由于理解起来比较困难,现有的安全设备也很少有对ACL的监控,这种类型的攻击通常会被安全人员所忽视。

1.什么是ACL

在Windows访问控制模型中,有两个主要的组成部分:访问控制令牌(Access Token)和安全描述符(Security Descriptor),访问控制令牌由访问者持有,包含已登录用户的信息,安全描述符与访问对象相关联,主要有四个部分组成OWNER、GROUP、SACL、DACL,其中OWNER和GROUP分别表示对象的拥有者和对象所在的组,用SID的形式表示,SACL和DACL都是由若干条ACE组成,SACL的作用是控制对对象的某个属性访问日志的记录与否,DACL则控制着用户或者组是否对对象有访问权限,这也是我们主要关注的部分,AD域中的对象都是存储在LDAP数据库中,而对象的DACL就存储在nTSecurityDescriptor属性中,我们可以通过服务管理查看对象的ACL。

也可以通过Adfind工具来查询域内对象的ACL

可以看到图1中hackpc对象的ACL一目了然,而图2中OWNER和GROUP的SID还比较好理解,DACL和SACL的表示就完全不知所云了,其实这两者表示的意思是完全相同的,只不过Adfind查询的结果是ACL的原始存储形式,这种ACL表示的格式也就是SDDL(Security Descriptor Definition Language)。

2.SDDL

SDDL是一种文本表述格式,用于指示安全描述符的四个组成部分

O:owner_sid
G:group_sid
D:dacl_flags(string_ace1)(string_ace2)... (string_acen)
S:sacl_flags(string_ace1)(string_ace2)... (string_acen) 

owner_sid、group_sid分别是对象所有者和对象所有组的sid字符串,dacl_flags和sacl_flags分别是dacl和sacl的安全描述符控制标志,标识和含义如下:

string_ace是对ACE的文本描述形式,语法如下:

ace_type;ace_flags;rights;object_guid;inherit_object_guid;
account_sid;(resource_attribute) 

各个字段的标识和含义可以参考微软文档

https://learn.microsoft.com/zh-cn/windows/win32/secauthz/ace-strings

我们以查询到的DACL中第一条ACE为例

(OA;;WP;5f202010-79a5-11d0-9020-00c04fc2d4cf;
23(OA;;WP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967a86-0de6-11d0-a285-00aa003049e2;S-1-5-21-12599190-3165991563-228399834-512)

23(OA;;WP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967a86-0de6-11d0-a285-00aa003049e2;S-1-5-21-12599190-3165991563-228399834-512)

ace_type为“OA”,对应ACCESS_ALLOWED_OBJECT_ACE_TYPE,表示是ALLOW类型的ACE,rights字段为“WP”,表示目录服务对象访问权限,对于权限值是ADS_RIGHT_DS_WRITE_PROP,表示目录对象写权限,object_guid表示权限的guid,account_sid标识这条ACE受托人的SID字符串。

3.场景1 重置密码

在企业中it管理部门为了方便员工忘记域账号密码后进行重置密码,通常委派一些低权限的it管理员重置用户密码的权限,这样可能意外导致低权限用户重置高权限用户的密码从而获得权限提升。下图描述了这种攻击路径。

我们通过委派控制赋予域内用户组itmgr重置域内所有用户密码的权限

blyth用户为itmgr组内普通用户

利用samr重置administrator用户的密码

4.场景2 资源约束委派

约束委派和非约束委派的配置需要域管理员对相关属性进行配置,微软为了给域用户提供更大的灵活性,让域内资源所有者能够配置哪些账户是可信的,并允许委派给他们。资源约束委派攻击最核心的就是对计算机 msDS-AllowedToActOnBehalfOfOtherIdentity 属性的控制,计算机用户本身,以及拉计算机入域的用户都对该计算机的 msDS-AllowedToActOnBehalfOfOtherIdentity 有写权限,我们这里假设攻击者获取域管权限后进行权限维持,为域内普通用户blyth配置对域控DC01 msDS-AllowedToActOnBehalfOfOtherIdentity 属性的写权限。

利用ldap修改

msDS-AllowedToActOnBehalfOfOtherIdentity 属性

配置资源约束委派

利用S4U2self + S4U2Proxy获取DC01的CIFS票据

pass the ticket

5.场景3 DCSYNC

DCSYNC是一种利用drsuapi模拟域控密码同步对域内凭据进行窃取的攻击手段,用户配置了以下两条ACL就可以对域控进行DCSYNC

  • 目录复制同步(Replicating Directory Changes)
  • 目录复制同步所有项(Replicating Directory Changes All)

在一些企业应用中可能存在一些应用账号需要利用DCSYNC对域内用户信息进行同步备份,攻击者在获取域控权限之后也可能会设置DCSYNC权限作为后门,我们给域内普通用户alice赋予上述两个必要的权限

利用alice用户的凭据获取administrator用户的hash

6.场景4 AdminSDHolder

AdminSDHolder是为域内受保护的用户和组提供权限的“模板”,每60分钟SDProp会将受保护帐户和组的权限重置为与域的AdminSDHolder对象的权限匹配,这一特性频繁被攻击者用来进行留后门等操作。

首先修改AdminSDHolder对象的SD,为bob用户添加GA权限

Admod.exe -b "CN=AdminSDHolder,CN=System,DC=test19,DC=local"
 "SD##ntsecuritydescriptor::{GETSD}{+D=(A;;GA;;;test19\bob)}" 

经过一小时之后可以发现这条ACE已经同步到受保护的组的SD中

这时候我们就可以利用bob的身份进行恶意操作,比如添加域管理员

总结

在AD域中,权限的梳理和监控是一项很重要的工作,不合理的权限配置会导致攻击者轻易的进行权限提升,如果对域内ACL不熟悉,对基于ACL的后门排查也无从谈起,对于安全管理人员,一些敏感的权限变更行为也能帮助我们快速定位攻击行为。

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

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

相关文章

[SpringBoot]创建聚合项目

首先&#xff0c;创建父级项目&#xff1a; 因为手动添加依赖&#xff0c;以下只选版本不打钩 因为父项目不写代码&#xff0c;所以删除src 调整pom.xml文件&#xff08;并刷新maven&#xff09;&#xff0c;如下&#xff1a; <?xml version"1.0" encoding&qu…

如何入门渗透测试

1. 什么是渗透测试 渗透测试就是模拟真实黑客的攻击手法对目标网站或主机进行全面的安全评估&#xff0c;与黑客攻击不一样的是&#xff0c;渗透测试的目的是尽可能多地发现安全漏洞&#xff0c;而真实黑客攻击只要发现一处入侵点即可以进入目标系统。 一名优秀的渗透测试工程…

Flink SQL之Regular Joins

1.Regular Joins&#xff08;双流join&#xff09; 双流join是最通用的联接类型&#xff08;支持 Batch\Streaming&#xff09;&#xff0c;其中任何新记录或联接两侧的更改都是可见的&#xff0c;并影响整体的Join结果。 特点&#xff1a; 对于流式查询&#xff0c;双流join…

深入分析 OpenShift 内部 DNS

深入分析 OpenShift 内部 DNS OpenShift 中的DNS 相关组件及其配置1.1 Pod 中的 DNS 配置1.2 Pod 所在宿主机上的 DNS 配置及服务1.2.1 resolv.conf 文件 DNS 配置DNS 查询流程为什么需要内部 DNS&#xff1f; 本文基于 OpenShift 3.11&#xff0c;Kubernetes 1.11 进行测试 O…

Linux服务器禁止密码登录,设置秘钥登录

生成SSH密钥 (客户机端) 执行ssh-keygen -t rsa命令创建RSA密钥对&#xff0c;执行结果如下(键入3次回车)&#xff1a; [rootnode01 .ssh]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): [回车] En…

【十五】设计模式~~~行为型模式~~~状态模式(Java)

【学习难度&#xff1a;★★★☆☆&#xff0c;使用频率&#xff1a;★★★☆☆】 4.1. 模式动机 在很多情况下&#xff0c;一个对象的行为取决于一个或多个动态变化的属性&#xff0c;这样的属性叫做状态&#xff0c;这样的对象叫做有状态的(stateful)对象&#xff0c;这样的…

向后切片,正向切片和其他形式的切片

向后切片,正向切片和其他形式的切片 向后切片Backward Slices 假设我们希望确定哪些语句影响节点 n。 这是由 n 和在 n 处引用的变量。 我们只是&#xff1a; 从 n 回溯控制和流依赖边。 我们保留由此到达的节点。 一般后向切片 通常&#xff0c;我们的切片标准是一个节点和一…

【CMake 入门与进阶(1)】一个例子搞懂什么是CMakeLists——从“Hello World”开始(附代码)

在前面两篇内容中&#xff0c;我们编写了很多示例程序&#xff0c;但这些示例程序都只有一个.c 源文件&#xff0c;非常简单。因此&#xff0c;编译这些示例代码其实都非常简单&#xff0c;直接使用 GCC 编译器编译即可&#xff0c;连 Makefile 都不需要。但是&#xff0c;在实…

中国人民大学与加拿大女王大学金融硕士项目——在职攻读金融硕士,努力迈进高阶人生

学历重要吗&#xff1f;入职门槛、晋升、考公等多方面都考核学历。学历代表的并不只是学习经历&#xff0c;也是学习能力的体现。在快速发展的社会&#xff0c;学历越高&#xff0c;学习能力越强&#xff0c;机会就越多。金融行业在职的你&#xff0c;有计划在职攻读硕士学位吗…

如何在 K3s 中使用网络策略

本文将介绍如何在示例项目中使用网络策略&#xff0c;并解释它在 K3s 中的工作原理&#xff0c;从而帮助用户提高部署的安全性。 关于 K3s 对网络策略的支持存在一个普遍的误解&#xff0c;因为 K3s 默认使用 Flannel CNI&#xff0c;而 Flannel CNI 不支持网络策略。其实&…

Docker+Jenkins+Gitee+Pipeline部署项目

1.前言 Hello&#xff0c;各位小伙伴大家好。&#x1f604; 在上一篇文章【DockerJenkinsGitee自动化部署maven项目】中&#xff0c;咱们详细介绍了如何自动化部署maven项目&#xff0c;如果说你的项目仅仅为maven项目&#xff0c;那么这种部署方式是很契合的&#xff0c;如果…

超全,Selenium4自动化测试并行测试详解,进阶之路看这篇就够了...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Selenium4 自动化测…

万字解析PELT算法!

Linux是一个通用操作系统的内核&#xff0c;她的目标是星辰大海&#xff0c;上到网络服务器&#xff0c;下至嵌入式设备都能运行良好。做一款好的linux进程调度器是一项非常具有挑战性的任务&#xff0c;因为设计约束太多了&#xff1a; 它必须是公平的快速响应系统的throughp…

如何学习R-Meta分析与【文献计量分析、贝叶斯、机器学习等】多技术融合?

专题一&#xff1a;Meta分析的选题与文献计量分析CiteSpace应用 1、Meta分析的选题与文献检索 1) 什么是Meta分析 2) Meta分析的选题策略 3) 文献检索数据库 4) 精确检索策略&#xff0c;如何检索全、检索准 5) 文献的管理与清洗&#xff0c;如何制定文献纳入排除标准 6…

第一行代码 第十四章 开发酷欧天气

第14章 开发酷欧天气 在本章将编写一个功能较为完整的天气预报程序。 功能需求及技术可行性分析 在开始编码之前&#xff0c;需要先对程序进行需求分析&#xff0c;想一想酷欧天气中应该具备哪些功能。将这些功能全部整理出来&#xff1a; 可以罗列出全国所有的省、市、县&…

英飞凌 AURIX-TC3XX:QSPI通信实验

目录 AURIX-TC3XX-QSPI通信实验1.QSP简介1.1、AURIX TC3XX QSPI个数1.2、QSPI功能特点1.2.1、QSPI外设的新特性1.2.2、一些独特的特性1.2.3、支持传统的SPI特性1.2.4、四种可供用户选择的传输模式 2、具体实验操作2.1、新建工程2.2、实验一 3、域控制器中常见的SPI通信方式3.1、…

ble常见概念

0. 蓝牙一些常见概念 参考&#xff1a;https://www.bilibili.com/video/BV1ad4y1d7AM 基于ESP32来了解蓝牙协议的一些东西 蓝牙广播 包组成结构 低功耗蓝牙一共有40个信道&#xff0c;频段范围从2402Mhz-2480Mhz&#xff0c;每2Mhz一个信道&#xff0c;37 38 39 是广播信道…

基于linux的程序库文件打包和调用的实现(一)——静态库文件打包和调用

随着技术的发展&#xff0c;基于linux项目的软件代码越发复杂&#xff0c;原来一个人可以完成的软件项目&#xff0c;现在可能需要多个人合作、多个部门合作、多个企业合作&#xff0c;每个人、每个部门、每个企业可能负责部分软件模块的开发。各个软件模块在调试过程由于涉及企…

DeFi 发展沃土,Uniswap 成功“登陆” Moonbeam

作者&#xff1a;OneBlock 去年 3 月底&#xff0c;Uniswap 社区发布一项全新治理提案&#xff0c;旨在通过社区授权于 Polkadot 生态智能合约平台 Moonbeam 上部署 Uniswap V3&#xff0c;将 Uniswap 扩展至 Polkadot 生态。在这项提案中&#xff0c;Uniswap 计划除了提供流动…

极兔抢滩IPO,李杰不止缺一个丰网

&#xff08;图片来源于网络&#xff0c;侵删&#xff09; 来源 | 螳螂观察 文 | 叶小安 物流业打响了上市“抢滩战”。 5月&#xff0c;顺丰控股传出2023年在香港二次上市消息&#xff1b;紧接着极兔也传出将于下半年赴港上市消息&#xff1b;另一边&#xff0c;阿里主席张…