T1069.002 CrowdStrike LogScale · LogScale

Detect Domain Groups in CrowdStrike LogScale

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. Commands such as net group /domain, dscacheutil -q group on macOS, and ldapsearch on Linux can list domain-level groups. Tools such as BloodHound, AdFind, and AD Explorer are also commonly used for this purpose by threat actors including OilRig, FIN7, Volt Typhoon, LAPSUS$, and ToddyCat.

MITRE ATT&CK

Tactic
Discovery
Technique
T1069 Permission Groups Discovery
Sub-technique
T1069.002 Domain Groups
Canonical reference
https://attack.mitre.org/techniques/T1069/002/

LogScale Detection Query

CrowdStrike LogScale (LogScale)
cql
#event_simpleName = "ProcessRollup2"
| ImageFileName = /(?i)(\\net\.exe|\\net1\.exe|\\powershell\.exe|\\pwsh\.exe|adfind\.exe|sharphound\.exe|bloodhound\.exe|adexplorer\.exe|adexplorer64\.exe|\\dsquery\.exe|\\dsget\.exe)$/
| eval ImageLower = lowercase(ImageFileName)
| eval CmdLower = lowercase(CommandLine)
| eval IsNetGroup = if(
    ImageLower = /(\\net\.exe|\\net1\.exe)$/ AND
    CmdLower = /\bgroup\b/ AND
    CmdLower = /(\/domain\b|domain admins|enterprise admins|schema admins|domain controllers|group policy)/,
    "true", "false")
| eval IsPowerShellAD = if(
    ImageLower = /(\\powershell\.exe|\\pwsh\.exe)$/ AND
    CmdLower = /(get-adgroup|get-adgroupmember|get-domaingroup|get-netgroup|directorysearcher|objectclass=group|samaccounttype)/,
    "true", "false")
| eval IsADTool = if(
    ImageLower = /(adfind\.exe|sharphound\.exe|bloodhound\.exe|adexplorer\.exe|adexplorer64\.exe)$/,
    "true", "false")
| eval IsDSQuery = if(
    ImageLower = /(\\dsquery\.exe|\\dsget\.exe)$/ AND
    CmdLower = /\bgroup\b/,
    "true", "false")
| where IsNetGroup = "true" OR IsPowerShellAD = "true" OR IsADTool = "true" OR IsDSQuery = "true"
| eval DetectionMethod = case(
    IsNetGroup = "true",    "net group /domain",
    IsPowerShellAD = "true", "PowerShell AD Enumeration",
    IsADTool = "true",       "Known AD Enumeration Tool",
    IsDSQuery = "true",      "dsquery/dsget group",
    default="Unknown")
| eval TargetingPrivilegedGroup = if(
    CmdLower = /(domain admins|enterprise admins|schema admins|domain controllers|group policy creator)/,
    "true", "false")
| eval SuspiciousParent = if(
    lowercase(ParentBaseFileName) = /(wscript\.exe|cscript\.exe|mshta\.exe|winword\.exe|excel\.exe|outlook\.exe|powerpnt\.exe)/,
    "true", "false")
| groupBy([ComputerName, UserName, ImageFileName, CommandLine, ParentBaseFileName, DetectionMethod, TargetingPrivilegedGroup, SuspiciousParent], function=count(as=EventCount))
| sort(field=@timestamp, order=desc)
medium severity high confidence

CrowdStrike LogScale (Falcon CQL) detection for T1069.002 domain group enumeration using ProcessRollup2 events from the Falcon sensor. Performs case-insensitive regex matching across four detection branches: net group /domain with privileged group targeting, PowerShell AD cmdlets, known AD recon tool binaries, and dsquery/dsget group commands. Enriches results with privileged group targeting and suspicious parent process flags. Groups by host and process for noise reduction.

Data Sources

CrowdStrike Falcon sensor ProcessRollup2 eventsFalcon Data Replicator (FDR) process execution telemetryHumio/LogScale ingest from Falcon streaming API

Required Tables

#event_simpleName = ProcessRollup2

False Positives & Tuning

  • IT administrators using PowerShell AD cmdlets (Get-ADGroup, Get-ADGroupMember) from privileged admin workstations during change management windows for user access provisioning or group membership audits
  • Authorized security assessment teams running SharpHound or BloodHound during scheduled red team or purple team exercises with documented scope of work
  • Enterprise identity governance platforms (Saviynt, SailPoint, One Identity) running as Windows services that enumerate domain groups for continuous access certification and RBAC enforcement
  • Monitoring agents or SIEM connectors (e.g., LogRhythm System Monitor, Splunk UF with AD scripted inputs) invoking net group or dsquery to collect AD telemetry
Download portable Sigma rule (.yml)

Other platforms for T1069.002


Testing Methodology

Validate this detection against 4 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Net Group Domain Admin Enumeration

    Expected signal: Sysmon Event ID 1: Process Create with Image=net.exe or net1.exe, CommandLine containing 'group' and '/domain'. Security Event ID 4688 (if command line auditing is enabled). On the domain controller, Security Event ID 4661 may appear if SACL auditing is configured on Domain Admins group object.

  2. Test 2PowerShell Active Directory Module Group Enumeration

    Expected signal: Sysmon Event ID 1: Process Create with Image=powershell.exe, CommandLine containing 'Get-ADGroup' and 'Get-ADGroupMember'. Sysmon Event ID 3: LDAP network connections (port 389 or 3268) from powershell.exe to domain controller IP. PowerShell ScriptBlock Log Event ID 4104 with the full command. Sysmon Event ID 11: File creation event for groups_out.txt in %TEMP%.

  3. Test 3AdFind Domain Group Enumeration

    Expected signal: Sysmon Event ID 1: Process Create with Image=AdFind.exe, CommandLine containing '-f' and 'objectClass=group'. Sysmon Event ID 3: Network connections from AdFind.exe to domain controller on LDAP port 389 or Global Catalog port 3268. Sysmon Event ID 11: Output files created in %TEMP%. Prefetch file created at C:\Windows\Prefetch\ADFIND.EXE-*.pf.

  4. Test 4dsquery Group Enumeration

    Expected signal: Sysmon Event ID 1: Process Create with Image=dsquery.exe and Image=dsget.exe, CommandLine containing 'group'. Security Event ID 4688 if command line auditing is enabled. Sysmon Event ID 3: LDAP connections (port 389) from dsquery.exe to domain controller.

Unlock Pro Content

Get the full detection package for T1069.002 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections