pub enum ControlPrimitive {
Show 24 variants
Owns,
WriteDacl,
WriteOwner,
GenericAll,
GenericWrite,
AllExtendedRights,
ForceChangePassword,
AddMember,
AddSelfToGroup,
AddKeyCredential,
WriteRbcd,
WriteSpn,
WriteAltSecurityIdentities,
WriteAllowedToDelegateTo,
WriteGpLink,
ReadGmsaPassword,
ReadLapsPassword,
DcsyncGetChanges,
DcsyncGetChangesAll,
DcsyncGetChangesFiltered,
ReanimateTombstones,
Enroll,
CreateDmsa,
CreateChild(Option<Guid>),
}Expand description
A concrete thing a trustee can do to an object, derived from one ACE.
Variants§
Owns
Owner of the object — can rewrite its DACL at will.
WriteDacl
WRITE_DAC — can grant itself anything else.
WriteOwner
WRITE_OWNER — can take ownership, then rewrite the DACL.
GenericAll
GENERIC_ALL / full control.
GenericWrite
GENERIC_WRITE, or unscoped WRITE_PROP — can write every attribute.
AllExtendedRights
Unscoped CONTROL_ACCESS — holds every extended right, DCSync included.
ForceChangePassword
User-Force-Change-Password.
AddMember
Write member — add any principal to the group.
AddSelfToGroup
Validated write on member — add itself to the group.
AddKeyCredential
Write msDS-KeyCredentialLink — Shadow Credentials.
WriteRbcd
Write msDS-AllowedToActOnBehalfOfOtherIdentity — resource-based constrained delegation.
WriteSpn
Write servicePrincipalName — make the account Kerberoastable (targeted roasting).
WriteAltSecurityIdentities
Write altSecurityIdentities — bind an attacker certificate to the account.
WriteAllowedToDelegateTo
Write msDS-AllowedToDelegateTo — constrained delegation with protocol transition.
WriteGpLink
Write gPLink — attach a hostile GPO to the container.
ReadGmsaPassword
Read the gMSA managed-password blob — derive the account’s keys.
ReadLapsPassword
Read a LAPS password attribute — local administrator on that machine.
DcsyncGetChanges
DS-Replication-Get-Changes.
DcsyncGetChangesAll
DS-Replication-Get-Changes-All — the half that carries secrets.
DcsyncGetChangesFiltered
DS-Replication-Get-Changes-In-Filtered-Set.
ReanimateTombstones
Reanimate-Tombstones — resurrect deleted objects.
Enroll
Certificate-Enrollment / Certificate-AutoEnrollment on a template.
CreateDmsa
Create a delegated MSA under this container (BadSuccessor).
CreateChild(Option<Guid>)
CREATE_CHILD, optionally scoped to one object class GUID.
Implementations§
Source§impl ControlPrimitive
impl ControlPrimitive
Sourcepub fn cost(self) -> u32
pub fn cost(self) -> u32
Attacker cost of traversing this primitive. Lower = cheaper = more dangerous.
0 — already equivalent to control (no action needed).
1 — one write/read and the target is owned.
2 — needs a second step (a coerced auth, a TGT request, a roast).
3 — noisy or slow (offline cracking, waiting for a GPO refresh).
Sourcepub fn impact(self) -> &'static str
pub fn impact(self) -> &'static str
What the attacker gets out of it — the impact line of a report.
Sourcepub fn mitigation(self) -> &'static str
pub fn mitigation(self) -> &'static str
The defensive counterpart — the defence line of a report.
Trait Implementations§
Source§impl Clone for ControlPrimitive
impl Clone for ControlPrimitive
Source§fn clone(&self) -> ControlPrimitive
fn clone(&self) -> ControlPrimitive
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more