Try in Splunk Security Cloud


The following analytic utilizes PowerShell Script Block Logging (EventCode=4104) to identify the execution of the Get-LocalUser commandlet. The Get-LocalUser commandlet is used to return a list of all local users. Red Teams and adversaries may leverage this commandlet to enumerate users for situational awareness and Active Directory Discovery.

  • Type: Hunting
  • Product: Splunk Enterprise, Splunk Enterprise Security, Splunk Cloud
  • Datamodel: Endpoint
  • Last Updated: 2021-08-23
  • Author: Mauricio Velazco, Splunk
  • ID: 2e891cbe-0426-11ec-9c9c-acde48001122


ID Technique Tactic
T1087 Account Discovery Discovery
T1087.001 Local Account Discovery
`powershell` EventCode=4104 (Message = "*Get-LocalUser*") 
| stats count min(_time) as firstTime max(_time) as lastTime by EventCode Message ComputerName User 
| `security_content_ctime(firstTime)` 
| `getlocaluser_with_powershell_script_block_filter`

Associated Analytic Story

How To Implement

To successfully implement this analytic, you will need to enable PowerShell Script Block Logging on some or all endpoints. Additional setup here

Required field

  • _time

Kill Chain Phase

  • Reconnaissance

Known False Positives

Administrators or power users may use this PowerShell commandlet for troubleshooting.


Risk Score Impact Confidence Message
15.0 30 50 Local user discovery enumeration using PowerShell on $dest$ by $user$


Test Dataset

Replay any dataset to Splunk Enterprise by using our tool or the UI. Alternatively you can replay a dataset into a Splunk Attack Range

source | version: 1