AD CS Domain Persistence

Support HackTricks

यह https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf में साझा की गई डोमेन स्थिरता तकनीकों का सारांश है। आगे की जानकारी के लिए इसे देखें।

चोरी किए गए CA प्रमाणपत्रों के साथ प्रमाणपत्र बनाना - DPERSIST1

आप कैसे बता सकते हैं कि एक प्रमाणपत्र CA प्रमाणपत्र है?

यदि कई शर्तें पूरी होती हैं, तो यह निर्धारित किया जा सकता है कि एक प्रमाणपत्र CA प्रमाणपत्र है:

  • प्रमाणपत्र CA सर्वर पर संग्रहीत है, जिसकी निजी कुंजी मशीन के DPAPI द्वारा सुरक्षित है, या हार्डवेयर जैसे TPM/HSM द्वारा यदि ऑपरेटिंग सिस्टम इसका समर्थन करता है।

  • प्रमाणपत्र के Issuer और Subject फ़ील्ड CA के विशिष्ट नाम से मेल खाते हैं।

  • CA प्रमाणपत्रों में विशेष रूप से "CA Version" एक्सटेंशन मौजूद है।

  • प्रमाणपत्र में Extended Key Usage (EKU) फ़ील्ड की कमी है।

इस प्रमाणपत्र की निजी कुंजी निकालने के लिए, CA सर्वर पर certsrv.msc उपकरण समर्थित विधि है जो अंतर्निहित GUI के माध्यम से है। फिर भी, यह प्रमाणपत्र सिस्टम में संग्रहीत अन्य प्रमाणपत्रों से भिन्न नहीं है; इसलिए, THEFT2 तकनीक जैसी विधियों का उपयोग निकासी के लिए किया जा सकता है।

प्रमाणपत्र और निजी कुंजी को Certipy का उपयोग करके निम्नलिखित कमांड के साथ भी प्राप्त किया जा सकता है:

certipy ca 'corp.local/administrator@ca.corp.local' -hashes :123123.. -backup

CA प्रमाणपत्र और इसके निजी कुंजी को .pfx प्रारूप में प्राप्त करने के बाद, ForgeCert जैसे उपकरणों का उपयोग वैध प्रमाणपत्र उत्पन्न करने के लिए किया जा सकता है:

# Generating a new certificate with ForgeCert
ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword Password123! --Subject "CN=User" --SubjectAltName localadmin@theshire.local --NewCertPath localadmin.pfx --NewCertPassword Password123!

# Generating a new certificate with certipy
certipy forge -ca-pfx CORP-DC-CA.pfx -upn administrator@corp.local -subject 'CN=Administrator,CN=Users,DC=CORP,DC=LOCAL'

# Authenticating using the new certificate with Rubeus
Rubeus.exe asktgt /user:localdomain /certificate:C:\ForgeCert\localadmin.pfx /password:Password123!

# Authenticating using the new certificate with certipy
certipy auth -pfx administrator_forged.pfx -dc-ip 172.16.126.128

सर्टिफिकेट धोखाधड़ी के लिए लक्षित उपयोगकर्ता को सक्रिय होना चाहिए और प्रक्रिया सफल होने के लिए Active Directory में प्रमाणीकरण करने में सक्षम होना चाहिए। विशेष खातों जैसे krbtgt के लिए सर्टिफिकेट धोखाधड़ी अप्रभावी है।

यह धोखा दिया गया सर्टिफिकेट मान्य रहेगा जब तक कि निर्दिष्ट समाप्ति तिथि तक और जब तक कि रूट CA सर्टिफिकेट मान्य है (आमतौर पर 5 से 10+ वर्ष तक)। यह मशीनों के लिए भी मान्य है, इसलिए S4U2Self के साथ मिलकर, एक हमलावर किसी भी डोमेन मशीन पर स्थिरता बनाए रख सकता है जब तक CA सर्टिफिकेट मान्य है। इसके अलावा, इस विधि से जनरेट किए गए सर्टिफिकेट को रद्द नहीं किया जा सकता क्योंकि CA को उनके बारे में जानकारी नहीं होती।

Trusting Rogue CA Certificates - DPERSIST2

NTAuthCertificates ऑब्जेक्ट को एक या अधिक CA सर्टिफिकेट को अपने cacertificate विशेषता में रखने के लिए परिभाषित किया गया है, जिसका उपयोग Active Directory (AD) करता है। डोमेन कंट्रोलर द्वारा सत्यापन प्रक्रिया में प्रमाणीकरण सर्टिफिकेट के इश्यूअर फ़ील्ड में निर्दिष्ट CA के लिए एक प्रविष्टि के लिए NTAuthCertificates ऑब्जेक्ट की जांच करना शामिल है। यदि एक मेल मिलता है, तो प्रमाणीकरण आगे बढ़ता है।

एक आत्म-हस्ताक्षरित CA सर्टिफिकेट को NTAuthCertificates ऑब्जेक्ट में एक हमलावर द्वारा जोड़ा जा सकता है, बशर्ते कि उनके पास इस AD ऑब्जेक्ट पर नियंत्रण हो। सामान्यतः, केवल Enterprise Admin समूह के सदस्य, साथ ही Domain Admins या Administrators को फॉरेस्ट रूट के डोमेन में इस ऑब्जेक्ट को संशोधित करने की अनुमति दी जाती है। वे certutil.exe का उपयोग करके NTAuthCertificates ऑब्जेक्ट को संपादित कर सकते हैं, कमांड certutil.exe -dspublish -f C:\Temp\CERT.crt NTAuthCA126 के साथ, या PKI Health Tool का उपयोग करके।

यह क्षमता विशेष रूप से ForgeCert के साथ मिलकर उपयोग करने पर प्रासंगिक है, जो गतिशील रूप से सर्टिफिकेट उत्पन्न करने की विधि है।

Malicious Misconfiguration - DPERSIST3

AD CS घटकों के सुरक्षा वर्णनकर्ता संशोधनों के माध्यम से स्थिरता के अवसर प्रचुर मात्रा में हैं। "Domain Escalation" अनुभाग में वर्णित संशोधन एक हमलावर द्वारा दुर्भावनापूर्ण रूप से लागू किए जा सकते हैं जिनके पास उच्च स्तर की पहुंच है। इसमें संवेदनशील घटकों जैसे:

  • CA सर्वर का AD कंप्यूटर ऑब्जेक्ट

  • CA सर्वर का RPC/DCOM सर्वर

  • CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM> में कोई भी वंशज AD ऑब्जेक्ट या कंटेनर (उदाहरण के लिए, सर्टिफिकेट टेम्पलेट्स कंटेनर, सर्टिफिकेशन अथॉरिटीज कंटेनर, NTAuthCertificates ऑब्जेक्ट, आदि)

  • AD समूहों को AD CS को नियंत्रित करने के लिए अधिकार सौंपे गए डिफ़ॉल्ट या संगठन द्वारा (जैसे कि अंतर्निहित Cert Publishers समूह और इसके किसी भी सदस्य)

दुर्भावनापूर्ण कार्यान्वयन का एक उदाहरण एक हमलावर होगा, जिसके पास डोमेन में उच्च अनुमतियाँ हैं, जो डिफ़ॉल्ट User सर्टिफिकेट टेम्पलेट में WriteOwner अनुमति जोड़ता है, जिसमें हमलावर अधिकार के लिए प्रमुख होता है। इसका लाभ उठाने के लिए, हमलावर पहले User टेम्पलेट की स्वामित्व को अपने नाम पर बदल देगा। इसके बाद, mspki-certificate-name-flag को 1 पर सेट किया जाएगा ताकि ENROLLEE_SUPPLIES_SUBJECT सक्षम हो सके, जिससे एक उपयोगकर्ता अनुरोध में एक विषय वैकल्पिक नाम प्रदान कर सके। इसके बाद, हमलावर टेम्पलेट का उपयोग करके नामांकन कर सकता है, एक डोमेन प्रशासक नाम को वैकल्पिक नाम के रूप में चुन सकता है, और अधिग्रहित सर्टिफिकेट का उपयोग प्रमाणीकरण के लिए DA के रूप में कर सकता है।

Support HackTricks

Last updated