Valid Accounts: Domain Accounts T1078.002

Tactics: Stealth, Persistence, Privilege Escalation, Initial Access

Adversaries may obtain and abuse credentials of a domain account as a means of gaining Initial Access, Persistence, Privilege Escalation, or Defense Evasion. Domain accounts are those managed by Active Directory Domain Services where access and permissions are configured across systems and services that are part of that domain. Domain accounts can cover users, administrators, and services.

Events covered

11 catalog events are tagged with this technique by at least one rule.

Authoring guide

Patterns shared across the 28 rules above: which fields they filter on, what specific values they look for, and what they exclude. The catalog normalizes field names across vendors so Sigma's Image, Elastic's process.name, and Splunk's process_name collapse into one row. Each rule contributes at most once per row.

Fields filtered most (37 distinct)

The fields most rules look at when detecting this technique. The How column shows the operators authors use (eq, wildcard, regex_match, match) and how often each appears. Sample values are concrete examples to start from, not an exhaustive list.

FieldRulesHowSample values
EventID5eq 54781, 4104, 4768, 4769, 5136
Channel4eq 4, in 4
OldTargetUserName4ends_with 2, eq 2, starts_with 1*$, $, -adm, -admin, <customer pattern>
eventtype4eq 4
AttributeLDAPDisplayName3eq 3displayname, dsheuristics, gpcfilesyspath, msds-managedaccountprecededbylink
NewTargetUserName3ne 2, ends_with 1, starts_with 1*$, -adm, -admin, <customer pattern>
Properties3contains 31131f6aa-9c07-11d1-f79f-00c04fc2dcd2, 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2, 89e95b76-444d-4c62-991a-0facbeda640c, 612cb747-c0e8-4f92-9221-fdd5f15b550d, b3f93023-9239-4f7c-b99c-6745d87adbc2
ScriptBlockText3contains 3-createdelegatedserviceaccount, -path, .put("msds-managedaccountprecededbylink, cn=, get-domainobjectacl
AttributeValue2length_compare 1, match 1, ne 115, >, New Group Policy Object, [0-9]{15}([1-9a-f]).*
EventType2eq 2changed-computer-account, renamed-user-account
ObjectClass2eq 2groupPolicyContainer, msDS-DelegatedManagedServiceAccount
TargetUserName2ne 1, starts_with 1*$, Admin
aws::eventName2eq 1, in 1AddUserToGroup, ChangePassword, CreateAccessKey, RegisterManagedInstance
aws::eventSource2eq 1, in 1iam.amazonaws.com, identitystore.amazonaws.com, ssm.amazonaws.com, workdocs.amazonaws.com
AccessMask1eq 10x100

Top indicator values (116 distinct)

Specific (field, operator, value) combinations the rules check for, ranked by how many rules under this technique use each one. The Corpus reach column counts how many rules across the entire catalog (any technique) check the same combination. High numbers point to widely-used indicators that are likely noisy on their own; combine them with another condition for useful signal. Blank means the combination is specific to rules under this technique. Click a value to expand the rules under this technique that use it.

FieldKindValueRules (here)Corpus reach
EventIDeq
4781
22
EventIDeq
4104
1268
EventIDeq
4768
113
EventIDeq
4769
110
NewTargetUserNamene
*$
22
OldTargetUserNameeq
*$
22
Propertiescontains
1131f6aa-9c07-11d1-f79f-00c04fc2dcd2
26
Propertiescontains
1131f6ad-9c07-11d1-f79f-00c04fc2dcd2
26
Propertiescontains
89e95b76-444d-4c62-991a-0facbeda640c
26
Propertiescontains
ds-replication-get-changes
22
Propertiescontains
ds-replication-get-changes-all
22
Propertiescontains
ds-replication-get-changes-in-filtered-set
22
AccessMaskeq
0x100
15
All_Changes.resultcontains
lock
12
Applicationin
ADFS Trust
1
Applicationin
Azure Portal
1
Applicationin
Microsoft Azure PowerShell
1
AttributeLDAPDisplayNameeq
displayname
1
AttributeLDAPDisplayNameeq
dsheuristics
1
AttributeLDAPDisplayNameeq
gpcfilesyspath
1
AttributeLDAPDisplayNameeq
msds-managedaccountprecededbylink
1
AttributeValuelength_compare
15
1
AttributeValuelength_compare
>
1
AttributeValuematch
[0-9]{15}([1-9a-f]).*
1
AttributeValuene
New Group Policy Object
1
AuthenticationPackageNameeq
Negotiate
14
CommandLinecontains
-createdelegatedserviceaccount
1
CommandLinecontains
-path
12
CommandLinecontains
new-adserviceaccount
1
DnsHostNamestarts_with
??
1

Exclusions (17 distinct)

Field/operator/value combinations excluded by rules under this technique (top-level not() clauses), sorted by how many rules exclude each. These are the false-positive paths the community has learned to filter out. A new rule that ignores the high-count entries here will likely fire on the same noisy paths. Click a value to expand the rules under this technique that exclude it.

FieldKindValueRules excluding
SubjectUserNameends_with
$
2
SubjectUserNamestarts_with
MSOL_
2
AccessMaskin
0x0
1
AccessMaskin
0x100
1
DnsHostNamestarts_with
substring(winlog.event_data.TargetUserName, 0,...
1
NewTargetUserNameends_with
$
1
OldTargetUserNameends_with
-adm
1
OldTargetUserNameends_with
-admin
1
OldTargetUserNameends_with
<customer pattern>
1
OldTargetUserNamestarts_with
<customer pattern>
1
OldTargetUserNamestarts_with
adm-
1
OldTargetUserNamestarts_with
admin-
1
SubjectUserSideq
S-1-5-18
1
TargetSidends_with
-500
1
aws::eventNameeq
RegisterManagedInstance
1

Rules under this technique

Every rule in the catalog tagged with this technique, grouped by vendor. Click a rule title for its full predicates, exclusions, and indicators.

Platform (all)
Domain (all)

Sigma 6 rules

Elastic 15 rules

Splunk 6 rules

Kusto 1 rule