Permission Groups Discovery: Domain Groups T1069.002

Tactic: Discovery

Adversaries may attempt to find domain-level groups and permission settings. The knowledge of domain-level permission groups can help adversaries determine which groups exist and which users belong to a particular group. Adversaries may use this information to determine which users have elevated permissions, such as domain administrators.

Events covered

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

Authoring guide

Patterns shared across the 74 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 (52 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
CommandLine30contains 18, regex_match 8, in 4, match 1(?i)\s+(localgroup|group(s?)\s+.*doma)|Get-AD(PrincipalGr..., group, oudmp , (?i)(objectcategory|trustdmp|member\s(.*)?-list), -sc u:
process_name24eq 17, match 3, ends_with 2, in 2, wildcard 2(?i)ipconfig.exe, (?i)net1?.exe, (?i)nltest.exe, dscl, dsquery.exe
EventID16eq 164104, 4103, 4688, 1, 4799
OriginalFileName16eq 16net1.exe, net.exe, adexp, adfind.exe, wmic.exe
Image10ends_with 8, contains 1, eq 1\adexp.exe, \adexplorer.exe, \adexplorer64.exe, \net.exe, \net1.exe
ScriptBlockText10contains 8, in 3, eq 2(objectcategory=group), *[adsisearcher]*, *account operators*, *dns admins*, *domain admins*
event.type7eq 6, in 1start, process_started
process.args7eq 4, contains 3, wildcard 3, in 2, starts_with 2-list, %appdata%, %homepath%, %localappdata%, (objectcategory=attributeschema)
Type6eq 6
ObjectType4eq 3, contains 1SAM_GROUP, SAM_USER, {bf967a9c-0de6-11d0-a285-00aa003049e2}
event_count4gt 40
Description3eq 2, contains 1Active Directory Editor, sharphound
EventType3eq 1, in 1, ne 1exec, ListeningConnectionCreated, ProcessRollup2, exec_event
ObjectName3ends_with 3, starts_with 3-500, -512, -513, S-1-5-21-
ObjectServer3eq 3Security Account Manager, DS

Top indicator values (1187 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
4104
9268
EventIDeq
4103
4105
EventIDeq
4688
4313
OriginalFileNameeq
net1.exe
644
OriginalFileNameeq
net.exe
428
OriginalFileNameeq
adexp
33
event.typeeq
start
6606
process_nameeq
net1.exe
535
process_nameeq
dscl
35
process_nameeq
dsquery.exe
312
process_nameeq
net.exe
322
process_nameeq
powershell.exe
3104
process_nameeq
wmic.exe
347
CommandLinecontains
group
47
event_countgt
0
44
CommandLineregex_match
(?i)\s+(localgroup|group(s?)\s+.*doma)|Get-AD(PrincipalGroupMembership|Group)...
33
Imageends_with
\adexp.exe
33
Imageends_with
\adexplorer.exe
34
Imageends_with
\adexplorer64.exe
34
Imageends_with
\adexplorer64a.exe
34
ObjectNameends_with
-500
33
ObjectNameends_with
-512
33
ObjectNamestarts_with
S-1-5-21-
35
ObjectTypeeq
SAM_GROUP
34
ObjectTypeeq
SAM_USER
35
SubjectUserNameends_with
$
33
event.categoryeq
process
3128
process.argseq
group
33
process_namematch
(?i)ipconfig.exe
33
process_namematch
(?i)net1?.exe
33

Exclusions (69 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
$
3
user.ideq
S-1-5-18
2
user.idin
S-1-5-18
2
user.idin
S-1-5-19
2
user.idin
S-1-5-20
2
CommandLinecontains
add
1
CommandLineends_with
/add
1
CommandLineends_with
/delete
1
CurrentDirectoryeq
/Applications/NinjaRMMAgent/programfiles/ninjarmm-macagent
1
CurrentDirectoryeq
/opt/Tanium/TaniumClient
1
CurrentDirectoryeq
/var/lib/nanitor/agent
1
CurrentDirectoryeq
/var/ossec
1
CurrentDirectorystarts_with
/opt/rapid7/
1
CurrentDirectorystarts_with
/var/snap/
1
Imageends_with
\adfind.exe
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 21 rules

Elastic 12 rules

Splunk 37 rules

Kusto 3 rules

YARA-L 1 rule