ATT&CK coverage › Technique

Account Discovery T1087

Adversaries may attempt to get a listing of valid accounts, usernames, or email addresses on a system or within a compromised environment. This information can help adversaries determine which accounts exist, which can aid in follow-on behavior such as brute-forcing, spear-phishing attacks, or account takeovers (e.g., Valid Accounts).

Events covered

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

ProviderEvent IDTitle
Sysmon1Process creation
Sysmon3Network connection
Security-Auditing4624An account was successfully logged on.
Security-Auditing4625An account failed to log on.
Security-Auditing4662An operation was performed on an object.
Security-Auditing4672Special privileges assigned to new logon.
Security-Auditing4688A new process has been created.
Security-Auditing4776The domain controller attempted to validate the credentials for an account.
Security-Auditing4798A user's local group membership was enumerated.
Defender-DeviceProcessEvents9001000Process activity (any)
PowerShell4103Payload Context: ContextInfo User Data: UserData.
PowerShell4104Creating Scriptblock text (MessageNumber of MessageTotal).

Authoring guide

Patterns shared across the 20 rules above: which fields they filter on, what specific values they look for, and what they exclude. Field names are normalized 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 (18 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
CommandLine11match 11, contains 1, ends_with 1&cd&echo, ipconfig, wget, timeout, &c:&echo
Image8ends_with 7, eq 1, starts_with 1\w3wp.exe, \winPEASx86_ofs.exe, \winPEASany_ofs.exe, \winPEASx86.exe, \wmic.exe
OriginalFileName5eq 5wmic.exe, winPEAS.exe, wevtutil.exe, Seatbelt.exe, psloglist.exe
ParentImage4ends_with 3, match 2, starts_with 1, in 1\httpd.exe, \tomcat, \nginx.exe, httpd.exe, beasvc.exe
EventID4eq 44104, 4798, 4672
ScriptBlockText3eq 2, match 1, in 1"*Get-NetUser*", Invoke-SauronEye, Get-FoxDump, Invoke-KrbRelay, "*pwdlastset*"
AccessMaskDescription1eq 1Read Property
FileName1in 1cmd.exe, powershell.exe
InitiatingProcessFileName1in 1, starts_with 1httpd.exe, beasvc.exe, w3wp.exe
ParentCommandLine1ends_with 1 -linpeas
Workstation1eq 1RULER
WorkstationName1eq 1RULER
Payload1match 1Get-MachineAccountCreator, Invoke-SauronEye, Get-FoxDump
Description1eq 1Seatbelt
Initiated1eq 1true

Top indicator values (824 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.

FieldKindValueRules (here)Corpus reach
ParentImageends_with\w3wp.exe38
CommandLinematch&cd&echo22
OriginalFileNameeqwevtutil.exe24
Imageends_with\wevtutil.exe26
OriginalFileNameeqwmic.exe233
ParentImagematch-tomcat-24
ParentImageends_with\ws_tomcatservice.exe23
ParentImageends_with\caddy.exe24
CommandLinematch user 23
ParentImageends_with\java.exe27
ParentImageends_with\httpd.exe26
ParentImagematch\tomcat26
ParentImageends_with\php-cgi.exe26
ParentImageends_with\javaw.exe25
ParentImageends_with\nginx.exe26
CommandLinematchCATALINA_HOME23
CommandLinematchcatalina.jar23
ScriptBlockTexteq"*Get-NetUser*"23
EventIDeq41042108
AccessMaskDescriptioneqRead Property1

Common exclusions (8 distinct)

Field/operator/value combinations that rules under this technique routinely exclude (top-level not() clauses). 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.

FieldKindValueRules excluding
SubjectUserSideqS-1-5-181
userin"LOCAL SERVICE"1
userin"DWM-3"1
userin"SYSTEM"1
userin"*$"1
userin"DWM-1"1
userin"NETWORK SERVICE"1
userin"DWM-2"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.

Sigma 14 rules

Elastic 1 rule

Splunk 4 rules

Kusto Query Language 1 rule