访问控制列表ACL学习

ACL概念

ACL:

ACL 是 Access Control List(访问控制列表)的缩写。它是一种用于管理和控制访问权限的机制或数据结构。ACL 用于确定谁可以访问特定资源(例如文件、文件夹、网络资源等)以及他们可以执行的操作。ACL 通常由一系列访问控制条目组成,每个条目定义了一个用户、用户组或角色以及与其关联的权限。每个权限指定了对资源的特定操作,如读取、写入、执行或删除等。ACL 可以在操作系统、网络设备、数据库系统和应用程序等各种环境中使用。

**ACL 的主要目的是提供细粒度的访问控制,以确保只有授权的用户可以访问和操作资源,从而保护系统的安全性和完整性。**通过配置适当的 ACL,系统管理员可以限制用户的权限,根据需要授予不同级别的访问权限,并确保敏感数据和资源只能被授权的用户或角色使用。ACL 是许多操作系统和网络设备的基本安全功能之一,并在许多应用程序中用于实现细粒度的权限管理。它提供了一种灵活和可扩展的方法来管理访问控制,以满足组织对安全性和数据保护的需求。

访问控制列表 (ACL) 是访问控制条目 (ACE) 的列表。ACL 中的每个 ACE 都标识一个受托者,并为该受托者指定允许、拒绝或审计的访问权限。安全对象的安全描述符可以包含两种类型的 ACL:DACL 和 SACL。DACL 用于控制资源的访问权限,而 SACL 则用于记录和审核访问事件。

DACL:

DACL 是 Discretionary Access Control List(自由访问控制列表)的缩写。它是用于访问控制的一种权限机制,用于确定谁可以对资源进行访问以及他们可以执行的操作。DACL 是 Windows 操作系统中的一个重要概念,它是一种与对象(如文件、文件夹、注册表项等)关联的访问控制列表。DACL 包含了一系列访问控制条目(ACEs),每个条目指定了一个用户、用户组或角色以及与其关联的权限。

DACL 的特点是基于主体对资源的自由访问控制,即资源的所有者或管理员可以自由设定谁可以访问资源以及他们可以执行的操作。通过配置 DACL,可以限制或授予特定用户或用户组对资源的权限,例如读取、写入、执行、删除等。DACL 中的每个访问控制条目都包含一个身份(用户、用户组或角色)和一组权限。权限定义了允许或拒绝对资源执行的操作。当用户尝试访问资源时,操作系统会根据 DACL 中的条目来决定是否允许访问。需要注意的是,DACL 只是访问控制的一部分,它仅涵盖了资源的自由访问控制。在 Windows 操作系统中,还有其他类型的访问控制,如系统访问控制列表(SACL)用于审核和监视访问,以及对象所有者等。总而言之,DACL 是 Windows 操作系统中用于自由访问控制的权限机制,用于确定谁可以访问资源以及他们可以执行的操作。它提供了一种灵活的方式来定义和管理资源的访问权限,以满足安全性和数据保护的需求。

SACL:

SACL 是 System Access Control List(系统访问控制列表)的缩写。它是用于安全审计和监视的一种权限机制,用于跟踪对资源的访问和操作。SACL 是 Windows 操作系统中的一个重要概念,它是一个访问控制列表,与对象(如文件、文件夹、注册表项等)关联。SACL 包含了一系列访问控制条目(ACEs),每个条目指定一个用户、用户组或角色以及与其关联的安全审核设置。

SACL 的主要目的是启用安全审计功能,即记录对资源的访问和操作事件,以便管理员或安全审计员可以追踪和分析系统的安全情况。通过配置 SACL,可以指定哪些操作需要被审计,例如读取、写入、执行、删除等

当启用 SACL 并设置相应的安全审核设置时,系统会生成安全日志条目,记录与资源相关的访问和操作事件。这些安全日志可以用于监视和调查潜在的安全问题,了解系统中发生的活动,并满足合规性要求。需要注意的是,SACL 是一种高级的访问控制机制,通常在需要进行安全审计和监视的敏感资源上使用。

总结起来,SACL 是 Windows 操作系统中用于安全审计和监视的权限机制,用于记录对资源的访问和操作事件。它提供了一种机制,使管理员能够跟踪和分析系统的安全活动,并满足合规性要求。

如何查看ACL

ADSI编辑器

使用ADSI edit(adsiedit.msc)连接域后,可以看到某个域Object的acl,如下图。列表中的每一条即为ACE。代表以用户yokan为主体,描述哪些对象对yokan有什么样的权限。

连接方法:在域控中(普通域成员主机没有 ADSI 编辑器,本地安装域功能后会自带该工具,然后可以远程连接)执行 adsiedit.msc 打开 ADSI 编辑器,“操作” —> “连接”

image-20231206164603119

具体打开一条ace,看到域管组对用户yokan有一系列的权限:

image-20231206164812025

作为攻击者,我们对一些Active Directory对象权限和类型感兴趣:

  • GenericAll - 对对象拥有完全权限(添加用户到组或重置用户密码)
  • GenericWrite - 更新对象的属性(例如登录脚本)
  • WriteOwner - 将对象所有者更改为攻击者控制的用户,接管对象
  • WriteDACL - 修改对象的ACEs,并赋予攻击者对对象的完全控制权
  • AllExtendedRights - 能够将用户添加到组或重置密码
  • ForceChangePassword - 能够更改用户的密码
  • Self (Self-Membership) - 能够将自己添加到组中

Powerview

import-module .\powerview.ps1

Get-ObjectAcl -samAccountName yokan -ResolveGUIDs | ? {$_.ActiveDirectoryRights -eq "GenericAll"}

image-20231206174423939

访问控制列表(ACL)中的属性的解释:

PropagationFlags(传播标志):指定如何将访问权限传播到子对象。在这里,值为 "None" 表示权限不会传播到子对象。
InheritanceFlags(继承标志):指定是否允许对象的子对象继承访问权限。在这里,值为 "None" 表示不允许继承
ObjectType(对象类型):指定要应用访问权限的对象类型。在这里,值为 "All" 表示适用于所有对象类型。
AccessControlType(访问控制类型):指定访问权限的类型,是允许还是拒绝。在这里,值为 "Allow" 表示允许访问。
ObjectSID(对象安全标识符):指定对象的安全标识符(SID),用于唯一标识对象。
InheritedObjectType(继承的对象类型):指定继承访问权限的对象类型。在这里,值为 "All" 表示适用于所有继承对象。
IsInherited(是否继承):指示访问权限是否是继承自父对象的。
ObjectDN(对象的目录名称):指定对象在目录中的名称。
IdentityReference(标识引用):指定具有访问权限的用户或用户组的标识引用。
ObjectFlags(对象标志):指定对象的附加标志。
ActiveDirectoryRights(Active Directory 权限):指定访问权限的具体类型。在这里,值为 "GenericAll" 表示允许所有通用操作。
InheritanceType(继承类型):指定如何继承访问权限。在这里,值为 "None" 表示没有继承。

比如下图,表示YOKAN\Domain Adminis对yokan用户的所有对象具有GenericAll权限。

image-20231206175931774

Active Directory Module

安装:

import-module ActiveDirectory

使用:

(Get-Acl -Path "AD:CN=yokan,CN=Users,DC=yokan,DC=com").access

image-20231206170221232

dsacls

  • File Path: C:\Windows\system32\dsacls.exe
  • Description: DS Control ACLs Program

dsacls.exe结果比较简单,只能查询基础ACL,如GenericAll、WriteDAcl等,但胜在能远程查询,其他工具需要在域的上下文中使用:

dsacls "CN=yokan,CN=Users,DC=yokan,DC=com"

dsacls.exe "\\10.0.0.50\CN=yokan,CN=Users,DC=yokan,DC=com"

image-20231206175754900

不安全的ACEs

作为攻击者,我们对一些Active Directory对象权限和类型感兴趣

需要重点关注的ACE如下:

GenericAll:完全控制对象,包括更改密码、注册SPN、添加AD对象到目标组里面
 
GenericWrite:更新对象的属性(例如登录脚本)
 
WriteOwner:更新目标对象的所有者,可以更改为攻击者控制的用户,接管对象
 
WriteDACL:更新对面的DACL,将ACL写入对面实体,直接授予我们的账户对对象的完全控制权
 
AllExtendedRights:能够对目标对象执行与扩展 AD 权限相关的任何操作。例如,能够将用户添加到组或重置密码。

ForceChangePassword:强制改变当下的密码
 
AddMembers:可以对目标组添加用户(包括自己的账户)

Self (Self-Membership): 能够将自己添加到组中

这些权限可以帮助我们进行一定程度的提权,但一般我们选择对目标破坏性最小的一些方案。

具体利用

https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/acl-persistence-abuse

https://mp.weixin.qq.com/s/r_bwyX2qj5VSqf3mVrnqGg

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

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

相关文章

基于SSM的高校共享单车管理系统的设计与实现论文

摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此高校单车租赁信…

【UE5.1】Mixamo动画重定向到MetaHuman

前言 在上一篇博客(【UE5】初识MetaHuman)中我们创建一个MetaHuman角色,本篇博客在此基础上继续实现Mixamo动画重定向到MetaHuman角色的过程。 效果 步骤 1. 下载Mixamo动画资源(网盘链接:百度网盘)&…

算法分析与设计题目和参考代码

注&#xff1a;以下题目与代码来源于各种渠道 算法与分析设计 第0章 C常用函数与头文件1. 算法 #include \<algorithm\>2. 栈 #include \<stack\>3. 队列 #include \<queue\>4. 优先队列 #include \<queue\>5. map #include \<map\> 第一章 概论…

使用pe安装windows操作系统

一、系统安装前准备工作&#xff0c;制作系统盘 &#xff08;1&#xff09;拷贝电脑上的资料 &#xff08;2&#xff09;准备一个至少8G的U盘 &#xff08;3&#xff09;下载windows镜像文件及pe软件 通过百度网盘可下载下列软件及镜像 windows镜像文件&#xff08;百度网盘…

优化您的Mac电脑风扇控制体验 - 尝试Macs Fan Control Pro!

在日常使用Mac电脑过程中&#xff0c;我们经常会遇到电脑发热的问题&#xff0c;特别是在运行大型软件或进行高负载任务时。为了保护电脑硬件&#xff0c;一个高效且可靠的风扇控制软件是必不可少的。 Macs Fan Control Pro是一款专为Mac电脑设计的风扇控制软件&#xff0c;它…

大一作业习题

第一题&#xff1a;答案&#xff1a; #include <stdio.h> void sort(int a[], int m) //将数组a的前m个元素(从小到大)排序 {int i 0;for (i 0; i < m - 1; i){int j 0;int flag 1;for (j 0; j < m - 1 - i; j){if (a[j] > a[j 1]){int t 0;t a[j];…

第二节、项目支付功能实战-信息安全、支付安全、接口安全详解

信息安全的概念 提起信息安全&#xff0c;我们通常会想到&#xff0c;数据的传输安全、接口传输安全、登录认证、授权这些类型安全知识&#xff0c;同时也会想到&#xff0c;加密、解密、认证、加签、验签、安全证书等这些小而繁琐的复杂概念&#xff0c;一说起这些概念&#…

Caching the Application Engine Server 缓存应用程序引擎服务器

Caching the Application Engine Server 缓存应用程序引擎服务器 Application Engine caches metadata just like the application server. This caching enhances performance because a program can refer to the local cache for any objects that it uses. 应用程序引擎…

网工内推 | 项目经理专场,最高20K*13薪,软考证书优先

01 Trasen 招聘岗位&#xff1a;大项目经理&#xff08;医疗行业/HIS&#xff09; 职责描述&#xff1a; 1.负责项目按计划完成交付并顺利验收结项&#xff1b; 2.参与项目前期预算、评审、方案设计等&#xff1b; 3.负责具体项目实施&#xff0c;制定项目计划、组织项目资源、…

树莓派上电发送IP地址到邮箱

创建python脚本文件 auto_send_email.py #!/usr/bin/python3import subprocess import smtplib from email.mime.text import MIMEText import datetime import time import osdef check_ping():hostname "www.baidu.com"response os.system("ping -c 1 &quo…

AI 与胚胎结合?系统生物学家 Patrick Müller 利用孪生网络对斑马鱼胚胎展开研究

300 万张图片1.5 万个斑马鱼胚胎的数据集&#xff0c;系统生物学家 Patrick Mller 成功实现基于 AI 的胚胎识别。 作者&#xff5c;加零 编辑&#xff5c;三羊 在动物发育过程中&#xff0c;胚胎随着时间的推移会发生复杂的形态变化&#xff0c;研究者们希望能够客观地量化发…

SpringBootWeb请求响应之前言及状态码的详细解析

SpringBootWeb请求响应 前言 在上一次的课程中&#xff0c;我们开发了springbootweb的入门程序。 基于SpringBoot的方式开发一个web应用&#xff0c;浏览器发起请求 /hello 后 &#xff0c;给浏览器返回字符串 “Hello World ~”。 其实呢&#xff0c;是我们在浏览器发起请求…

WebRTC AEC回声消除算法拆解

WebRTC AEC算法流程分析——时延估计&#xff08;一&#xff09; 其实&#xff0c;网上有很多类似资料&#xff0c;各个大厂研发不同应用场景设备的音频工程师基本都对其进行了拆解&#xff0c;有些闪烁其词&#xff0c;有些却很深奥&#xff0c;笔者随着对WebRTC了解的深入&a…

算法Day28 二进制差异序列(格雷码)

二进制差异序列&#xff08;格雷码&#xff09; Description n 位二进制差异序列是一个由2^n个整数组成的序列&#xff0c;其中&#xff1a; 每个整数都在范围[0, 2^n - 1]内&#xff08;含0和2^n - 1&#xff09; 第一个整数是0 一个整数在序列中出现不超过一次 每对相邻整数…

scripty妙用

在monorepo项目中&#xff0c;随着子模块增多&#xff0c; 每个子项目都需要配置各自的package.json,并且大同小异&#xff0c;为了进一步提高配置效率&#xff0c;引入了scripty&#xff0c;自己写脚本&#xff0c;直接就可以用哦 1、安装 npm install scripty --save-dev 2…

STM32MP157D-DK1开发板固件烧录

本篇介绍STM32MP157D-DK1开发板如何烧录官方固件。 1 开发板基础硬件介绍 1.1 常用接口 板子上的各种接口功如下&#xff0c;本篇固件烧录&#xff0c;主要用的接口包括&#xff1a; CN6&#xff1a;供电接口B2&#xff1a;复位按键CN11&#xff1a;ST-LINK USB&#xff08…

MYSQL索引和事务

Mysql 索引 事务 存储引擎 索引&#xff1a;索引是一个排序的列表&#xff0c;列表当中存储的是索引的值和包含这个值的数据所在行的物理地址 索引的作用加快查询速度 索引的作用&#xff1a; 利用索引数据库可以快速定位&#xff0c;大大加快查询速度&#xff0c;主要作用表…

LINUX:如何以树形结构显示文件目录结构

tree tree命令用于以树状图列出目录的内容。 第一步&#xff0c;先安装tree这个包 sudo apt-get install tree 第二步&#xff0c;在指定文件目录输入下面命令&#xff0c;7代表7级子目录 tree -L 7 第三步&#xff0c;效果图 第四步&#xff0c;拓展学习 颜色显示 tree -C显…

Go json 差异比较 json-diff(RFC6902)

Go json 差异比较 json-diff(RFC 6902) 毕业设计中过程中为了比较矢量图的差异而依据 RFC 6902 编写的一个包&#xff0c;现已开源&#xff1a; Json-diff 使用 go get -u github.com/520MianXiangDuiXiang520/json-diff序列化与反序列化 与官方 json 包的序列化和反序列化不…

川崎ZX-6R确定引进,636它真的来了,3C认证已过。

最新消息&#xff0c;兄弟们&#xff0c;你们期待已久的川崎ZX6R&#xff08;636&#xff09;基本已经确定引进了&#xff0c;官方的3C认证已经通过&#xff0c;那么从3C里面我们可以看到哪几个信息&#xff1f;产品代号ZX636J就是心心念念的ZX-6R了。 有些小伙伴不太清楚3C认…