Detection rules › Splunk

SearchProtocolHost with no Command Line with Network

Author
Michael Haag, Splunk
Source
upstream

The following analytic detects instances of searchprotocolhost.exe running without command line arguments but with an active network connection. This behavior is identified using Endpoint Detection and Response (EDR) telemetry, focusing on process execution and network traffic data. It is significant because searchprotocolhost.exe typically runs with specific command line arguments, and deviations from this norm can indicate malicious activity, such as Cobalt Strike usage. If confirmed malicious, this activity could allow attackers to establish network connections for command and control, potentially leading to data exfiltration or further system compromise.

MITRE ATT&CK coverage

TacticTechniques
Privilege EscalationT1055 Process Injection
Defense EvasionT1055 Process Injection

Event coverage

ProviderEvent IDTitle
Sysmon1Process creation
Sysmon3Network connection

Stages and Predicates

Stage 1: tstats

tstats WHERE (Processes.original_file_name="searchprotocolhost.exe" OR Processes.process_name="searchprotocolhost.exe") Processes.process IN ("*searchprotocolhost", "*searchprotocolhost.exe", "*searchprotocolhost.exe\"") BY _time, Processes.action, Processes.dest, Processes.original_file_name, Processes.parent_process, Processes.parent_process_exec, Processes.parent_process_guid, Processes.parent_process_id, Processes.parent_process_name, Processes.parent_process_path, Processes.process, Processes.process_exec, Processes.process_guid, Processes.process_hash, Processes.process_id, Processes.process_integrity_level, Processes.process_name, Processes.process_path, Processes.user, Processes.user_id, Processes.vendor_product

Stage 2: search

search

Stage 3: search

search

Stage 4: search

search

Stage 5: join

join type=inner (...)

Stage 6: table

table C2, _time, dest, dest_port, parent_process_name, process, process_id, process_name, process_path

Stage 7: search

search `macro`

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
All_Traffic.dest_portne
  • 0 corpus 6 (splunk 6)
Processes.original_file_nameeq
  • searchprotocolhost.exe
Processes.processin
  • "*searchprotocolhost"
  • "*searchprotocolhost.exe"
  • "*searchprotocolhost.exe\""
Processes.process_nameeq
  • searchprotocolhost.exe