Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
PSPKIAudit — PSPKI टूलकिट पर आधारित AD CS ऑडिटिंग के लिए PowerShell टूलकिट। | Kitploit
उपकरण/GitHubGitHub/ghostpack/pspkiaudit
विशेषाधिकार वृद्धिपेनिट्रेशन टेस्टिंग
GitHubghostpack/pspkiaudit

PSPKIAudit

PSPKI टूलकिट पर आधारित AD CS ऑडिटिंग के लिए PowerShell टूलकिट।

रिपॉजिटरी देखें
941130482 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

PSPKIAudit

सक्रिय निर्देशिका प्रमाणपत्र सेवाओं (AD CS) के ऑडिट के लिए पावरशेल टूलकिट।

यह PKISolution के PSPKI टूलकिट (माइक्रोसॉफ्ट पब्लिक लाइसेंस) के ऊपर बनाया गया है। इस रिपॉजिटरी में PSPKI का एक नया वर्शन है जो PSGallery में उपलब्ध है (देखें PSPKI निर्देशिका)। Vadims Podans (PSPKI के निर्माता) ने कृपया यह वर्शन प्रदान किया है क्योंकि इसमें कई बगों के पैच शामिल हैं।

यह README केवल एक प्रारंभिक बिंदु है - पूर्ण विवरण और रक्षात्मक मार्गदर्शन के लिए, कृपया "Certified Pre-Owned" श्वेतपत्र देखें।

मॉड्यूल में निम्नलिखित मुख्य फ़ंक्शन शामिल हैं:

  1. Invoke-PKIAudit - वर्तमान फ़ॉरेस्ट की AD CS सेटिंग्स का ऑडिट करता है, मुख्य रूप से CA सर्वर और प्रकाशित टेम्पलेट्स में संभावित विशेषाधिकार वृद्धि के अवसरों का विश्लेषण करता है।
  2. Get-CertRequest - CA के डेटाबेस को क्वेरी करके CA द्वारा जारी प्रमाणपत्रों की जाँच करता है। इसका प्राथमिक उद्देश्य उन प्रमाणपत्र अनुरोधों को खोजना है जिन्होंने किसी प्रमाणपत्र टेम्पलेट विशेषाधिकार वृद्धि भेद्यता का दुरुपयोग किया हो सकता है। इसके अलावा, यदि कोई उपयोगकर्ता या कंप्यूटर से समझौता किया जाता है, तो घटना प्रतिक्रियाकर्ता इसका उपयोग उन प्रमाणपत्रों को खोजने के लिए कर सकते हैं जो CA सर्वर ने समझौता किए गए उपयोगकर्ता/कंप्यूटर को जारी किए थे (जिन्हें फिर निरस्त किया जाना चाहिए)।

चेतावनी: यह कोड बीटा है! हमें विश्वास है कि Invoke-PKIAudit पर्यावरण को प्रभावित नहीं करेगा क्योंकि यह जितना डेटा क्वेरी करता है वह काफी सीमित है। हमने सामान्य CA सर्वर कार्यभार के विरुद्ध Get-CertRequest के साथ कठोर परीक्षण नहीं किया है। Get-CertRequest सीधे CA के डेटाबेस को क्वेरी करता है और इसे हजारों परिणामों को संसाधित करना पड़ सकता है, जो प्रदर्शन को प्रभावित कर सकता है।

यदि कोई परिणाम नहीं हैं, तो यह गारंटी नहीं है कि आपका वातावरण सुरक्षित है!!

हम यह भी गारंटी नहीं दे सकते कि हमारी शमन सलाह आपके वातावरण को सुरक्षित बनाएगी या संचालन को बाधित नहीं करेगी!

यह आपकी जिम्मेदारी है कि आप अपनी सक्रिय निर्देशिका/PKI/आर्किटेक्चर टीम(टीमों) से बात करें ताकि आपके वातावरण के लिए सर्वोत्तम शमन निर्धारित किए जा सकें।

यदि कोड टूट जाता है, या हम कुछ भूल गए हैं, तो कृपया सुधार के लिए कोई issue या pull request सबमिट करें!

  • सेटअप
  • AD CS गलत कॉन्फ़िगरेशन का ऑडिट करना
    • आउटपुट व्याख्या
    • ESC1 - गलत कॉन्फ़िगर किए गए प्रमाणपत्र टेम्पलेट
    • ESC2 - गलत कॉन्फ़िगर किए गए प्रमाणपत्र टेम्पलेट
    • ESC3 - गलत कॉन्फ़िगर किए गए नामांकन एजेंट टेम्पलेट
    • ESC4 - संवेदनशील प्रमाणपत्र टेम्पलेट एक्सेस नियंत्रण
    • ESC5 - संवेदनशील PKI AD ऑब्जेक्ट एक्सेस नियंत्रण
    • ESC6 - EDITF_ATTRIBUTESUBJECTALTNAME2
    • ESC7 - संवेदनशील प्रमाणपत्र प्राधिकरण एक्सेस नियंत्रण
    • ESC8 - NTLM रिले से AD CS HTTP एंडपॉइंट
    • विविध - स्पष्ट मैपिंग
  • मौजूदा जारी प्रमाणपत्र अनुरोधों की जांच

सेटअप

आवश्यकताएँ

एक उन्नत पावरशेल प्रॉम्प्ट (पावरशेल वर्शन 5.1 या उससे ऊपर) का उपयोग करके विंडोज मशीन पर निम्नलिखित स्थापित करें:

  • RSAT's की Certificate Services और Active Directory सुविधाएँ। निम्नलिखित कमांड से स्थापित करें:``` Get-WindowsCapability -Online -Name "Rsat.*" | where Name -match "CertificateServices|ActiveDirectory" | Add-WindowsCapability -Online
root@kitploit:~
* The [PSPKI PowerShell module](https://github.com/PKISolutions/PSPKI). निम्नलिखित कमांड से इंस्टॉल करें:```
Install-Module -Name PSPKI

Import

मॉड्यूल डाउनलोड करें और इसे एक फ़ोल्डर में निकालें। फिर, निम्नलिखित कमांड का उपयोग करके मॉड्यूल आयात करें:``` cd PSPKIAudit Get-ChildItem -Recurse | Unblock-File

Import-Module .\PSPKIAudit.psd1

root@kitploit:~
# AD CS गलत कॉन्फ़िगरेशन का ऑडिट करना

`Invoke-PKIAudit` चलाने से वर्तमान डोमेन में AD CS के विरुद्ध सभी ऑडिटिंग जाँचें चलेंगी, जिसमें विभिन्न प्रमाणपत्र प्राधिकरण और प्रमाणपत्र टेम्पलेट सेटिंग्स की गणना शामिल है। किसी विशिष्ट CA का ऑडिट करने के लिए, आप `Invoke-PKIAudit -CAComputerName CA.DOMAIN.COM` या `Invoke-PKIAudit -CAName X-Y-Z` चला सकते हैं।

कोई भी गलत कॉन्फ़िगरेशन (ESC1-8) CA/टेम्पलेट परिणामों पर गुणों के रूप में दिखाई देंगे, जो पाए गए विशिष्ट गलत कॉन्फ़िगरेशन की पहचान करने के लिए प्रदर्शित किए जाते हैं।

यदि आप नामांकन/पहुँच नियंत्रण का परीक्षण करने के लिए उपयोग किए जाने वाले समूहों/उपयोगकर्ताओं को बदलना चाहते हैं, तो `Invoke-PKIAudit.ps1` के शीर्ष पर `$CommonLowprivPrincipals` regex को संशोधित करें।

यदि आप सभी CA जानकारी को csv में निर्यात करना चाहते हैं, तो चलाएँ: `Get-AuditCertificateAuthority [-CAComputerName CA.DOMAIN.COM | -CAName X-Y-Z] | Export-Csv -NoTypeInformation CAs.csv`

यदि आप सभी प्रकाशित टेम्पलेट जानकारी (केवल कमजोर टेम्पलेट नहीं) को csv में निर्यात करना चाहते हैं, तो चलाएँ: `Get-AuditCertificateTemplate [-CAComputerName CA.DOMAIN.COM | -CAName X-Y-Z] | Export-Csv -NoTypeInformation templates.csv`


## आउटपुट स्पष्टीकरण

आउटपुट के दो मुख्य भाग हैं, खोजे गए CA के बारे में विवरण और संभावित रूप से कमजोर टेम्पलेट्स के बारे में विवरण।

प्रमाणपत्र प्राधिकरण परिणामों के लिए:

| Certificate Authority Property | Description                                                        |
| ------------------------------ | ------------------------------------------------------------------ |
| ComputerName                   | वह सिस्टम जिस पर CA चल रहा है।                                   |
| CAName                         | CA का नाम।                                                |
| ConfigString                   | पूर्ण COMPUTER\CA_NAME कॉन्फ़िगरेशन स्ट्रिंग।                    |
| IsRoot                         | यदि CA एक रूट CA है।                                            |
| AllowsUserSuppliedSans         | यदि CA में `EDITF_ATTRIBUTESUBJECTALTNAME2` फ्लैग सेट है।       |
| VulnerableACL                  | क्या CA में एक कमजोर ACL सेटिंग है।                       |
| EnrollmentPrincipals           | वे प्रिंसिपल जिनके पास CA स्तर पर `Enroll` विशेषाधिकार है।        |
| EnrollmentEndpoints            | CA के वेब सेवाओं के नामांकन एंडपॉइंट।                        |
| NTLMEnrollmentEndpoints        | CA के वेब सेवाओं के नामांकन एंडपॉइंट जिनमें NTLM सक्षम है। |
| DACL                           | पूर्ण पहुँच नियंत्रण जानकारी।                               |
| Misconfigurations              | ESCX जो विशिष्ट गलत कॉन्फ़िगरेशन की उपस्थिति (यदि कोई हो) को इंगित करता है।    |


प्रमाणपत्र टेम्पलेट परिणामों के लिए:

| Property                | Description                                                                                              |
| ----------------------- | -------------------------------------------------------------------------------------------------------- |
| CA                      | पूर्ण CA ConfigString जिस पर टेम्पलेट प्रकाशित है (प्रकाशित नहीं होने पर null)।                          |
| Name                    | टेम्पलेट का नाम।                                                                                       |
| SchemaVersion           | टेम्पलेट का स्कीमा संस्करण (1/2/3)।                                                              |
| OID                     | टेम्पलेट के लिए अद्वितीय ऑब्जेक्ट पहचानकर्ता।                                                           |
| VulnerableTemplateACL   | सत्य यदि टेम्पलेट में एक कमजोर ACL सेटिंग है।                                                       |
| LowPrivCanEnroll        | सत्य यदि निम्न-विशेषाधिकार वाले उपयोगकर्ता टेम्पलेट में नामांकन कर सकते हैं।                                                 |
| EnrolleeSuppliesSubject | सत्य यदि `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT` फ्लैग मौजूद है (अर्थात, उपयोगकर्ता मनमाने SAN प्रदान कर सकते हैं)। |
| EnhancedKeyUsage        | टेम्पलेट में सक्षम उपयोग EKU।                                                                  |
| HasAuthenticationEku    | सत्य यदि टेम्पलेट में एक EKU है जो प्रमाणीकरण की अनुमति देता है।                                          |
| HasDangerousEku         | सत्य यदि टेम्पलेट में एक 'खतरनाक' (Any Purpose या null) EKU है।                                        |
| EnrollmentAgentTemplate | सत्य यदि टेम्पलेट में 'Certificate Request Agent' EKU है।                                            |
| CAManagerApproval       | सत्य यदि नामांकन के लिए प्रबंधक अनुमोदन आवश्यक है।                                                     |
| IssuanceRequirements    | अधिकृत हस्ताक्षर जानकारी।                                                                        |
| ValidityPeriod          | प्रमाणपत्र कितने समय के लिए मान्य है।                                                                   |
| RenewalPeriod           | प्रमाणपत्र के लिए नवीकरण अवधि।                                                                  |
| Owner                   | प्रमाणपत्र का स्वामी प्रिंसिपल।                                                                  |
| DACL                    | पूर्ण पहुँच नियंत्रण जानकारी।                                                                     |
| Misconfigurations       | ESCX जो विशिष्ट गलत कॉन्फ़िगरेशन की उपस्थिति (यदि कोई हो) को इंगित करता है।                                          |


## ESC1 - गलत कॉन्फ़िगर किए गए प्रमाणपत्र टेम्पलेट

### Details <!-- omit in toc -->

यह विशेषाधिकार वृद्धि परिदृश्य तब होता है जब निम्नलिखित शर्तें पूरी होती हैं:

1. **एंटरप्राइज CA निम्न-विशेषाधिकार वाले उपयोगकर्ताओं को नामांकन अधिकार प्रदान करता है।** एंटरप्राइज CA के कॉन्फ़िगरेशन को निम्न-विशेषाधिकार वाले उपयोगकर्ताओं को प्रमाणपत्रों का अनुरोध करने की क्षमता की अनुमति देनी चाहिए। अधिक जानकारी के लिए श्वेतपत्र की शुरुआत में "पृष्ठभूमि - नामांकन" अनुभाग देखें।

2. **प्रबंधक अनुमोदन अक्षम है।** यह सेटिंग आवश्यक करती है कि प्रमाणपत्र "प्रबंधक" अनुमतियों वाला उपयोगकर्ता प्रमाणपत्र जारी होने से पहले अनुरोधित प्रमाणपत्र की समीक्षा और अनुमोदन करे। अधिक जानकारी के लिए श्वेतपत्र की शुरुआत में "पृष्ठभूमि - जारी करने की आवश्यकताएँ" अनुभाग देखें।

3. **कोई अधिकृत हस्ताक्षर आवश्यक नहीं हैं।** यह सेटिंग आवश्यक करती है कि किसी भी CSR पर किसी मौजूदा अधिकृत प्रमाणपत्र द्वारा हस्ताक्षर किया जाए। अधिक जानकारी के लिए श्वेतपत्र की शुरुआत में "पृष्ठभूमि - जारी करने की आवश्यकताएँ" अनुभाग देखें।

4. **एक अत्यधिक अनुमतिपूर्ण प्रमाणपत्र टेम्पलेट सुरक्षा विवरणक निम्न-विशेषाधिकार वाले उपयोगकर्ताओं को प्रमाणपत्र नामांकन अधिकार प्रदान करता है।** प्रमाणपत्र नामांकन अधिकार होने से एक निम्न-विशेषाधिकार वाला हमलावर टेम्पलेट के आधार पर प्रमाणपत्र का अनुरोध और प्राप्त कर सकता है। नामांकन अधिकार प्रमाणपत्र टेम्पलेट AD ऑब्जेक्ट के सुरक्षा विवरणक के माध्यम से प्रदान किए जाते हैं।

5. **प्रमाणपत्र टेम्पलेट EKU को परिभाषित करता है जो प्रमाणीकरण सक्षम करते हैं।** लागू EKU में क्लाइंट प्रमाणीकरण (OID 1.3.6.1.5.5.7.3.2), PKINIT क्लाइंट प्रमाणीकरण (OID 1.3.6.1.5.2.3.4), या स्मार्ट कार्ड लॉगऑन (OID 1.3.6.1.4.1.311.20.2.2) शामिल हैं।

6. **प्रमाणपत्र टेम्पलेट अनुरोधकर्ताओं को CSR में subjectAltName (SAN) निर्दिष्ट करने की अनुमति देता है।** यदि कोई अनुरोधकर्ता CSR में SAN निर्दिष्ट कर सकता है, तो अनुरोधकर्ता किसी के रूप में प्रमाणपत्र का अनुरोध कर सकता है (जैसे, एक डोमेन व्यवस्थापक उपयोगकर्ता)। प्रमाणपत्र टेम्पलेट का AD ऑब्जेक्ट निर्दिष्ट करता है कि क्या अनुरोधकर्ता अपनी mspki-certificate-name-flag संपत्ति में SAN निर्दिष्ट कर सकता है। mspki-certificate-name-flag संपत्ति एक बिटमास्क है और यदि CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT फ्लैग मौजूद है, तो एक अनुरोधकर्ता SAN निर्दिष्ट कर सकता है।

**TL;DR** इस स्थिति का अर्थ है कि एक अविशेषाधिकार प्राप्त उपयोगकर्ता एक प्रमाणपत्र का अनुरोध कर सकता है जिसका उपयोग डोमेन प्रमाणीकरण के लिए किया जा सकता है, जहाँ वे एक मनमाना वैकल्पिक नाम (जैसे डोमेन व्यवस्थापक) निर्दिष्ट कर सकते हैं। इसके परिणामस्वरूप एक ऊंचे उपयोगकर्ता जैसे डोमेन व्यवस्थापक के लिए एक कार्यशील प्रमाणपत्र प्राप्त हो सकता है!


### Example <!-- omit in toc -->```
[!] Potentially vulnerable Certificate Templates:

CA                      : dc.theshire.local\theshire-DC-CA
Name                    : ESC1Template
SchemaVersion           : 2
OID                     : ESC1 Template (1.3.6.1.4.1.311.21.8.10395027.10224472.4213181.15714845.1171465.9.10657968.9897558)
VulnerableTemplateACL   : False
LowPrivCanEnroll        : True
EnrolleeSuppliesSubject : True
EnhancedKeyUsage        : Client Authentication (1.3.6.1.5.5.7.3.2)|Secure Email (1.3.6.1.5.5.7.3.4)|Encrypting File System (1.3.6.1.4.1.311.10.3.4)
HasAuthenticationEku    : True
HasDangerousEku         : False
EnrollmentAgentTemplate : False
CAManagerApproval       : False
IssuanceRequirements    : [Issuance Requirements]
                            Authorized signature count: 0
                            Reenrollment requires: same criteria as for enrollment.
ValidityPeriod          : 1 years
RenewalPeriod           : 6 weeks
Owner                   : THESHIRE\localadmin
DACL                    : NT AUTHORITY\Authenticated Users (Allow) - Read
                          THESHIRE\Domain Admins (Allow) - Read, Write, Enroll
                          THESHIRE\Domain Users (Allow) - Enroll
                          THESHIRE\Enterprise Admins (Allow) - Read, Write, Enroll
                          THESHIRE\localadmin (Allow) - Read, Write
Misconfigurations       : ESC1

Mitigations

कुछ विकल्प हैं। पहले, प्रभावित प्रमाणपत्र टेम्पलेट पर प्रमाणपत्र टेम्पलेट कंसोल (certtmpl.msc) में राइट-क्लिक करें और "Properties" पर क्लिक करें।

  1. "Subject Name" के माध्यम से CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT फ्लैग को हटाएं, "Supply in Request" को अनचेक करें।
    • यह CSR में मनमानी SAN निर्दिष्टीकरण को रोकता है। जब तक इस टेम्पलेट के लिए वैकल्पिक नामों की वास्तव में आवश्यकता न हो, यह संभवतः सबसे अच्छा फिक्स है।
  2. "Extensions" -> "Application Policies" के माध्यम से "Client Authentication" और/या "Smart Card Logon" EKUS को हटाएं।
    • यह इस टेम्पलेट के साथ डोमेन प्रमाणीकरण को रोकता है।
  3. "Issuance Requirements" में "CA Certificate Manager Approval" सक्षम करें।
    • यह इस टेम्पलेट के अनुरोधों को "Pending Requests" कतार में डालता है जिसे प्रमाणपत्र प्रबंधक द्वारा मैन्युअल रूप से अनुमोदित किया जाना चाहिए।
  4. "Issuance Requirements" में Authorized Signatures" सक्षम करें (यदि आप जानते हैं कि आप क्या कर रहे हैं)।
    • यह CSRs को एनरोलमेंट एजेंट प्रमाणपत्र द्वारा सह-हस्ताक्षरित होने के लिए बाध्य करता है।
  5. "Security" के माध्यम से निम्न-विशेषाधिकार वाले उपयोगकर्ताओं की इस टेम्पलेट में नामांकन की क्षमता को हटाएं और उचित Enroll विशेषाधिकार को हटाएं।

ESC2 - गलत कॉन्फ़िगर किए गए प्रमाणपत्र टेम्पलेट

विवरण

यह विशेषाधिकार वृद्धि परिदृश्य तब होता है जब निम्नलिखित शर्तें पूरी होती हैं:

  1. एंटरप्राइज CA निम्न-विशेषाधिकार वाले उपयोगकर्ताओं को नामांकन अधिकार प्रदान करता है। विवरण ESC1 के समान हैं।

  2. प्रबंधक अनुमोदन अक्षम है। विवरण ESC1 के समान हैं।

  3. कोई अधिकृत हस्ताक्षर आवश्यक नहीं हैं। विवरण ESC1 के समान हैं।

  4. एक अत्यधिक अनुमत प्रमाणपत्र टेम्पलेट सुरक्षा विवरणक निम्न-विशेषाधिकार वाले उपयोगकर्ताओं को प्रमाणपत्र नामांकन अधिकार प्रदान करता है। विवरण ESC1 के समान हैं।

  5. प्रमाणपत्र टेम्पलेट Any Purpose EKUs या कोई EKU परिभाषित करता है। Any Purpose (OID 2.5.29.37.0) का उपयोग किसी भी उद्देश्य के लिए किया जा सकता है (आश्चर्य!), जिसमें क्लाइंट प्रमाणीकरण शामिल है। यदि कोई EKU निर्दिष्ट नहीं है - अर्थात pkiextendedkeyusage खाली है या विशेषता मौजूद नहीं है - तो प्रमाणपत्र एक अधीनस्थ CA प्रमाणपत्र के समतुल्य है और इसका उपयोग किसी भी चीज़ के लिए किया जा सकता है।

TL;DR यह ESC1 के समान ही है, हालांकि Any Purpose या कोई EKU होने पर, CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT फ्लैग का मौजूद होना आवश्यक नहीं है।

उदाहरण ```

[!] Potentially vulnerable Certificate Templates:

CA : dc.theshire.local\theshire-DC-CA Name : ESC2Template SchemaVersion : 2 OID : ESC2 Template (1.3.6.1.4.1.311.21.8.10395027.10224472.4213181.15714845.1171465.9.7730030.4389735) VulnerableTemplateACL : False LowPrivCanEnroll : True EnrolleeSuppliesSubject : False EnhancedKeyUsage : HasAuthenticationEku : True HasDangerousEku : True EnrollmentAgentTemplate : False CAManagerApproval : False IssuanceRequirements : [Issuance Requirements] Authorized signature count: 0 Reenrollment requires: same criteria as for enrollment. ValidityPeriod : 1 years RenewalPeriod : 6 weeks Owner : THESHIRE\localadmin DACL : NT AUTHORITY\Authenticated Users (Allow) - Read THESHIRE\Domain Admins (Allow) - Read, Write, Enroll THESHIRE\Domain Users (Allow) - Enroll THESHIRE\Enterprise Admins (Allow) - Read, Write, Enroll THESHIRE\localadmin (Allow) - Read, Write Misconfigurations : ESC2

root@kitploit:~
### शमन <!-- omit in toc -->

कुछ विकल्प हैं। पहले, प्रभावित प्रमाणपत्र टेम्पलेट पर Certificate Templates Console (certtmpl.msc) में राइट-क्लिक करें और "Properties" पर क्लिक करें।

1. कम-विशेषाधिकार वाले उपयोगकर्ताओं के लिए इस टेम्पलेट में नामांकन (enroll) करने की क्षमता हटाएं, "Security" के माध्यम से और उचित **Enroll** विशेषाधिकार को हटाकर।
   * यह संभवतः सबसे अच्छा समाधान है, क्योंकि ये संवेदनशील EKU कम-विशेषाधिकार वाले उपयोगकर्ताओं के लिए उपलब्ध नहीं होने चाहिए!
2. "Issuance Requirements" में **"CA Certificate Manager Approval"** सक्षम करें।
   * यह इस टेम्पलेट के लिए अनुरोधों को "Pending Requests" कतार में रखता है जिसे प्रमाणपत्र प्रबंधक द्वारा मैन्युअल रूप से अनुमोदित किया जाना चाहिए।
3. "Issuance Requirements" में **Authorized Signatures** सक्षम करें (यदि आप जानते हैं कि आप क्या कर रहे हैं)।
   * यह CSRs को एक Enrollment Agent प्रमाणपत्र द्वारा सह-हस्ताक्षरित करने के लिए बाध्य करता है।


## ESC3 - गलत कॉन्फ़िगर किए गए Enrollment Agent टेम्पलेट

### विवरण <!-- omit in toc -->

यह विशेषाधिकार वृद्धि परिदृश्य तब होता है जब निम्नलिखित शर्तें पूरी होती हैं:

1. **एंटरप्राइज़ CA कम-विशेषाधिकार वाले उपयोगकर्ताओं को नामांकन अधिकार प्रदान करता है।** विवरण ESC1 के समान हैं।
2. **प्रबंधक अनुमोदन अक्षम है।** विवरण ESC1 के समान हैं।
3. **कोई अधिकृत हस्ताक्षर आवश्यक नहीं हैं।** विवरण ESC1 के समान हैं।
4. **एक अत्यधिक अनुमोदक प्रमाणपत्र टेम्पलेट सुरक्षा डिस्क्रिप्टर कम-विशेषाधिकार वाले उपयोगकर्ताओं को प्रमाणपत्र नामांकन अधिकार प्रदान करता है।** विवरण ESC1 के समान हैं।
5. **प्रमाणपत्र टेम्पलेट Certificate Request Agent EKU को परिभाषित करता है।** Certificate Request Agent EKU (OID 1.3.6.1.4.1.311.20.2.1) एक प्रिंसिपल को किसी अन्य उपयोगकर्ता की ओर से _दूसरे_ प्रमाणपत्र टेम्पलेट के लिए नामांकन करने की अनुमति देता है।
6. **CA पर Enrollment Agent प्रतिबंध लागू नहीं किए गए हैं।**

**TL;DR** एक Certificate Request (उर्फ Enrollment) Agent प्रमाणपत्र वाला कोई व्यक्ति डोमेन में किसी भी उपयोगकर्ता की ओर से अन्य प्रमाणपत्रों में नामांकन कर सकता है, किसी भी Schema Version 1 टेम्पलेट या किसी भी Schema Version 2+ टेम्पलेट के लिए जो उचित "Authorized Signatures/Application Policy" Issuance Requirement की आवश्यकता रखता है, जब तक कि CA स्तर पर "Enrollment Agent Restrictions" लागू न किए गए हों।

### उदाहरण <!-- omit in toc -->```
[!] Potentially vulnerable Certificate Templates:

CA                      : dc.theshire.local\theshire-DC-CA
Name                    : ESC3Template
SchemaVersion           : 2
OID                     : ESC3 Template (1.3.6.1.4.1.311.21.8.10395027.10224472.4213181.15714845.1171465.9.4300342.10028552)
VulnerableTemplateACL   : False
LowPrivCanEnroll        : True
EnrolleeSuppliesSubject : False
EnhancedKeyUsage        : Certificate Request Agent (1.3.6.1.4.1.311.20.2.1)
HasAuthenticationEku    : False
HasDangerousEku         : False
EnrollmentAgentTemplate : True
CAManagerApproval       : False
IssuanceRequirements    : [Issuance Requirements]
                            Authorized signature count: 0
                            Reenrollment requires: same criteria as for enrollment.
ValidityPeriod          : 1 years
RenewalPeriod           : 6 weeks
Owner                   : THESHIRE\localadmin
DACL                    : NT AUTHORITY\Authenticated Users (Allow) - Read
                          THESHIRE\Domain Admins (Allow) - Read, Write, Enroll
                          THESHIRE\Domain Users (Allow) - Enroll
                          THESHIRE\Enterprise Admins (Allow) - Read, Write, Enroll
                          THESHIRE\localadmin (Allow) - Read, Write
Misconfigurations       : ESC3

Mitigations

कुछ विकल्प हैं। पहले, सर्टिफिकेट टेम्प्लेट कंसोल (certtmpl.msc) में प्रभावित सर्टिफिकेट टेम्प्लेट पर राइट क्लिक करें और "Properties" पर क्लिक करें।

  1. कम-विशेषाधिकार वाले उपयोगकर्ताओं को इस टेम्प्लेट में नामांकन से रोकने के लिए "Security" के माध्यम से उपयुक्त Enroll विशेषाधिकार हटाएँ।
    • यह संभवतः सबसे अच्छा समाधान है, क्योंकि यह संवेदनशील EKU कम-विशेषाधिकार वाले उपयोगकर्ताओं के लिए उपलब्ध नहीं होना चाहिए!
  2. "Issuance Requirements" में "CA Certificate Manager Approval" सक्षम करें।
    • यह इस टेम्प्लेट के अनुरोधों को "Pending Requests" कतार में रखता है जिसे एक सर्टिफिकेट मैनेजर द्वारा मैन्युअल रूप से अनुमोदित किया जाना चाहिए।

आप प्रमाणन प्राधिकरण कंसोल (certsrv.msc) के माध्यम से "Enrollment Agent Restrictions" भी लागू कर सकते हैं। प्रभावित CA पर, CA नाम पर राइट क्लिक करें और "Properties" -> "Enrollment Agents" पर क्लिक करें। इस दृष्टिकोण के बारे में अधिक जानकारी यहाँ उपलब्ध है।

ESC4 - संवेदनशील सर्टिफिकेट टेम्प्लेट एक्सेस कंट्रोल

Details

सर्टिफिकेट टेम्प्लेट Active Directory में सुरक्षित वस्तुएँ हैं, जिसका अर्थ है कि उनमें एक सुरक्षा विवरणक होता है जो निर्दिष्ट करता है कि किन Active Directory प्रिंसिपलों के पास टेम्प्लेट पर विशिष्ट अनुमतियाँ हैं। जिन टेम्प्लेट में संवेदनशील एक्सेस कंट्रोल है, वे अनभिप्रेत प्रिंसिपलों को टेम्प्लेट में सेटिंग्स संशोधित करने की क्षमता प्रदान करते हैं। संशोधन अधिकारों के साथ, एक हमलावर संवेदनशील EKU (ESC1-ESC3) सेट कर सकता है, CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT (ESC1) जैसी सेटिंग्स को पलट सकता है, और/या "Issuance Requirements" (जैसे प्रबंधक अनुमोदन या अधिकृत हस्ताक्षर) को हटा सकता है।

Example ```

[!] Potentially vulnerable Certificate Templates:

CA : dc.theshire.local\theshire-DC-CA Name : ESC4Template SchemaVersion : 2 OID : ESC4 Template (1.3.6.1.4.1.311.21.8.10395027.10224472.4213181.15714845.1171465.9.1768738.6205646) VulnerableTemplateACL : True LowPrivCanEnroll : True EnrolleeSuppliesSubject : False EnhancedKeyUsage : Client Authentication (1.3.6.1.5.5.7.3.2)|Secure Email (1.3.6.1.5.5.7.3.4)|Encrypting File System (1.3.6.1.4.1.311.10.3.4) HasAuthenticationEku : True HasDangerousEku : False EnrollmentAgentTemplate : False CAManagerApproval : False IssuanceRequirements : [Issuance Requirements] Authorized signature count: 0 Reenrollment requires: same criteria as for enrollment. ValidityPeriod : 1 years RenewalPeriod : 6 weeks Owner : THESHIRE\localadmin DACL : NT AUTHORITY\Authenticated Users (Allow) - Read, Write THESHIRE\Domain Admins (Allow) - Read, Write, Enroll THESHIRE\Domain Users (Allow) - Read, Enroll THESHIRE\Enterprise Admins (Allow) - Read, Write, Enroll THESHIRE\localadmin (Allow) - Read, Write Misconfigurations : ESC4

root@kitploit:~
### Mitigations <!-- omit in toc -->

प्रभावित प्रमाणपत्र टेम्पलेट पर प्रमाणपत्र टेम्पलेट कंसोल (certtmpl.msc) में राइट-क्लिक करें और "Properties" पर क्लिक करें।

"Security" पर जाएँ और कमजोर एक्सेस कंट्रोल एंट्री को हटाएँ।

## ESC5 - कमजोर PKI AD ऑब्जेक्ट एक्सेस कंट्रोल

### Details <!-- omit in toc -->

प्रमाणपत्र टेम्पलेट और प्रमाणपत्र प्राधिकरण के बाहर कई ऑब्जेक्ट्स सम्पूर्ण AD CS सिस्टम पर सुरक्षा प्रभाव डाल सकते हैं।

इन संभावनाओं में शामिल हैं (लेकिन इन्हीं तक सीमित नहीं):
- CA सर्वर का AD कंप्यूटर ऑब्जेक्ट (जैसे, RBCD के माध्यम से समझौता)
- CA सर्वर का RPC/DCOM सर्वर
- PKI-संबंधित AD ऑब्जेक्ट्स. CN=Public Key Services,CN=Services,CN=Configuration,DC=<COMPANY>,DC=<COM> कंटेनर में कोई भी वंशज AD ऑब्जेक्ट या कंटेनर (जैसे, प्रमाणपत्र टेम्पलेट कंटेनर, प्रमाणपत्र प्राधिकरण कंटेनर, NTAuthCertificates ऑब्जेक्ट, आदि)

*इस विशिष्ट गलत कॉन्फ़िगरेशन के व्यापक दायरे के कारण, हम वर्तमान में इस टूलकिट में डिफ़ॉल्ट रूप से ESC5 की जाँच नहीं करते हैं।*

CA सर्वर में एक्सेस पथ वर्तमान BloodHound संग्रह में पाए जा सकते हैं।

CA सर्वर के RPC/DCOM सर्वर सुरक्षा के लिए मैन्युअल विश्लेषण की आवश्यकता होती है।

निम्नलिखित कमांड उपयोगकर्ताओं की एक सूची और उपयोगकर्ता के पास PKI-संबंधित AD ऑब्जेक्ट पर नियंत्रण/संपादन अधिकार को आउटपुट करता है।```
$Controllers = Get-AuditPKIADObjectControllers
Format-PKIAdObjectControllers $Controllers

सुनिश्चित करें कि परिणामों में सभी प्रिंसिपल्स को सूचीबद्ध अधिकारों की पूर्ण आवश्यकता है। अक्सर गैर-टियर 0 खातों (चाहे वह निम्न विशेषाधिकार वाले उपयोगकर्ता/समूह हों या कम विशेषाधिकार वाले गैर-AD सर्वर प्रशासक) का PKI-संबंधित AD ऑब्जेक्ट्स पर नियंत्रण होता है।

उदाहरण ```

THESHIRE\Cert Publishers (S-1-5-21-3022474190-4230777124-3051344698-517) GenericAll CN=THESHIRE-DC-CA,CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=THESHIRE,DC=LOCAL GenericAll CN=AIA,CN=Public Key Services,CN=Services,CN=Configuration,DC=THESHIRE,DC=LOCAL GenericAll CN=DC,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=THESHIRE,DC=LOCAL GenericAll CN=THESHIRE-DC-CA,CN=DC,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=THESHIRE,DC=LOCAL

THESHIRE\DC$ (S-1-5-21-3022474190-4230777124-3051344698-1000) WriteOwner CN=THESHIRE-DC-CA,CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration,DC=THESHIRE,DC=LOCAL GenericAll CN=THESHIRE-DC-CA,CN=AIA,CN=Public Key Services,CN=Services,CN=Configuration,DC=THESHIRE,DC=LOCAL GenericAll CN=THESHIRE-DC-CA,CN=DC,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=THESHIRE,DC=LOCAL GenericAll CN=THESHIRE-DC-CA,CN=KRA,CN=Public Key Services,CN=Services,CN=Configuration,DC=THESHIRE,DC=LOCAL

THESHIRE\Domain Computers (S-1-5-21-3022474190-4230777124-3051344698-515) WriteDacl CN=MisconfiguredTemplate,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=THESHIRE,DC=LOCAL

THESHIRE\Domain Users (S-1-5-21-3022474190-4230777124-3051344698-513) WriteAllProperties CN=MisconfiguredTemplate,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=THESHIRE,DC=LOCAL

THESHIRE\john-sa (S-1-5-21-3022474190-4230777124-3051344698-1602) GenericAll CN=MisconfiguredTemplate,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=THESHIRE,DC=LOCAL

NT AUTHORITY\Authenticated Users (S-1-5-11) Owner CN=MisconfiguredTemplate,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=THESHIRE,DC=LOCAL WriteOwner CN=MisconfiguredTemplate,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=THESHIRE,DC=LOCAL

root@kitploit:~
### Mitigations <!-- omit in toc -->

Active Directory Users and Computers (*dsa.msc*) या ADSIEdit (*adsiedit.msc*) के माध्यम से कॉन्फ़िगरेशन ऑब्जेक्ट्स के लिए किसी भी संवेदनशील अभिगम नियंत्रण प्रविष्टियों को हटाएँ।


## ESC6 - EDITF_ATTRIBUTESUBJECTALTNAME2 

### Details <!-- omit in toc -->

यदि किसी प्रमाणपत्र प्राधिकरण के कॉन्फ़िगरेशन में **EDITF_ATTRIBUTESUBJECTALTNAME2** फ़्लैग सेट होता है, तो *कोई भी* प्रमाणपत्र अनुरोध मनमाना विषय वैकल्पिक नाम (SANs) निर्दिष्ट कर सकता है। इसका मतलब है कि डोमेन प्रमाणीकरण के लिए कॉन्फ़िगर किया गया कोई भी टेम्पलेट जो अविशेषाधिकार प्राप्त उपयोगकर्ताओं को नामांकन की अनुमति देता है (जैसे डिफ़ॉल्ट **User** टेम्पलेट), का दुरुपयोग एक प्रमाणपत्र प्राप्त करने के लिए किया जा सकता है जो हमें डोमेन व्यवस्थापक (या किसी अन्य सक्रिय उपयोगकर्ता/मशीन) के रूप में प्रमाणित करने की अनुमति देता है।

**यह सेटिंग आपके वातावरण में बिल्कुल भी सेट नहीं होनी चाहिए।**

### Example <!-- omit in toc -->```
=== Certificate Authority ===


ComputerName            : dc.theshire.local
CAName                  : theshire-DC-CA
ConfigString            : dc.theshire.local\theshire-DC-CA
IsRoot                  : True
AllowsUserSuppliedSans  : True
VulnerableACL           : False
EnrollmentPrincipals    : THESHIRE\Domain Users
                          THESHIRE\Domain Computers
                          THESHIRE\certmanager
                          THESHIRE\certadmin
                          THESHIRE\Nested3
EnrollmentEndpoints     : 
NTLMEnrollmentEndpoints : 
DACL                    : BUILTIN\Administrators (Allow) - ManageCA, ManageCertificates
                          THESHIRE\Domain Admins (Allow) - ManageCA, ManageCertificates
                          THESHIRE\Domain Users (Allow) - Read, Enroll
                          THESHIRE\Domain Computers (Allow) - Enroll
                          THESHIRE\Enterprise Admins (Allow) - ManageCA, ManageCertificates
                          THESHIRE\certmanager (Allow) - ManageCertificates, Enroll
                          THESHIRE\certadmin (Allow) - ManageCA, Enroll
                          THESHIRE\Nested3 (Allow) - ManageCertificates, Enroll
Misconfigurations       : ESC6

[!] The above CA is misconfigured!

...(snip)...

[!] EDITF_ATTRIBUTESUBJECTALTNAME2 set on this CA, the following templates may be vulnerable:

CA                      : dc.theshire.local\theshire-DC-CA
Name                    : User
SchemaVersion           : 1
OID                     : 1.3.6.1.4.1.311.21.8.10395027.10224472.4213181.15714845.1171465.9.1.1
VulnerableTemplateACL   : False
LowPrivCanEnroll        : True
EnrolleeSuppliesSubject : False
EnhancedKeyUsage        : Encrypting File System (1.3.6.1.4.1.311.10.3.4)|Secure Email (1.3.6.1.5.5.7.3.4)|Client Authentication (1.3.6.1.5.5.7.3.2)
HasAuthenticationEku    : True
HasDangerousEku         : False
EnrollmentAgentTemplate : False
CAManagerApproval       : False
IssuanceRequirements    : [Issuance Requirements]
                            Authorized signature count: 0
                            Reenrollment requires: same criteria as for enrollment.
ValidityPeriod          : 1 years
RenewalPeriod           : 6 weeks
Owner                   : THESHIRE\Enterprise Admins
DACL                    : NT AUTHORITY\Authenticated Users (Allow) - Read
                          THESHIRE\Domain Admins (Allow) - Read, Write, Enroll
                          THESHIRE\Domain Users (Allow) - Read, Enroll
                          THESHIRE\Enterprise Admins (Allow) - Read, Write, Enroll
Misconfigurations       :

शमन

इस फ़्लैग को तुरंत हटाएँ और CA सर्वर पर उन्नत अधिकारों के साथ PowerShell प्रॉम्प्ट से प्रभावित प्रमाणपत्र प्राधिकरण को पुनरारंभ करें:``` PS C:> certutil -config "CA_HOST\CA_NAME" -setreg policy\EditFlags -EDITF_ATTRIBUTESUBJECTALTNAME2

PS C:> Get-Service -ComputerName CA_HOST certsvc | Restart-Service -Force

root@kitploit:~
## ESC7 - संवेदनशील प्रमाणपत्र प्राधिकरण पहुँच नियंत्रण

### विवरण <!-- सामग्री तालिका में छोड़ें -->

प्रमाणपत्र टेम्पलेट्स के अलावा, एक प्रमाणपत्र प्राधिकरण के पास स्वयं विभिन्न CA कार्यों को सुरक्षित करने वाली अनुमतियों का एक सेट होता है। इन अनुमतियों को certsrv.msc से, CA पर राइट-क्लिक करके, गुण चुनकर, और सुरक्षा टैब पर स्विच करके एक्सेस किया जा सकता है।

दो ऐसे अधिकार हैं जो सुरक्षा के लिए संवेदनशील और खतरनाक हैं यदि अनिच्छित प्रिंसिपल उनके पास हैं:

* **ManageCA** (उर्फ "CA प्रशासक") - प्रशासनिक CA कार्यों की अनुमति देता है, जिसमें (दूरस्थ रूप से) EDITF_ATTRIBUTESUBJECTALTNAME2 बिट को फ़्लिप करना शामिल है, जिसके परिणामस्वरूप ESC6 होता है।
* **ManageCertificates** (उर्फ "प्रमाणपत्र प्रबंधक/अधिकारी") - प्रिंसिपल को लंबित प्रमाणपत्र अनुरोधों को अनुमोदित करने की अनुमति देता है, जिससे "प्रबंधक अनुमोदन" जारी करने की आवश्यकता/सुरक्षा समाप्त हो जाती है।

### उदाहरण <!-- सामग्री तालिका में छोड़ें -->```
=== Certificate Authority ===


ComputerName            : dc.theshire.local
CAName                  : theshire-DC-CA
ConfigString            : dc.theshire.local\theshire-DC-CA
IsRoot                  : True
AllowsUserSuppliedSans  : False
VulnerableACL           : True
EnrollmentPrincipals    : THESHIRE\Domain Users
                          THESHIRE\Domain Computers
                          THESHIRE\certmanager
                          THESHIRE\certadmin
                          THESHIRE\Nested3
EnrollmentEndpoints     : 
NTLMEnrollmentEndpoints : 
DACL                    : BUILTIN\Administrators (Allow) - ManageCA, ManageCertificates
                          THESHIRE\Domain Admins (Allow) - ManageCA, ManageCertificates
                          THESHIRE\Domain Users (Allow) - ManageCA, Read, Enroll
                          THESHIRE\Domain Computers (Allow) - Enroll
                          THESHIRE\Enterprise Admins (Allow) - ManageCA, ManageCertificates
                          THESHIRE\certmanager (Allow) - ManageCertificates, Enroll
                          THESHIRE\certadmin (Allow) - ManageCA, Enroll
                          THESHIRE\Nested3 (Allow) - ManageCertificates, Enroll
Misconfigurations       : ESC7

[!] The above CA is misconfigured!

Mitigations

प्रभावित CA पर Certification Authority कंसोल (certsrv.msc) खोलें, CA नाम पर राइट-क्लिक करें और "Properties" पर क्लिक करें।

"Security" पर जाएं और असुरक्षित एक्सेस कंट्रोल एंट्री को हटा दें।

ESC8 - NTLM रिले to AD CS HTTP एंडपॉइंट्स

नोट: PSPKIAudit में यह विशेष जाँच केवल यह जाँचती है कि किसी भी प्रकाशित एनरोलमेंट एंडपॉइंट के लिए NTLM मौजूद है या नहीं। यह जाँच नहीं करता कि इन NTLM-सक्षम एंडपॉइंट के लिए प्रमाणीकरण के लिए विस्तारित सुरक्षा (Extended Protection for Authentication) मौजूद है या नहीं, इसलिए गलत सकारात्मक परिणाम हो सकते हैं!

[!IMPORTANT]
Protected Users समूह के खातों के लिए NTLM प्रमाणीकरण अक्षम है। यदि PSPKIAudit को Protected User के रूप में लॉग इन करते समय चलाया जाता है तो यह जाँच विफल हो सकती है।

Details

AD CS प्रशासकों द्वारा स्थापित किए जा सकने वाले अतिरिक्त AD CS सर्वर भूमिकाओं के माध्यम से कई HTTP-आधारित एनरोलमेंट विधियों का समर्थन करता है। ये HTTP-आधारित प्रमाणपत्र एनरोलमेंट इंटरफेस सभी NTLM रिले हमलों के लिए असुरक्षित हैं।

NTLM रिले का उपयोग करके, एक समझौता किए गए मशीन पर हमलावर किसी भी इनबाउंड NTLM-प्रमाणीकरण AD खाते का प्रतिरूपण कर सकता है। पीड़ित खाते का प्रतिरूपण करते समय, हमलावर इन वेब इंटरफेस तक पहुंच सकता है और User या Machine प्रमाणपत्र टेम्पलेट्स के आधार पर क्लाइंट प्रमाणीकरण प्रमाणपत्र का अनुरोध कर सकता है।

Example ```

=== Certificate Authority ===

ComputerName : dc.theshire.local CAName : theshire-DC-CA ConfigString : dc.theshire.local\theshire-DC-CA IsRoot : True AllowsUserSuppliedSans : False VulnerableACL : False EnrollmentPrincipals : THESHIRE\Domain Users THESHIRE\Domain Computers THESHIRE\certmanager THESHIRE\certadmin THESHIRE\Nested3 EnrollmentEndpoints : http://dc.theshire.local/certsrv/ NTLMEnrollmentEndpoints : http://dc.theshire.local/certsrv/ DACL : BUILTIN\Administrators (Allow) - ManageCA, ManageCertificates THESHIRE\Domain Admins (Allow) - ManageCA, ManageCertificates THESHIRE\Domain Users (Allow) - Read, Enroll THESHIRE\Domain Computers (Allow) - Enroll THESHIRE\Enterprise Admins (Allow) - ManageCA, ManageCertificates THESHIRE\certmanager (Allow) - ManageCertificates, Enroll THESHIRE\certadmin (Allow) - ManageCA, Enroll THESHIRE\Nested3 (Allow) - ManageCertificates, Enroll Misconfigurations : ESC8

[!] The above CA is misconfigured!

root@kitploit:~
### Mitigations <!-- omit in toc -->

या तो HTTP(S) नामांकन एंडपॉइंट हटाएं, एंडपॉइंट्स के लिए NTLM अक्षम करें, या प्रमाणीकरण के लिए विस्तारित सुरक्षा (Extended Protection for Authentication) सक्षम करें। अधिक जानकारी के लिए व्हाइटपेपर में **Harden AD CS HTTP Endpoints – PREVENT8** देखें।


## Misc - Explicit Mappings

कुछ स्थितियों में एक संभावित शमन उपाय प्रमाणपत्रों के लिए स्पष्ट मैपिंग (explicit mappings) लागू करना है। यह Active Directory में प्रमाणीकरण करते समय प्रमाणपत्रों में वैकल्पिक SAN के उपयोग को अक्षम करता है।

Kerberos के लिए, **HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc ! UseSubjectAltName** कुंजी को 00000000 पर सेट करने से एक स्पष्ट मैपिंग लागू होती है। [KB4043463](https://mskb.pkisolutions.com/kb/4043463) में अधिक विवरण हैं।

SChannel के लिए स्पष्ट मैपिंग अक्षम करना वास्तव में प्रलेखित नहीं है, लेकिन हमारे शोध के अनुसार **HKEY_LOCAL_MACHINE\CurrentControlSet\Control\SecurityProviders\SCHANNEL ! CertificateMappingMethods** कुंजी को 0x1 या 0x2 पर सेट करने से SAN को अवरुद्ध करने का प्रभाव दिखता है, लेकिन अधिक परीक्षण की आवश्यकता है।


# मौजूदा जारी प्रमाणपत्र अनुरोधों की जांच (Triaging Existing Issued Certificate Requests)

**चेतावनी:** इस कार्यक्षमता का बड़े वातावरणों में न्यूनतम परीक्षण किया गया है!

**नोट:** व्हाइटपेपर में "Monitor User/Machine Certificate Enrollments - DETECT1" देखें, और certutil के साथ ये खोज करने के तरीके के लिए अतिरिक्त जानकारी देखें।

यदि आप मौजूदा जारी प्रमाणपत्र अनुरोधों की जांच करना चाहते हैं, उदाहरण के लिए यह देखने के लिए कि क्या किसी अनुरोध में मनमाने SAN निर्दिष्ट किए गए थे, या क्या विशिष्ट टेम्पलेट/विशिष्ट प्रिंसिपल के लिए अनुरोध किए गए थे, तो `Get-CertRequest [-CAComputerName COMPUTER.DOMAIN.COM | -CAName X-Y-Z]` फ़ंक्शन विभिन्न PSPKI फ़ंक्शनों पर आधारित होकर अधिक संदर्भात्मक जानकारी प्रदान करता है।

विशेष रूप से, डोमेन में वर्तमान में जारी प्रत्येक प्रमाणपत्र के लिए कच्चा प्रमाणपत्र हस्ताक्षर अनुरोध (Certificate Signing Request - CSR) निकाला जाता है, और अनुरोध से विशिष्ट जानकारी (जैसे, क्या SAN निर्दिष्ट किया गया था, अनुरोधकर्ता का नाम/मशीन/प्रक्रिया, आदि) बनाकर CSR ऑब्जेक्ट को समृद्ध किया जाता है।

निम्नलिखित फ्लैग उपयोगी हो सकते हैं:

| फ्लैग                         | विवरण                                                                                          |
| ----------------------------- | ---------------------------------------------------------------------------------------------- |
| **-HasSAN**                 | केवल वे जारी प्रमाणपत्र लौटाएं जिनमें अनुरोध में Subject Alternative Name निर्दिष्ट हो।         |
| **-Requester DOMAIN\USER**  | केवल विशिष्ट अनुरोधकर्ता उपयोगकर्ता के लिए जारी प्रमाणपत्र अनुरोध लौटाएं।                       |
| **-Template TEMPLATE_NAME** | केवल निर्दिष्ट टेम्पलेट नाम के लिए जारी प्रमाणपत्र अनुरोध लौटाएं।                                |

<br/>

सभी जारी प्रमाणपत्र अनुरोधों को csv में निर्यात करने के लिए, `Get-CertRequest | Export-CSV -NoTypeInformation requests.csv` का उपयोग करें।

यहाँ एक उदाहरण परिणाम प्रविष्टि है जो एक ऐसी स्थिति दिखाती है जहाँ Certify के साथ एक Subject Alternative Name (SAN) निर्दिष्ट किया गया था:```
CA                       : dc.theshire.local\theshire-DC-CA
RequestID                : 4602
RequesterName            : THESHIRE\cody
RequesterMachineName     : dev.theshire.local
RequesterProcessName     : Certify.exe
SubjectAltNamesExtension :
SubjectAltNamesAttrib    : Administrator
SerialNumber             : 55000011faef0fab5ffd7f75b30000000011fa
CertificateTemplate      : ESC1 Template
                           (1.3.6.1.4.1.311.21.8.10395027.10224472.4213181.15714845.1171465.9.10657968.9897558)
RequestDate              : 6/3/2021 5:54:51 PM
StartDate                : 6/3/2021 5:44:51 PM
EndDate                  : 6/3/2022 5:44:51 PM

CA                       : dc.theshire.local\theshire-DC-CA
RequestID                : 4603
RequesterName            : THESHIRE\cody
RequesterMachineName     : dev.theshire.local
RequesterProcessName     : Certify.exe
SubjectAltNamesExtension : Administrator
SubjectAltNamesAttrib    :
SerialNumber             : 55000011fb021b79cf7276c2de0000000011fb
CertificateTemplate      : ESC1 Template
                           (1.3.6.1.4.1.311.21.8.10395027.10224472.4213181.15714845.1171465.9.10657968.9897558)
RequestDate              : 6/3/2021 5:55:10 PM
StartDate                : 6/3/2021 5:45:10 PM
EndDate                  : 6/3/2022 5:45:10 PM

SubjectAltNamesExtension गुण का अर्थ है कि x509 SubjectAlternativeNames एक्सटेंशन का उपयोग SAN निर्दिष्ट करने के लिए किया गया था, जो CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT ध्वज वाले टेम्पलेट्स के लिए होता है। SubjectAltNamesAttrib गुण का अर्थ है कि x509 नाम/मान जोड़े का उपयोग किया गया था, जो तब होता है जब EDITF_ATTRIBUTESUBJECTALTNAME2 CA ध्वज सेट होने पर SAN निर्दिष्ट किया जाता है।

मौजूदा जारी प्रमाणपत्रों को PSPKI के Revoke-Certificate फ़ंक्शन का उपयोग करके रद्द किया जा सकता है:

PS C:\> Get-CertificationAuthority <CAName> | Get-IssuedRequest -RequestID <X> | Revoke-Certificate -Reason "KeyCompromise"

-Reason के लिए लागू मान "KeyCompromise", "CACompromise" और "Unspecified" हैं।

टूल डाउनलोड करें