exploiting-active-directory-certificate-services-esc1

Exploits AD CS ESC1 misconfigurations to forge certificates and escalate domain privileges.

954|172|Updated Mar 13, 2026
One-click install
npx skills add https://github.com/xalgord/xalgorix --skill exploiting-active-directory-certificate-services-esc1
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: exploiting-active-directory-certificate-services-esc1
Source: https://github.com/xalgord/xalgorix/tree/main/internal/tools/skills/data/red-teaming/exploiting-active-directory-certificate-services-esc1
Command: npx skills add https://github.com/xalgord/xalgorix --skill exploiting-active-directory-certificate-services-esc1

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

During authorized red team engagements, testers need a repeatable, verified procedure to identify and exploit ESC1 misconfigurations in Active Directory Certificate Services, where templates allowing enrollee-supplied subjects let low-privileged users request certificates as Domain Admins.

Core Features & Use Cases

  • AD CS Enumeration: Uses Certify and Certipy to enumerate Certificate Authorities and identify templates with ENROLLEE_SUPPLIES_SUBJECT, authentication EKUs, and no manager approval.
  • Certificate Forgery & PKINIT Authentication: Requests certificates with an arbitrary SAN/UPN for a privileged account, then authenticates via Rubeus or certipy auth to obtain a TGT or NT hash.
  • Privilege Escalation Validation: Confirms Domain Admin access through DCSync with secretsdump.py or administrative share access, with detection signatures mapped to Windows Events 4886/4887 and 4768.
  • Use Case: A red team operator with standard domain user credentials runs certipy find -vulnerable, discovers an ESC1-vulnerable template, requests a certificate as administrator, and demonstrates full domain compromise for the engagement report.

Quick Start

Ask the AI to enumerate AD CS certificate templates with Certipy and exploit any ESC1-vulnerable template to request a Domain Admin certificate.

Frequently Asked Questions about exploiting-active-directory-certificate-services-esc1

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I exploit ESC1 with Certipy?

Run certipy find -vulnerable to identify templates with ENROLLEE_SUPPLIES_SUBJECT, then use certipy req with -upn [email protected] to request a certificate as a privileged user. Finally, run certipy auth -pfx to authenticate via PKINIT and recover the NT hash.

What conditions make an AD CS template vulnerable to ESC1?

ESC1 requires all of: the ENROLLEE_SUPPLIES_SUBJECT flag, an authentication EKU such as Client Authentication or Smart Card Logon, no manager approval requirement, and enroll rights granted to a low-privileged group like Domain Users.

Certify vs Certipy for AD CS exploitation?

Certify runs on Windows as a .NET binary for enumeration and certificate requests, while Certipy is a Python tool for Linux that handles enumeration, requests, and PKINIT authentication. Both detect ESC1; Certipy additionally returns the NT hash directly.

Why does PKINIT authentication fail after getting a certificate?

PKINIT fails when the domain controller lacks a DC authentication certificate, when the PFX was converted with the wrong crypto provider, or when the UPN/SAN was not supplied during the request. Verify the cert with certipy auth and check klist for a loaded TGT.

How can defenders detect ESC1 certificate abuse?

Monitor Windows Events 4886 and 4887 on the CA for certificate requests where the SAN differs from the requester, and Event 4768 for certificate-based pre-authentication. EDR command-line logging can also catch Certify or Certipy execution.