Documentation
¶
Index ¶
- func EnumADCS(s *ldap.Session) ([]CAEntry, []TemplateEntry, error)
- type ASREPRoastEntry
- type AdminCountEntry
- type AdminEntry
- type CAEntry
- type ComputerEntry
- type ConstrainedDelegationEntry
- type DCEntry
- type DomainInfo
- type GPOEntry
- type GroupEntry
- type KerberoastableEntry
- type LAPSEntry
- type OUEntry
- type PasswordPolicy
- type PrivilegedGroupEntry
- type RBCDEntry
- type ShadowCredEntry
- type ShadowKey
- type TemplateEntry
- type TrustEntry
- type UnconstrainedDelegationEntry
- type UserEntry
- type WeakAccountEntry
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ASREPRoastEntry ¶
func EnumASREPRoastable ¶
func EnumASREPRoastable(s *ldap.Session) ([]ASREPRoastEntry, error)
type AdminCountEntry ¶
type AdminCountEntry struct {
SAMAccountName string
DN string
ObjectType string // "user", "group", or "computer"
}
func EnumAdminCount ¶
func EnumAdminCount(s *ldap.Session) ([]AdminCountEntry, error)
EnumAdminCount finds all objects with adminCount=1, indicating they are or were protected by AdminSDHolder. This includes users and groups that are (or were) members of privileged groups. Note: adminCount is not reset when an object is removed from a privileged group, so stale entries are common and noteworthy.
type AdminEntry ¶
func EnumAdmins ¶
func EnumAdmins(s *ldap.Session) ([]AdminEntry, error)
type ComputerEntry ¶
func EnumComputers ¶
func EnumComputers(s *ldap.Session) ([]ComputerEntry, error)
type ConstrainedDelegationEntry ¶
type ConstrainedDelegationEntry struct {
SAMAccountName string
DN string
AllowedServices []string
ProtocolTransition bool // TRUSTED_TO_AUTH_FOR_DELEGATION (0x1000000) — S4U2Self enabled
}
func EnumConstrainedDelegation ¶
func EnumConstrainedDelegation(s *ldap.Session) ([]ConstrainedDelegationEntry, error)
EnumConstrainedDelegation finds objects with msDS-AllowedToDelegateTo set. ProtocolTransition is true when userAccountControl has the TRUSTED_TO_AUTH_FOR_DELEGATION bit (0x1000000), meaning the account can impersonate any user via S4U2Self without requiring a service ticket.
type DomainInfo ¶
type DomainInfo struct {
DN string
DNSName string
NetBIOSName string
SID string
FunctionalLevel string
PDC string
DNSServers []string
NamingContexts []string
}
func GetDomainInfo ¶
func GetDomainInfo(s *ldap.Session, domain string) (*DomainInfo, error)
GetDomainInfo retrieves key domain information using Manticore's domain utilities: distinguished name, DNS name, NetBIOS name, SID, functional level, PDC, DNS servers, and naming contexts.
type GroupEntry ¶
func EnumGroups ¶
func EnumGroups(s *ldap.Session) ([]GroupEntry, error)
type KerberoastableEntry ¶
func EnumKerberoastable ¶
func EnumKerberoastable(s *ldap.Session) ([]KerberoastableEntry, error)
type LAPSEntry ¶
type PasswordPolicy ¶
type PasswordPolicy struct {
MinPwdLength string
MaxPwdAge string
MinPwdAge string
PwdHistoryLength string
LockoutThreshold string
LockoutDuration string
PwdProperties string
PwdComplexity bool
}
func GetPasswordPolicy ¶
func GetPasswordPolicy(s *ldap.Session) (*PasswordPolicy, error)
type PrivilegedGroupEntry ¶
func EnumPrivilegedGroups ¶
func EnumPrivilegedGroups(s *ldap.Session, domain string) ([]PrivilegedGroupEntry, error)
EnumPrivilegedGroups enumerates high-value AD groups using Manticore's RID constants to locate well-known domain groups, then resolves member SAMAccountNames.
type ShadowCredEntry ¶
type ShadowCredEntry struct {
SAMAccountName string
DN string
ObjectType string // "computer" or "user"
Keys []ShadowKey
}
func EnumShadowCreds ¶
func EnumShadowCreds(s *ldap.Session) ([]ShadowCredEntry, error)
EnumShadowCreds finds objects with msDS-KeyCredentialLink set and parses each key using Manticore's KeyCredentialLink parser.
type TemplateEntry ¶
type TrustEntry ¶
func EnumTrusts ¶
func EnumTrusts(s *ldap.Session) ([]TrustEntry, error)
type UnconstrainedDelegationEntry ¶
type UnconstrainedDelegationEntry struct {
SAMAccountName string
DN string
ObjectType string // "computer" or "user"
}
func EnumUnconstrainedDelegation ¶
func EnumUnconstrainedDelegation(s *ldap.Session) ([]UnconstrainedDelegationEntry, error)
EnumUnconstrainedDelegation finds computers and users with TRUSTED_FOR_DELEGATION (0x80000) set, excluding DCs which have SERVER_TRUST_ACCOUNT (0x2000) and are expected to have it.
type UserEntry ¶
type UserEntry struct {
SAMAccountName string
DN string
UAC ldap_attributes.UserAccountControl
}
type WeakAccountEntry ¶
func EnumWeakAccounts ¶
func EnumWeakAccounts(s *ldap.Session) ([]WeakAccountEntry, error)
EnumWeakAccounts finds user accounts with weak or dangerous UAC flags: - PASSWD_NOTREQD: account can have an empty password - ENCRYPTED_TEXT_PWD_ALLOWED: password stored with reversible encryption - USE_DES_KEY_ONLY: Kerberos only uses weak DES encryption - DONT_EXPIRE_PASSWORD: password never expires