Detection rules › Splunk

Process Executed from Downloads Folder - Windows (Sysmon)

Group by
_time, host, process_name
Source
github.com/anvilogic-forge/armory

This use case detects the execution of executable files (.exe) that originate from the Downloads folder of any user profile on a system. This technique is commonly used by threat actors who leverage social engineering or phishing campaigns to trick users into downloading and executing malicious software, which can then be used for a variety of malicious purposes such as gaining unauthorized access, data exfiltration, or delivering additional payloads.

MITRE ATT&CK coverage

TacticTechniques
ExecutionT1204 User Execution

References

Event coverage

ProviderEventTitle
SysmonEvent ID 1Process creation

Rule body yaml

id: '28729.52252'
title: Process Executed from Downloads Folder - Windows
description: This use case detects the execution of executable files (.exe) that originate
  from the Downloads folder of any user profile on a system. This technique is commonly
  used by threat actors who leverage social engineering or phishing campaigns to trick
  users into downloading and executing malicious software, which can then be used
  for a variety of malicious purposes such as gaining unauthorized access, data exfiltration,
  or delivering additional payloads.
logic_format: Splunk
logic: '`get_endpoint_data` `get_endpoint_data_sysmon` (TERM(EventCode=1) OR "EventID>1<")
  "C:\\Users\\*\\Downloads\\*" | regex process_path="(?i)C:\x5cUsers\x5c.+\x5cDownloads\x5c.+\.exe"
  | table _time, host, user, process, process_*, parent_process* | bin span=1s | stats
  values(*) as * by _time, host, process_path '
techniques:
- execution:user execution
technique_id: 
- T1204
data_category:
- Windows Sysmon
references:
- https://thedfirreport.com/2023/09/25/from-screenconnect-to-hive-ransomware-in-61-hours/

Stages and Predicates

Stage 1: search

`get_endpoint_data` `get_endpoint_data_sysmon` (TERM(EventCode=1) OR "EventID>1<") "C:\\Users\\*\\Downloads\\*"

Stage 2: regex

| regex process_path="(?i)C:\x5cUsers\x5c.+\x5cDownloads\x5c.+\.exe"

Stage 3: table

| table _time, host, user, process, process_*, parent_process*

Stage 4: bucket

| bin span=1s

Stage 5: stats

| stats values(*) as * by _time, host, process_path

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
EventCodeeq
  • 1 corpus 237 (splunk 224, kusto 13)
process_pathregex_match
  • "(?i)C:\x5cUsers\x5c.+\x5cDownloads\x5c.+.exe" corpus 2 (splunk 2)

Search terms

Bare-string tokens in the SPL search body. Splunk matches each token against _raw (the untyped raw event text) anywhere it appears, not against a specific field. These don't surface in the Indicators table because they aren't predicates on a known field.

StageTerm
1TERM
1"EventID>1<"
1"C:\\Users\\*\\Downloads\\*"