Detection rules › Splunk

wuauclt.exe Network Connection (Sysmon)

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

wuauclt.exe is the Windows Update client. It can be abused to proxy execution of malicious code as documented in the LOLBAS project. This use case detects network connection events with wuauclt.exe. Connections to Microsoft-owned IPs are expected behavior and have been filtered out

MITRE ATT&CK coverage

References

Telemetry coverage

ProviderRecord / event type
SysmonEvent ID 3: Network connection

Rule body

id: '25039.46452'
title: wuauclt.exe Network Connection
description: wuauclt.exe is the Windows Update client. It can be abused to proxy execution
  of malicious code as documented in the LOLBAS project. This use case detects network
  connection events with wuauclt.exe. Connections to Microsoft-owned IPs are expected
  behavior and have been filtered out. Living Off the Land Binary and Scripts (LOLBAS)
  (LOLBIN)
logic_format: Splunk
logic: '`get_endpoint_data` `get_endpoint_data_sysmon` (TERM(EventCode=3) OR "<EventID>3<")
  "wuauclt" | where not match(dest_ip, "^(20\.18[4-9]\.|20\.19[0-1]\.|23\.79\.|51\.10[3-5]\.|52\.239\.)")
  and match(process_name, "(?i)wuauclt\.exe") | table _time, host, user, signature_id,
  process, process_name, parent_process_path, parent_process_name, src_ip, dest_ip
  `group_events("host,1)` '
techniques:
- defense-evasion:system binary proxy execution
technique_id: 
- T1218
data_category:
- Windows Sysmon
references:
- https://lolbas-project.github.io/lolbas/Binaries/Wuauclt/

Stages and Predicates

Stage 1: search

search EventCode=3 source="*" source IN ("WinEventLog:Microsoft-Windows-Sysmon/Operational", "XmlWinEventLog:Microsoft-Windows-Sysmon/Operational")

Stage 2: where

where NOT match(dest_ip, "^(20\.18[4-9]\.|20\.19[0-1]\.|23\.79\.|51\.10[3-5]\.|52\.239\.)") match(process_name, "(?i)wuauclt\.exe")

Stage 3: table

table _time, dest_ip, host, parent_process_name, parent_process_path, process, process_name, signature_id, src_ip, user

Stage 4: bucket

bucket _time

Stage 5: stats

stats BY host, _time

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
dest_ipregex_match"^(20.18[4-9].|20.19[0-1].|23.79.|51.10[3-5].|52.239.)"excludes:dest_ip

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
EventCodeeq
  • 3 corpus 24 (splunk 14, kusto 8, chronicle 2)
field:"EventID" kind:eq value:"3"
process_nameregex_match
  • "(?i)wuauclt.exe" corpus 2 (splunk 2)
field:"process_name" kind:regex_match

Search terms

These SPL tokens match against raw event text.

StageTerm
1"<EventID>3<"
1"wuauclt"