Brute Force: Password Spraying T1110.003

Tactic: Credential Access

Adversaries may use a single or small list of commonly used passwords against many different accounts to attempt to acquire valid account credentials. Password spraying uses one password (e.g. 'Password01'), or a small list of commonly used passwords, that may match the complexity policy of the domain. Logins are attempted with that password against many different accounts on a network to avoid account lockouts that would normally occur when brute forcing a single account with many passwords.

Events covered

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

Authoring guide

Patterns shared across the 81 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 (119 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
EventID24eq 23, in 14625, 8004, 4768, 4776, 4648
Channel21eq 21, in 16
sourcetype19eq 19azure:monitor:aad, XmlWinEventLog:Microsoft-Windows-NTLM/Operational, aws:cloudtrail, gws:reports:login, o365:management:activity
EventType17eq 9, in 8, starts_with 4ssh_login, user.authentication., user.session.start, user_login, logon-failed
eventtype16eq 16
data_stream.dataset15eq 14, in 1okta.system, azure.signinlogs, o365.audit, azure.identity_protection
isOutlier14eq 141
unique_accounts12gt 1230, 10, 20, 9
Status10eq 100x12, 0x18, 0x6, 0xC000006A, 0xc0000064
TargetUserName10ne 10*$
LogonType9eq 8, ne 1Network, Interactive, Unlock
event.category9eq 9authentication
src_ip8is_not_null 5, ne 4, cidr_match 1-, 0.0.0.0, 10.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8
event.outcome7eq 7failure, success
category6eq 5, ends_with 1SignInLogs, UserRiskEvents, signinlogs

Top indicator values (238 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
isOutliereq
1
1428
TargetUserNamene
*$
1014
event.categoryeq
authentication
931
unique_accountsgt
30
99
event.outcomeeq
failure
716
LogonTypeeq
Network
640
data_stream.dataseteq
okta.system
648
data_stream.dataseteq
azure.signinlogs
430
sourcetypeeq
azure:monitor:aad
647
sourcetypeeq
XmlWinEventLog:Microsoft-Windows-NTLM/Operational
55
EventIDeq
4625
515
EventIDeq
4768
413
EventIDeq
4776
45
EventIDeq
8004
44
EventTypeeq
user.session.start
48
EventTypeeq
logon-failed
33
EventTypein
ssh_login
45
EventTypein
user_login
45
EventTypestarts_with
user.authentication.
48
SChannelNameeq
*
44
WorkstationNameeq
*
44
categoryeq
SignInLogs
412
properties.authenticationDetails{}.succeededeq
false
45
properties.status.errorCodeeq
50126
45
Codenameeq
Password Spraying
33
MessageTypeeq
2
321
actioneq
failure
34
aws::eventNameeq
ConsoleLogin
327
azure_ad::signin_categoryin
NonInteractiveUserSignInLogs
33
azure_ad::signin_categoryin
SignInLogs
33

Exclusions (75 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
Statusin
0xc000005e
2
Statusin
0xc00000dc
2
Statusin
0xc0000133
2
Statusin
0xc000015b
2
Statusin
0xc0000192
2
TO_IP(source.ip)cidr_match
127.0.0.0/8
2
TO_IP(source.ip)cidr_match
::1
2
azure.identityprotection.properties.risk_statein
confirmedSafe
2
azure.identityprotection.properties.risk_statein
dismissed
2
azure.identityprotection.properties.risk_statein
remediated
2
srcin
-
2
srcin
unknown
2
Esql.o365_audit_LogonErrorin
CmsiInterrupt
1
Esql.o365_audit_LogonErrorin
EntitlementGrantsNotFound
1
Esql.o365_audit_LogonErrorin
InvalidReplyTo
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 1 rule

Elastic 26 rules

Splunk 42 rules

Kusto 7 rules

YARA-L 2 rules

Panther 3 rules