Skip to content

Commit ade0a71

Browse files
committed
add WriteAltSecurityIdentities and WritePublicInformation
1 parent 852fe9b commit ade0a71

File tree

4 files changed

+287
-56
lines changed

4 files changed

+287
-56
lines changed

src/CommonLib/Enums/EdgeNames.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ public static class EdgeNames
2222
public const string SQLAdmin = "SQLAdmin";
2323
public const string WriteAccountRestrictions = "WriteAccountRestrictions";
2424
public const string WriteGPLink = "WriteGPLink";
25+
public const string WriteAltSecurityIdentities = "WriteAltSecurityIdentities";
26+
public const string WritePublicInformation = "WritePublicInformation";
2527

2628
//CertAbuse edges
2729
public const string WritePKIEnrollmentFlag = "WritePKIEnrollmentFlag";

src/CommonLib/Processors/ACEGuids.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ public class ACEGuids
1414
public const string UserAccountRestrictions = "4c164200-20c0-11d0-a768-00aa006e0529";
1515
public const string WriteGPLink = "f30e3bbe-9ff0-11d1-b603-0000f80367c1";
1616
public const string WriteTitle = "bf967a55-0de6-11d0-a285-00aa003049e2"; // Not an edge, just used for testing
17-
17+
public const string WriteAltSecurityIdentities = "00fbf30c-91fe-11d1-aebc-0000f80367c1";
18+
public const string WritePublicInformation = "e48d0154-bcf8-11d1-8702-00c04fb96050";
1819

1920
//Cert abuse ACEs
2021
public const string PKINameFlag = "ea1dddc4-60ff-416e-8cc0-17cee534bce7";

src/CommonLib/Processors/ACLProcessor.cs

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -806,9 +806,32 @@ or Label.NTAuthStore
806806
IsPermissionForOwnerRightsSid = isPermissionForOwnerRightsSid,
807807
IsInheritedPermissionForOwnerRightsSid = isInheritedPermissionForOwnerRightsSid,
808808
};
809-
else if (objectType is Label.CertTemplate) {
810-
if (aceType == ACEGuids.PKIEnrollmentFlag)
809+
else if (objectType is Label.User or Label.Computer && aceType == ACEGuids.WriteAltSecurityIdentities)
811810
yield return new ACE {
811+
PrincipalType = resolvedPrincipal.ObjectType,
812+
PrincipalSID = resolvedPrincipal.ObjectIdentifier,
813+
IsInherited = inherited,
814+
RightName = EdgeNames.WriteAltSecurityIdentities,
815+
InheritanceHash = aceInheritanceHash,
816+
IsPermissionForOwnerRightsSid = isPermissionForOwnerRightsSid,
817+
IsInheritedPermissionForOwnerRightsSid = isInheritedPermissionForOwnerRightsSid,
818+
};
819+
else if (objectType is Label.User or Label.Computer && aceType == ACEGuids.WritePublicInformation)
820+
yield return new ACE
821+
{
822+
PrincipalType = resolvedPrincipal.ObjectType,
823+
PrincipalSID = resolvedPrincipal.ObjectIdentifier,
824+
IsInherited = inherited,
825+
RightName = EdgeNames.WritePublicInformation,
826+
InheritanceHash = aceInheritanceHash,
827+
IsPermissionForOwnerRightsSid = isPermissionForOwnerRightsSid,
828+
IsInheritedPermissionForOwnerRightsSid = isInheritedPermissionForOwnerRightsSid,
829+
};
830+
else if (objectType is Label.CertTemplate)
831+
{
832+
if (aceType == ACEGuids.PKIEnrollmentFlag)
833+
yield return new ACE
834+
{
812835
PrincipalType = resolvedPrincipal.ObjectType,
813836
PrincipalSID = resolvedPrincipal.ObjectIdentifier,
814837
IsInherited = inherited,
@@ -818,7 +841,8 @@ or Label.NTAuthStore
818841
IsInheritedPermissionForOwnerRightsSid = isInheritedPermissionForOwnerRightsSid,
819842
};
820843
else if (aceType == ACEGuids.PKINameFlag)
821-
yield return new ACE {
844+
yield return new ACE
845+
{
822846
PrincipalType = resolvedPrincipal.ObjectType,
823847
PrincipalSID = resolvedPrincipal.ObjectIdentifier,
824848
IsInherited = inherited,

0 commit comments

Comments
 (0)