utils

package
v1.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UAC_SCRIPT                         = 0x00000001
	UAC_ACCOUNTDISABLE                 = 0x00000002
	UAC_HOMEDIR_REQUIRED               = 0x00000008
	UAC_LOCKOUT                        = 0x00000010
	UAC_PASSWD_NOTREQD                 = 0x00000020
	UAC_PASSWD_CANT_CHANGE             = 0x00000040
	UAC_ENCRYPTED_TEXT_PWD_ALLOWED     = 0x00000080
	UAC_TEMP_DUPLICATE_ACCOUNT         = 0x00000100
	UAC_NORMAL_ACCOUNT                 = 0x00000200
	UAC_INTERDOMAIN_TRUST_ACCOUNT      = 0x00000800
	UAC_WORKSTATION_TRUST_ACCOUNT      = 0x00001000
	UAC_SERVER_TRUST_ACCOUNT           = 0x00002000
	UAC_DONT_EXPIRE_PASSWORD           = 0x00010000
	UAC_MNS_LOGON_ACCOUNT              = 0x00020000
	UAC_SMARTCARD_REQUIRED             = 0x00040000
	UAC_TRUSTED_FOR_DELEGATION         = 0x00080000
	UAC_NOT_DELEGATED                  = 0x00100000
	UAC_USE_DES_KEY_ONLY               = 0x00200000
	UAC_DONT_REQ_PREAUTH               = 0x00400000
	UAC_PASSWORD_EXPIRED               = 0x00800000
	UAC_TRUSTED_TO_AUTH_FOR_DELEGATION = 0x01000000
	UAC_PARTIAL_SECRETS_ACCOUNT        = 0x04000000
)

Constants for userAccountControl flags

Variables

View Source
var EmojiMap = map[string]string{
	"root":                     "🌳",
	"user":                     "👤",
	"computer":                 "💻",
	"group":                    "👥",
	"organizationalUnit":       "📂",
	"container":                "📁",
	"person":                   "👨",
	"organizationalPerson":     "👔",
	"groupOfNames":             "📇",
	"domain":                   "🌐",
	"domainDNS":                "🔗",
	"builtinDomain":            "🏠",
	"groupPolicyContainer":     "⚙️",
	"foreignSecurityPrincipal": "🌍",
	"contact":                  "📞",
	"printQueue":               "🖨️",
	"volume":                   "📦",
	"publicFolder":             "📬",
	"serviceConnectionPoint":   "🔌",
	"msExchExchangeServer":     "📧",
	"msExchStorageGroup":       "🗃️",
	"subnet":                   "🕸️",
	"site":                     "📍",
}
View Source
var GroupTypeMap = map[int]string{
	2:           "Global Distribution Group",
	4:           "Domain Local Distribution Group",
	8:           "Universal Distribution Group",
	-2147483646: "Global Security Group",
	-2147483644: "Domain Local Security Group",
	-2147483643: "Builtin Group",
	-2147483640: "Universal Security Group",
}

groupType descriptions

View Source
var InstanceTypeMap = map[int]string{
	1:  "NamingContextHead",
	2:  "NotInstantiatedReplica",
	4:  "WritableObject",
	8:  "ParentNamingContextHeld",
	16: "FirstNamingContextConstruction",
	32: "NamingContextRemovalFromDSA",
}

instanceType descriptions

View Source
var PredefinedLdapQueries = map[string]string{
	"DomainControllers":              "(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=8192))",
	"NonDCServers":                   "(&(objectCategory=computer)(operatingSystem=*server*)(!(userAccountControl:1.2.840.113556.1.4.803:=8192)))",
	"NonServerComputers":             "(&(objectCategory=computer)(!(operatingSystem=*server*))(!(userAccountControl:1.2.840.113556.1.4.803:=8192)))",
	"AllOrganizationalUnits":         "(objectCategory=organizationalUnit)",
	"AllContainers":                  "(objectCategory=container)",
	"AllGroups":                      "(objectCategory=group)",
	"AllComputers":                   "(objectClass=computer)",
	"AllUsers":                       "(&(objectCategory=person)(objectClass=user))",
	"UsersWithSPN":                   "(&(objectCategory=user)(servicePrincipalName=*))",
	"UsersWithSIDHistory":            "(&(objectCategory=person)(objectClass=user)(sidHistory=*))",
	"KrbPreauthDisabledUsers":        "(&(objectCategory=person)(userAccountControl:1.2.840.113556.1.4.803:=4194304))",
	"KrbPreauthDisabledComputers":    "(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=4194304))",
	"CertificatePublishers":          "(CN=Cert Publishers*)",
	"ConstrainedDelegationObjects":   "(msDS-AllowedToDelegateTo=*)",
	"UnconstrainedDelegationObjects": "(userAccountControl:1.2.840.113556.1.4.803:=524288)",
	"RBCDObjects":                    "(msDS-AllowedToActOnBehalfOfOtherIdentity=*)",
	"NotTrustedForDelegation":        "(&(samaccountname=*)(userAccountControl:1.2.840.113556.1.4.803:=1048576))",
	"ShadowCredentialsTargets":       "(msDS-KeyCredentialLink=*)",
	"UsersMustChangePassword":        "(&(objectCategory=person)(objectClass=user)(pwdLastSet=0)(!(useraccountcontrol:1.2.840.113556.1.4.803:=2)))",
	"UsersWithNeverExpirePasswords":  "(&(objectCategory=user)(userAccountControl:1.2.840.113556.1.4.803:=65536))",
	"UsersWithEmptyPasswords":        "(&(objectCategory=user)(userAccountControl:1.2.840.113556.1.4.803:=32))",
	"AdminAccounts":                  "(&(objectCategory=user)(memberOf=CN=Administrators,CN=Builtin,DC=domain,DC=com))",
	"LockedOutUserAccounts":          "(&(objectCategory=user)(lockoutTime>=1))",
	"HighPrivilegeUsers":             "(&(objectCategory=user)(adminCount=1))",
	"MembersOfDomainAdminsGroup":     "(&(objectCategory=user)(memberOf=CN=Domain Admins,CN=Users,DC=domain,DC=com))",
	"UsersWithPasswordNeverChanged":  "(&(objectCategory=user)(pwdLastSet=0))",
	"UsersWithEmptyDescription":      "(&(objectCategory=user)(description=*))",
	"UsersWithNoEmailAddress":        "(&(objectCategory=user)(!(mail=*)))",
	"UnusualAccountNames":            "(&(objectCategory=user)(sAMAccountName=*$*))",
	"ServiceAccountNames":            "(&(objectCategory=user)(sAMAccountName=*svc*))",
	"DisabledUserAccounts":           "(&(objectCategory=user)(userAccountControl:1.2.840.113556.1.4.803:=2))",
	"StaleComputerAccounts":          "(&(objectCategory=computer)(!lastLogonTimestamp=*))",
	"UsersWithNonExpiringPasswords":  "(&(objectCategory=user)(userAccountControl:1.2.840.113556.1.4.803:=66048))",
	"EnabledUsersNotInGroup":         "(&(objectCategory=user)(userAccountControl:1.2.840.113556.1.4.803:=512)(!(memberOf=*)))",
	"ComputersWithOutdatedOS":        "(&(objectCategory=computer)(operatingSystem=*Server 2008*))",
	"UsersWithSensitiveInformation":  "(&(objectCategory=user)(|(telephoneNumber=*)(pager=*)(homePhone=*)(mobile=*)(info=*)))",
	"RecentlyCreatedUsers":           "(&(objectCategory=user)(whenCreated>=<timestamp>))",
	"InactiveUsersLastLogonTime":     "(&(objectCategory=user)(lastLogonTimestamp<=<timestamp>))",
	"ExpiredUserAccounts":            "(&(objectCategory=user)(accountExpires<=<timestamp>))",
}
View Source
var RidMap = map[int]string{
	500: "Administrator",
	501: "Guest",
	502: "KRBTGT (Key Distribution Center Service Account)",
	512: "Domain Admins",
	513: "Domain Users",
	514: "Domain Guests",
	515: "Domain Computers",
	516: "Domain Controllers",
	517: "Cert Publishers",
	518: "Schema Admins",
	519: "Enterprise Admins",
	520: "Group Policy Creator Owners",
	526: "Key Admins",
	527: "Enterprise Key Admins",
	553: "RAS and IAS Servers",
	554: "Trusted for Delegation Computers",
	555: "Protected Users",
	572: "Cloneable Domain Controllers",
	573: "Read-only Domain Controllers",
	590: "Backup Operators",
	591: "Print Operators",
	592: "Server Operators",
	593: "Account Operators",
	594: "Replicator",
	596: "Incoming Forest Trust Builders",
	597: "Performance Monitor Users",
	598: "Performance Log Users",
	599: "Windows Authorization Access Group",
	600: "Network Configuration Operators",
	601: "Incoming Forest Trust Builders",
	606: "Cryptographic Operators",
	607: "Event Log Readers",
}

Relative ID (RID) descriptions

View Source
var SAMAccountTypeMap = map[int]string{
	0x00000000: "Domain Object",
	0x10000000: "Group Object",
	0x10000001: "Non-Security Group Object",
	0x30000000: "User Object",
	0x30000001: "Machine Account",
	0x20000000: "Alias Object",
	0x20000001: "Non-Security Alias Object",
	0x30000002: "Trust Account",
	0x40000000: "App Basic Group",
	0x40000001: "App Query Group",
}

sAMAccountType descriptions

View Source
var UacFlags = map[int]flagDesc{
	UAC_SCRIPT:                         flagDesc{"Script", ""},
	UAC_ACCOUNTDISABLE:                 flagDesc{"Disabled", "Enabled"},
	UAC_HOMEDIR_REQUIRED:               flagDesc{"HomeDirRequired", ""},
	UAC_LOCKOUT:                        flagDesc{"LockedOut", ""},
	UAC_PASSWD_NOTREQD:                 flagDesc{"PwdNotRequired", ""},
	UAC_PASSWD_CANT_CHANGE:             flagDesc{"CannotChangePwd", ""},
	UAC_ENCRYPTED_TEXT_PWD_ALLOWED:     flagDesc{"EncryptedTextPwdAllowed", ""},
	UAC_TEMP_DUPLICATE_ACCOUNT:         flagDesc{"TmpDuplicateAccount", ""},
	UAC_NORMAL_ACCOUNT:                 flagDesc{"NormalAccount", ""},
	UAC_INTERDOMAIN_TRUST_ACCOUNT:      flagDesc{"InterdomainTrustAccount", ""},
	UAC_WORKSTATION_TRUST_ACCOUNT:      flagDesc{"WorkstationTrustAccount", ""},
	UAC_SERVER_TRUST_ACCOUNT:           flagDesc{"ServerTrustAccount", ""},
	UAC_DONT_EXPIRE_PASSWORD:           flagDesc{"DoNotExpirePwd", ""},
	UAC_MNS_LOGON_ACCOUNT:              flagDesc{"MNSLogonAccount", ""},
	UAC_SMARTCARD_REQUIRED:             flagDesc{"SmartcardRequired", ""},
	UAC_TRUSTED_FOR_DELEGATION:         flagDesc{"TrustedForDelegation", ""},
	UAC_NOT_DELEGATED:                  flagDesc{"NotDelegated", ""},
	UAC_USE_DES_KEY_ONLY:               flagDesc{"UseDESKeyOnly", ""},
	UAC_DONT_REQ_PREAUTH:               flagDesc{"DoNotRequirePreauth", ""},
	UAC_PASSWORD_EXPIRED:               flagDesc{"PwdExpired", "PwdNotExpired"},
	UAC_TRUSTED_TO_AUTH_FOR_DELEGATION: flagDesc{"TrustedToAuthForDelegation", ""},
	UAC_PARTIAL_SECRETS_ACCOUNT:        flagDesc{"PartialSecretsAccount", ""},
}

Functions

func FormatLDAPAttribute

func FormatLDAPAttribute(attr *ldap.EntryAttribute) []string

func GetAttrCellColor

func GetAttrCellColor(cellName string, cellValue string) (string, bool)

func GetTimeDistString

func GetTimeDistString(diff time.Duration) string

Types

type LDAPConn added in v1.2.0

type LDAPConn struct {
	Conn       *ldap.Conn
	PagingSize uint32
}

Basic LDAP connection type

func NewLDAPConn added in v1.2.0

func NewLDAPConn(ldapServer string, ldapPort int, ldaps bool, tlsConfig *tls.Config, pagingSize uint32, proxyConn net.Conn) (*LDAPConn, error)

func (LDAPConn) AddAttribute added in v1.2.0

func (lc LDAPConn) AddAttribute(targetDN string, attributeToAdd string, attributeValues []string) error

Attributes

func (LDAPConn) AddComputer added in v1.2.0

func (lc LDAPConn) AddComputer(objectName string, parentDN string) error

func (LDAPConn) AddContainer added in v1.2.0

func (lc LDAPConn) AddContainer(objectName string, parentDN string) error

func (LDAPConn) AddGroup added in v1.2.0

func (lc LDAPConn) AddGroup(objectName string, parentDN string) error

func (LDAPConn) AddOrganizationalUnit added in v1.2.0

func (lc LDAPConn) AddOrganizationalUnit(objectName string, parentDN string) error

func (LDAPConn) AddUser added in v1.2.0

func (lc LDAPConn) AddUser(objectName string, parentDN string) error

func (LDAPConn) DeleteAttribute added in v1.2.0

func (lc LDAPConn) DeleteAttribute(targetDN string, attributeToDelete string) error

func (LDAPConn) DeleteObject added in v1.2.0

func (lc LDAPConn) DeleteObject(targetDN string) error

Objects

func (LDAPConn) FindRootDN added in v1.2.0

func (lc LDAPConn) FindRootDN() (string, error)

func (LDAPConn) FindRootFQDN added in v1.2.0

func (lc LDAPConn) FindRootFQDN() (string, error)

func (LDAPConn) LDAPBind added in v1.2.0

func (lc LDAPConn) LDAPBind(ldapUsername string, ldapPassword string) error

func (LDAPConn) ModifyAttribute added in v1.2.0

func (lc LDAPConn) ModifyAttribute(targetDN string, attributeToModify string, attributeValues []string) error

func (LDAPConn) MoveObject added in v1.7.0

func (lc LDAPConn) MoveObject(sourceDN string, targetDN string) error

func (LDAPConn) NTLMBindWithHash added in v1.2.0

func (lc LDAPConn) NTLMBindWithHash(ntlmDomain string, ntlmUsername string, ntlmHash string) error

func (LDAPConn) Query added in v1.2.0

func (lc LDAPConn) Query(baseDN string, searchFilter string, scope int) ([]*ldap.Entry, error)

Search

func (LDAPConn) QueryGroupMembers added in v1.2.0

func (lc LDAPConn) QueryGroupMembers(groupName string, rootDN string) (group []*ldap.Entry, err error)

func (LDAPConn) QueryUserGroups added in v1.2.0

func (lc LDAPConn) QueryUserGroups(userName string, rootDN string) ([]*ldap.Entry, error)

func (LDAPConn) ResetPassword added in v1.2.0

func (lc LDAPConn) ResetPassword(objectDN string, newPassword string) error

func (LDAPConn) UpgradeToTLS added in v1.2.0

func (lc LDAPConn) UpgradeToTLS(tlsConfig *tls.Config) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL