Skip to content

Commit 001fcb6

Browse files
committed
Parse and display the flags field
1 parent 157763b commit 001fcb6

File tree

2 files changed

+43
-3
lines changed

2 files changed

+43
-3
lines changed

lib/rex/proto/ms_crtd.rb

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,26 @@ module Rex::Proto
55
module MsCrtd
66
# see: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-crtd/4c6950e4-1dc2-4ae3-98c3-b8919bb73822
77

8+
# [2.4 flags Attribute](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-crtd/6cc7eb79-3e84-477a-b398-b0ff2b68a6c0)
9+
CT_FLAG_AUTO_ENROLLMENT = 0x00000020
10+
CT_FLAG_MACHINE_TYPE = 0x00000040
11+
CT_FLAG_IS_CA = 0x00000080
12+
CT_FLAG_ADD_TEMPLATE_NAME = 0x00000200
13+
CT_FLAG_IS_CROSS_CA = 0x00000800
14+
CT_FLAG_IS_DEFAULT = 0x00010000
15+
CT_FLAG_IS_MODIFIED = 0x00020000
16+
CT_FLAG_DONOTPERSISTINDB = 0x00001000
17+
CT_FLAG_ADD_EMAIL = 0x00000002
18+
CT_FLAG_PUBLISH_TO_DS = 0x00000008
19+
CT_FLAG_EXPORTABLE_KEY = 0x00000010
20+
821
# [2.26 msPKI-Enrollment-Flag Attribute](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-crtd/ec71fd43-61c2-407b-83c9-b52272dec8a1)
922
CT_FLAG_INCLUDE_SYMMETRIC_ALGORITHMS = 0x00000001
1023
CT_FLAG_PEND_ALL_REQUESTS = 0x00000002
1124
CT_FLAG_PUBLISH_TO_KRA_CONTAINER = 0x00000004
12-
CT_FLAG_PUBLISH_TO_DS = 0x00000008
25+
#CT_FLAG_PUBLISH_TO_DS = 0x00000008
1326
CT_FLAG_AUTO_ENROLLMENT_CHECK_USER_DS_CERTIFICATE = 0x00000010
14-
CT_FLAG_AUTO_ENROLLMENT = 0x00000020
27+
#CT_FLAG_AUTO_ENROLLMENT = 0x00000020
1528
CT_FLAG_PREVIOUS_APPROVAL_VALIDATE_REENROLLMENT = 0x00000040
1629
CT_FLAG_USER_INTERACTION_REQUIRED = 0x00000100
1730
CT_FLAG_REMOVE_INVALID_CERTIFICATE_FROM_PERSONAL_STORE = 0x00000400
@@ -26,7 +39,7 @@ module MsCrtd
2639

2740
# [2.27 msPKI-Private-Key-Flag Attribute](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-crtd/f6122d87-b999-4b92-bff8-f465e8949667)
2841
CT_FLAG_REQUIRE_PRIVATE_KEY_ARCHIVAL = 0x00000001
29-
CT_FLAG_EXPORTABLE_KEY = 0x00000010
42+
#CT_FLAG_EXPORTABLE_KEY = 0x00000010
3043
CT_FLAG_STRONG_KEY_PROTECTION_REQUIRED = 0x00000020
3144
CT_FLAG_REQUIRE_ALTERNATE_SIGNATURE_ALGORITHM = 0x00000040
3245
CT_FLAG_REQUIRE_SAME_KEY_RENEWAL = 0x00000080

modules/auxiliary/admin/ldap/ad_cs_cert_template.rb

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,29 @@ def action_read
343343
print_status(" objectGUID: #{object_guid}")
344344
end
345345

346+
pki_flag = obj['flags']&.first
347+
if pki_flag.present?
348+
pki_flag = [obj['flags'].first.to_i].pack('l').unpack1('L')
349+
print_status(" flags: 0x#{pki_flag.to_s(16).rjust(8, '0')}")
350+
%w[
351+
CT_FLAG_AUTO_ENROLLMENT
352+
CT_FLAG_MACHINE_TYPE
353+
CT_FLAG_IS_CA
354+
CT_FLAG_ADD_TEMPLATE_NAME
355+
CT_FLAG_IS_CROSS_CA
356+
CT_FLAG_IS_DEFAULT
357+
CT_FLAG_IS_MODIFIED
358+
CT_FLAG_DONOTPERSISTINDB
359+
CT_FLAG_ADD_EMAIL
360+
CT_FLAG_PUBLISH_TO_DS
361+
CT_FLAG_EXPORTABLE_KEY
362+
].each do |flag_name|
363+
if pki_flag & Rex::Proto::MsCrtd.const_get(flag_name) != 0
364+
print_status(" * #{flag_name}")
365+
end
366+
end
367+
end
368+
346369
pki_flag = obj['mspki-certificate-name-flag']&.first
347370
if pki_flag.present?
348371
pki_flag = [obj['mspki-certificate-name-flag'].first.to_i].pack('l').unpack1('L')
@@ -477,6 +500,10 @@ def action_read
477500
if obj['pkimaxissuingdepth'].present?
478501
print_status(" pKIMaxIssuingDepth: #{obj['pkimaxissuingdepth'].first.to_i}")
479502
end
503+
504+
if obj['showinadvancedviewonly'].present?
505+
print_status(" showInAdvancedViewOnly: #{obj['showinadvancedviewonly'].first}")
506+
end
480507
end
481508

482509
def action_update

0 commit comments

Comments
 (0)