TryHackMe-AD证书模板

news/2024/7/24 11:27:28

AD Certificate Templates

SpecterOps 完成并作为白皮书发布的研究表明,可以利用配置错误的证书模板进行权限提升和横向移动。根据错误配置的严重性,它可能允许 AD 域上的任何低特权用户只需单击几下即可将其权限提升为企业域管理员的权限!

简介

在之前,我们利用AD证书来进行权限提升和持久化

ADCS是微软的公钥基础设施(PKI)实现。由于AD在组织中提供了一定程度的信任,因此它可以用作CA来证明和委托信任。AD CS用于多种用途,例如加密文件系统,创建和验证数字签名,甚至用户身份验证,这使其成为攻击者的有前途的途径。

我们不但能利用证书的缺陷进行权限提升。就像域持久化当中所说的,我们通过伪造根证书以让我们保持域访问权限,并且不受凭据轮换影响,由于伪造的证书不由CA颁发,所以根本无法将其吊销,只能吊销其被恶意利用的证书。

摘自 SpecterOps 白皮书

组织往往太大,无法让管理员手动创建和分发每个证书。这就是证书模板的用武之地。AD CS 的管理员可以创建多个模板,这些模板可以允许具有相关权限的任何用户自行请求证书。这些模板具有指示哪个用户可以请求证书以及所需内容的参数。SpecterOps发现,这些参数的特定组合可能具有令人难以置信的毒性,并被滥用于权限提升和持久访问!

证书模板枚举

我们可以利用sysinternels工具包的certutil来获取证书模板信息

certutil -v -template

我们正在寻找的特定毒性参数集具有以下内容:

  • 我们具有请求证书的相关权限或我们拥有具有这些权限的帐户的模板
  • 允许客户端身份验证的模板,这意味着我们可以将其用于 Kerberos 身份验证
  • 允许我们更改主题备用名称 (SAN) 的模板

相关权限

我们需要具有生成证书请求的权限才能使此漏洞利用起作用。它通常以AD组为单位分配权限

在这里插入图片描述

查看所有证书权限通常是明智的,因为它可能会将指向一个可以泄露的帐户的方向。

客户端身份验证

我们应该寻找具有Client Authentication的EKU, 因为该EKU允许我们利用其进行kerberos身份验证, 还有其他方法可以利用证书,但对于这个房间,这个 EKU 将是主要关注点。

在这里插入图片描述

指定SAN

我们需要验证模板是否允许我们(证书客户端)指定主题备用名称 (SAN)。SAN 通常类似于我们要加密的网站的 URL。例如:tryhackme.com。但是,如果我们有能力控制 SAN,我们就可以利用证书为我们选择的任何 AD 帐户实际生成 kerberos 票证

获取应设置为 1 的CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT 属性标志。这表明我们可以自己指定 SAN

从certutil导出的证书模板当中,我们找到这么一个模板

  Template[31]:
  TemplatePropCommonName = UserRequest
  TemplatePropFriendlyName = User Request
  TemplatePropEKUs =
3 ObjectIds:
    1.3.6.1.5.5.7.3.2 Client Authentication
    1.3.6.1.5.5.7.3.4 Secure Email
    1.3.6.1.4.1.311.10.3.4 Encrypting File System

  TemplatePropCryptoProviders =
    0: Microsoft Enhanced Cryptographic Provider v1.0

  TemplatePropMajorRevision = 64 (100)
  TemplatePropDescription = User
  TemplatePropSchemaVersion = 2
  TemplatePropMinorRevision = a (10)
  TemplatePropRASignatureCount = 0
  TemplatePropMinimumKeySize = 800 (2048)
  TemplatePropOID =
    1.3.6.1.4.1.311.21.8.13251815.15344444.12602244.3735211.11040971.202.13950390.3651808 User Request

  TemplatePropV1ApplicationPolicy =
3 ObjectIds:
    1.3.6.1.5.5.7.3.2 Client Authentication
    1.3.6.1.5.5.7.3.4 Secure Email
    1.3.6.1.4.1.311.10.3.4 Encrypting File System

  TemplatePropEnrollmentFlags = 19 (25)
    CT_FLAG_INCLUDE_SYMMETRIC_ALGORITHMS -- 1
    CT_FLAG_PUBLISH_TO_DS -- 8
    CT_FLAG_AUTO_ENROLLMENT_CHECK_USER_DS_CERTIFICATE -- 10 (16)

  TemplatePropSubjectNameFlags = 1
    CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT -- 1

  TemplatePropPrivateKeyFlags = 1010010 (16842768)
    CTPRIVATEKEY_FLAG_EXPORTABLE_KEY -- 10 (16)
    CTPRIVATEKEY_FLAG_ATTEST_NONE -- 0
    TEMPLATE_SERVER_VER_2003<<CTPRIVATEKEY_FLAG_SERVERVERSION_SHIFT -- 10000 (65536)
    TEMPLATE_CLIENT_VER_XP<<CTPRIVATEKEY_FLAG_CLIENTVERSION_SHIFT -- 1000000 (16777216)

  TemplatePropGeneralFlags = 2023a (131642)
    CT_FLAG_ADD_EMAIL -- 2
    CT_FLAG_PUBLISH_TO_DS -- 8
    CT_FLAG_EXPORTABLE_KEY -- 10 (16)
    CT_FLAG_AUTO_ENROLLMENT -- 20 (32)
    CT_FLAG_ADD_TEMPLATE_NAME -- 200 (512)
    CT_FLAG_IS_MODIFIED -- 20000 (131072)

  TemplatePropSecurityDescriptor = O:LAG:S-1-5-21-3330634377-1326264276-632209373-519D:PAI(OA;;RPWPCR;0e10c968-78fb-11d2-90d4-00c04f79dc55;;DA)(OA;;RPWPCR;0e10c968-78fb-11d2-90d4-00c04f79dc55;;DU)(OA;;RPWPCR;0e10c968-78fb-11d2-90d4-00c04f79dc55;;S-1-5-21-3330634377-1326264276-632209373-519)(OA;;CR;0e10c968-78fb-11d2-90d4-00c04f79dc55;;AU)(OA;;CR;a05b8cc2-17bc-4802-a710-e7c15ab866a2;;AU)(A;;CCDCLCSWRPWPDTLOSDRCWDWO;;;DA)(A;;CCDCLCSWRPWPDTLOSDRCWDWO;;;S-1-5-21-3330634377-1326264276-632209373-519)(A;;CCDCLCSWRPWPDTLOSDRCWDWO;;;LA)(A;;LCRPLORC;;;AU)

    Allow Enroll	LUNAR\Domain Admins
    Allow Enroll	LUNAR\Domain Users
    Allow Enroll	LUNAR\Enterprise Admins
    Allow Enroll	NT AUTHORITY\Authenticated Users
    Allow Auto-Enroll	NT AUTHORITY\Authenticated Users
    Allow Full Control	LUNAR\Domain Admins
    Allow Full Control	LUNAR\Enterprise Admins
    Allow Full Control	LUNAR\Administrator
    Allow Read	NT AUTHORITY\Authenticated Users

EKU中允许利用进行身份验证,同时还设置了CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT,并且允许了domain users组进行注册

组合在一起,该模板允许我们可以控制SAN,为任何用户请求证书,并且进行身份验证

生成恶意证书

我们确定了可以利用的证书模板,是时候生成证书请求了。如果您愿意,您可以从命令行执行此步骤

通过mmc进行请求证书和导出证书都相当简单,这里我就不再记录

通过证书进行用户模拟

现在我们使用Rubeus来利用证书请求TGT

在这里插入图片描述

有了tgt,我们能做很多事情,我们可以通过各种工具来利用tgt,比如mimikatz

这里我们使用Rubeus修改账户密码

在这里插入图片描述

然后使用runas注入凭据,值得注意的是这里不要加/netonly参数,因为我们要进行本地访问而不仅仅只是网络通信需要使用注入的凭据

在这里插入图片描述


http://www.niftyadmin.cn/n/284508.html

相关文章

第17章 信息系统安全管理

文章目录 信息安全属性及目标&#xff08;1&#xff09;保密性&#xff08;Confidentiality&#xff09;&#xff08;2&#xff09;完整性&#xff08;Integrity&#xff09;&#xff08;3&#xff09;可用性&#xff08;Availability&#xff09;&#xff08;4&#xff09;其他…

位置式pid和增量式pid

位置式PID控制器和增量式PID控制器的数学模型如下所示&#xff1a; 位置式PID控制器的数学模型&#xff1a; u ( t ) K p e ( t ) K i ∫ 0 t e ( τ ) d τ K d d e ( t ) d t u(t) K_p e(t) K_i \int_{0}^{t} e(\tau) d\tau K_d \frac{de(t)}{dt} u(t)Kp​e(t)Ki​∫…

C6678学习-IPC

文章目录 1、简介2、模块MultiProc静态设置&#xff08;cfg设置&#xff09;动态设置 IPCNotifyMessageQShareRegion 1、简介 IPC: Inter-Processor Communication 处理器间通信&#xff0c;指提供多处理器环境中的处理器之间的通信、相同处理器不同线程间的通信。包括数据传递…

MySQL的概念、编译安装

一.数据库的基本概念 1、数据&#xff08;Data&#xff09; • 描述事物的符号记录 • 包括数字&#xff0c;文字&#xff0c;图形&#xff0c;图像&#xff0c;声音&#xff0c;档案记录等 • 以“记录”形式按统一的格式进行存储 2、表 • 将不同的记录组织在一起 • …

jdk中juc多线程编程工具

jdk线程池实现原理分析 目录 CompletionService CompletableFuture 基本原理 CompletableFuture的接口 静态方法 handle() vs whenComplete() xxxEither() 异常处理exceptionally() 获取任务结果 结束任务 Semaphore CyclicBarrier CountDownLatch jdk线程池实…

word构建基块:快速插入重复内容的高级剪切板

本文参考自 word录入技巧&#xff1a;如何用自动图文集快速插入重复内容 - 知乎 介绍 构建基块&#xff0c;它就是和剪切板一样&#xff0c;点一下就粘贴一份新的&#xff0c;用于解决大量重复内容的复制粘贴 构建基块包括自动图文集和快速表格&#xff0c;实际上都是构建基块…

k8s之审计日志

一、为什么要有审计 Kube-Apiserver 的负载突然变高&#xff0c;大量访问失败&#xff0c;集群中到底发生了什么&#xff1f; 当集群发生问题时&#xff0c;这是Metric一般会失效&#xff0c;为了排查以上问题&#xff0c;k8s 提供了两种原生的日志形式——审计&#xff08;A…

汇编二、51单片机内部结构

1、单片机内部资源 以AT89C51单片机为例&#xff0c;参考数据手册。 Atmel官网&#xff1a; https://www.microchip.com/ (1)1个8位CPU。 (2)4K ROM&#xff0c;128字节RAM。 (3)32个GPIO&#xff1b;定时器(Timer)&#xff1b;串口(UART)&#xff1b;中断系统(Interrupt…