T1069.001 CrowdStrike LogScale · LogScale

Detect Local Groups in CrowdStrike LogScale

Adversaries may attempt to find local system groups and permission settings. The knowledge of local system 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 the users found within the local administrators group. Commands such as net localgroup of the Net utility, dscl . -list /Groups on macOS, and groups on Linux can list local groups.

MITRE ATT&CK

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

LogScale Detection Query

CrowdStrike LogScale (LogScale)
cql
// CrowdStrike LogScale (Falcon) — T1069.001 Local Group Enumeration Detection
// Requires Falcon Insight EDR with process telemetry enabled

#event_simpleName = ProcessRollup2
| eval FileName_lower = lower(FileName)
| eval CommandLine_lower = lower(CommandLine)
| eval ParentBaseFileName_lower = lower(ParentBaseFileName)
| where
    // Windows net.exe / net1.exe localgroup
    (FileName_lower in ("net.exe", "net1.exe") and CommandLine_lower = /localgroup/)
    // PowerShell Get-LocalGroup / Get-LocalGroupMember
    or (FileName_lower in ("powershell.exe", "pwsh.exe") and CommandLine_lower = /(get-localgroup|get-localgroupmember|localgroup)/)
    // WMIC group query
    or (FileName_lower = "wmic.exe" and CommandLine_lower = /(\bgroup\b|localgroup)/)
    // macOS dscl Groups
    or (FileName_lower = "dscl" and CommandLine_lower = /groups/i)
    // Linux groups binary
    or FileName_lower = "groups"
    // Linux getent group
    or (FileName_lower = "getent" and CommandLine_lower = /group/)
    // Linux id -Gn
    or (FileName_lower = "id" and CommandLine_lower = /(-G|-Gn)/)
| eval IsAdminGroupQuery = if(
    CommandLine_lower = /(administrators|admin|remote desktop|backup operators|power users|network configuration)/,
    1, 0
  )
| eval IsNetLocalGroup = if(
    FileName_lower in ("net.exe", "net1.exe") and CommandLine_lower = /localgroup/,
    1, 0
  )
| eval IsPowerShellLocalGroup = if(
    FileName_lower in ("powershell.exe", "pwsh.exe") and CommandLine_lower = /(get-localgroup|get-localgroupmember)/,
    1, 0
  )
| eval IsWmicGroup = if(
    FileName_lower = "wmic.exe" and CommandLine_lower = /(group|localgroup)/,
    1, 0
  )
| eval SuspiciousParent = if(
    ParentBaseFileName_lower = /(cmd\.exe|powershell\.exe|wscript\.exe|cscript\.exe|mshta\.exe|rundll32\.exe|regsvr32\.exe|python\.exe|python3|bash|\bsh\b|zsh)/,
    1, 0
  )
| eval SuspicionScore = IsAdminGroupQuery + SuspiciousParent
| table
    @timestamp,
    ComputerName,
    UserName,
    FileName,
    CommandLine,
    ParentBaseFileName,
    IsAdminGroupQuery,
    IsNetLocalGroup,
    IsPowerShellLocalGroup,
    IsWmicGroup,
    SuspiciousParent,
    SuspicionScore
| sort @timestamp desc
medium severity high confidence

CrowdStrike LogScale (Falcon CQL) detection for local group enumeration (T1069.001) using Falcon Insight EDR ProcessRollup2 telemetry. Identifies net localgroup, PowerShell Get-LocalGroup/Get-LocalGroupMember, WMIC group queries, macOS dscl Groups listing, and Linux groups/id/getent commands. Computes suspicion score based on targeting of privileged groups and suspicious parent process chains including script interpreters commonly used in post-exploitation.

Data Sources

CrowdStrike Falcon Insight EDR (ProcessRollup2 events)Falcon Endpoint Activity MonitoringCrowdStrike Falcon Data Replicator (FDR) process telemetry

Required Tables

#event_simpleName=ProcessRollup2

False Positives & Tuning

  • Falcon sensor itself or CrowdStrike RTR (Real Time Response) sessions executing group enumeration commands during authorized incident response investigations
  • Software deployment pipelines using SCCM, Intune, or similar tools that verify local group membership before installing software requiring elevated rights
  • IT operations personnel using automated scripts to audit local Administrators group membership across the fleet for CIS benchmark compliance reporting
  • Vulnerability management platforms performing credentialed scans that enumerate local groups to assess privilege escalation exposure
Download portable Sigma rule (.yml)

Other platforms for T1069.001


Testing Methodology

Validate this detection against 5 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 1Enumerate Local Groups with net localgroup

    Expected signal: Sysmon Event ID 1: Two Process Create events with Image=C:\Windows\System32\net.exe, CommandLine='net localgroup' and 'net localgroup Administrators'. Security Event ID 4688 (if command line auditing enabled) with NewProcessName=net.exe and ProcessCommandLine containing 'localgroup'. Parent process will be cmd.exe or powershell.exe depending on execution context.

  2. Test 2Enumerate Local Groups with PowerShell Get-LocalGroup

    Expected signal: Sysmon Event ID 1: Two Process Create events with Image=powershell.exe, CommandLines containing 'Get-LocalGroup' and 'Get-LocalGroupMember'. PowerShell ScriptBlock Logging Event ID 4104 in Microsoft-Windows-PowerShell/Operational will capture the full cmdlets. Security Event ID 4688 if command line auditing is enabled.

  3. Test 3Enumerate Local Groups with WMIC

    Expected signal: Sysmon Event ID 1: Two Process Create events with Image=C:\Windows\System32\wbem\wmic.exe, CommandLines containing 'group list brief' and 'group where'. Security Event ID 4688 if command line auditing is enabled. WMI activity may also be captured in Event ID 5857-5861 from Microsoft-Windows-WMI-Activity/Operational.

  4. Test 4Enumerate Local Groups on Linux with groups and getent

    Expected signal: Auditd process creation events (if auditd is configured with -a always,exit -F arch=b64 -S execve rules) for groups, id, getent, and cat processes. Syslog entries if process accounting is enabled. On systems with Sysmon for Linux, Event ID 1 process creation events will be generated.

  5. Test 5Simulate Turla-style net localgroup output redirection

    Expected signal: Sysmon Event ID 1: Process Create for cmd.exe with CommandLine containing 'net localgroup administrators' and output redirection '>>'. Sysmon Event ID 1: Child process net.exe spawned by cmd.exe with CommandLine 'net localgroup administrators'. Sysmon Event ID 11: File Create event for the output file in %TEMP%. Security Event ID 4688 for both cmd.exe and net.exe if process creation auditing is enabled.

Unlock Pro Content

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

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections