pub enum EdgeKind {
MemberOf,
Acl(ControlPrimitive),
AllowedToDelegate,
UnconstrainedDelegation,
SidHistory,
HasSession,
Coercible,
AdminTo,
}Expand description
Edge label. ACL-derived edges are ad_acl::ControlPrimitives; the rest come from object
attributes rather than from a security descriptor.
Variants§
MemberOf
Group membership.
Acl(ControlPrimitive)
Derived from an ACE on the target’s security descriptor.
AllowedToDelegate
msDS-AllowedToDelegateTo names a service on the target — constrained delegation
with protocol transition impersonates any user to it.
UnconstrainedDelegation
The source runs with TRUSTED_FOR_DELEGATION: coerce the target to authenticate to
it and its TGT lands in the source’s cache.
SidHistory
The source carries the target’s SID in sIDHistory — it already is the target as
far as access checks are concerned.
HasSession
A privileged principal has a live logon session on the source host; controlling the host
yields that principal’s credentials/TGT. Populated by enum sessions (S2).
Coercible
The target can be coerced into authenticating to an attacker listener (MS-EFSR/RPRN/ DFSNM/FSRVP), feeding an NTLM relay. Populated by coercion posture (S2).
AdminTo
The source is a local administrator on the target host — full control and secret extraction. Populated by session/local-admin collection (S5).
Implementations§
Source§impl EdgeKind
impl EdgeKind
pub fn name(self) -> &'static str
Sourcepub fn mitigation(self) -> &'static str
pub fn mitigation(self) -> &'static str
How a defender removes this edge.
Trait Implementations§
impl Copy for EdgeKind
impl Eq for EdgeKind
Source§impl From<ControlPrimitive> for EdgeKind
impl From<ControlPrimitive> for EdgeKind
Source§fn from(p: ControlPrimitive) -> Self
fn from(p: ControlPrimitive) -> Self
impl StructuralPartialEq for EdgeKind
Auto Trait Implementations§
impl Freeze for EdgeKind
impl RefUnwindSafe for EdgeKind
impl Send for EdgeKind
impl Sync for EdgeKind
impl Unpin for EdgeKind
impl UnsafeUnpin for EdgeKind
impl UnwindSafe for EdgeKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.