This article outlines the CertTemplate node in BloodHound, it describes what the node represents, the node’s properties, and possible incoming/outgoing edges.

Representation

The CertTemplate node represents the Active Directory LDAP objects of the pKICertificateTemplate class located in the Certificate Templates container in the Configuration Naming Context.

Node properties

The node supports the properties of the table. Three types of property names will be used, depending on where the property is found:

  • Entity Panel: Name shown in the BloodHound UI.
  • Database: Name stored in the BloodHound database and returned by the BloodHound API. This is to be used when running Cypher queries.
  • Directory: Name collected from the directory the node is stored in, for example, the LDAP name for an Active Directory property.
Entity PanelDatabaseDirectoryDescription
Display NamedisplaynamedisplayNameThe display name of the object.
Object IDobjectidobjectGUIDThe object’s unique identifier in the directory.
ACL Inheritance DeniedisaclprotectednTSecurityDescriptorWhether inherited permissions (ACEs) from containers are blocked on this object.
Application Policies RequiredapplicationpoliciesmsPKI-RA-Application-PoliciesThe required RA application policy EKU in the counter signatures of certificate requests.
Application Policy ExtensionscertificateapplicationpolicymsPKI-Certificate-Application-PolicyList of EKUs that might go into issued certificates (see Effective EKUs).
Authentication Enabledauthenticationenabled-Whether the certificate can be used for authentication. See this blog post for more details on how it is calculated: https://posts.specterops.io/adcs-attack-paths-in-bloodhound-part-1-799f3d3b03cf
Authorized Signatures RequiredauthorizedsignaturesmsPKI-RA-SignatureSpecifies the number of enrollment registration authority signatures that are required in an enrollment request.
Certificate Name FlagscertificatenameflagmsPKI-Certificate-Name-FlagContains the flags related to constructing the Subject and Subject Alternative Name in an issued certificate.
CreatedwhencreatedwhenCreatedWhen the object was created in the directory.
Distinguished NamedistinguishednamedistinguishedNameThe name of the object and its location in AD.
Domain FQDNdomain-The fully qualified domain name (FQDN) of the domain the object belongs to.
Domain SIDdomainsid-The SID of the domain the object belongs to.
Effective EKUseffectiveekus-The list EKUs that will be in the Enhanced Key Usage (2.5.29.37) property of issued certificates. 

It will contain the EKUs of msPKI-Certificate-Application-Policy by default. It will contain the EKUs of pKIExtendedKeyUsage instead if the schema version is 1 and pKIExtendedKeyUsage is not empty.
Enhanced Key UsageekuspKIExtendedKeyUsageList of EKUs that might go into issued certificates (see Effective EKUs).
Enrollee Supplies SubjectenrolleesuppliessubjectmsPKI-Certificate-Name-Flag (CT_FLAG_ENROLLEE_SUPPLIES
_SUBJECT)
Whether the certificate template requires the enrollee to supply the Subject Alternative Name data.
Enrollment FlagsenrollmentflagmsPKI-Enrollment-FlagContains enrollment-related flags.
Issuance Policies RequiredissuancepoliciesmsPKI-RA-PoliciesContains the list of required policy OIDs from those who sign enrollment requests.
Issuance Policy ExtensionscertificatepolicymsPKI-Certificate-PolicyList of issuance polices that are included in issued certificates.
Last Collected by BloodHoundlastseen-When the object was last collected and ingested in BloodHound.
No Security ExtensionnosecurityextensionmsPKI-Certificate-Name-Flag (CT_FLAG_NO_SECURITY_
EXTENSION)
Whether issued certificates will include a certificate extension (SID of the enrollee), which may be required for authentication.
OIDoidmsPKI-Cert-Template-OIDSpecifies the object identifier of the certificate template.
Renewal PeriodrenewalperiodpKIOverlapPeriodThe period by which issued certificates should be renewed before they expire.
Requires Manager ApprovalrequiresmanagerapprovalmsPKI-Enrollment-Flag (CT_FLAG_PEND_ALL_REQUESTS)Whether certificate requests will require manager approval.
Schema Versionschemaversionms-PKI-Template-Schema-VersionThe schema version of the certificate template.
Subject Alternative Name Require DNSsubjectaltrequirednsmsPKI-Certificate-Name-Flag (CT_FLAG_SUBJECT_ALT_
REQUIRE_DNS)
Whether the certificate template requires the DNS name of the subject for the Subject Alternative Name.
Subject Alternative Name Require Domain DNSsubjectaltrequiredomaindnsmsPKI-Certificate-Name-Flag (CT_FLAG_SUBJECT_ALT_
REQUIRE_DOMAIN_DNS)
Whether the certificate template requires the domain DNS name of the subject for the Subject Alternative Name.
Subject Alternative Name Require EmailsubjectaltrequireemailmsPKI-Certificate-Name-Flag (CT_FLAG_SUBJECT_ALT_
REQUIRE_EMAIL)
Whether the certificate template requires the email of the subject for the Subject Alternative Name.
Subject Alternative Name Require SPNsubjectaltrequirespnmsPKI-Certificate-Name-Flag (CT_FLAG_SUBJECT_ALT_
REQUIRE_SPN)
Whether the certificate template requires the UPN (yes, not the SPN) of the subject for the Subject Alternative Name.
Subject Alternative Name Require UPNsubjectaltrequireupnmsPKI-Certificate-Name-Flag (CT_FLAG_SUBJECT_ALT_
REQUIRE_UPN)
Whether the certificate template requires the UPN of the subject for the Subject Alternative Name.
Subject Require EmailsubjectrequireemailmsPKI-Certificate-Name-Flag (CT_FLAG_SUBJECT_
REQUIRE_EMAIL)
Whether the certificate template requires the email of the subject.
Validity PeriodvalidityperiodpKIExpirationPeriodThe validity period for issued certificates.
-namename + domain nameName of the object + @ + the name of the domain.

Edges

The following edge types may be linked to/from this node. See the edges documentation for more information on the edge types.

Incoming edges

Edge typeEntity panel category
AllExtendedRightsInbound Object Control
DelegatedEnrollmentAgent-
EnrollInbound Object Control
EnrollOnBehalfOf-
GenericAllInbound Object Control
GenericWriteInbound Object Control
OwnsInbound Object Control
WriteDaclInbound Object Control
WriteOwnerInbound Object Control
WritePKIEnrollmentFlagInbound Object Control
WritePKINameFlagInbound Object Control

Outgoing edges

Edge typeEntity panel category
EnrollOnBehalfOf-
ExtendedByPolicy-
PublishedTo-

References