Detection rules › Splunk

Additional dll added to Spool Driver (Sysmon)

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

This use case look for an additional dll to the print drivers as seen with Print Nightmare CVE-2021-1675

MITRE ATT&CK coverage

References

Event coverage

ProviderEventTitle
SysmonEvent ID 11FileCreate
SysmonEvent ID 23FileDelete (File Delete archived)

Rule body yaml

id: '6446.7204'
title: Additional dll added to Spool Driver
description: 'This use case look for an additional dll to the print drivers as seen
  with Print Nightmare CVE-2021-1675. -- Threat Actor Association: Earth Lusca, Vice
  Society - Software Association: Black Basta, Play, Ransom Cartel'
logic_format: Splunk
logic: '`get_endpoint_data` `get_endpoint_data_sysmon` ((EventCode=11 OR "<EventID>11<"
  OR "<EventID>23<" OR EventCode=23) "spoolsv.exe" "dll") | regex TargetFilename="\QC:\Windows\System32\spool\drivers\x64\E"
  | table _time, host, user, signature_id, process, process_*, parent_* | bin span=5s
  | stats values(*) as * by _time, host, process_path | where match(signature_id,
  "11") and match(signature_id, "23") '
techniques:
- persistence:boot or logon autostart execution
technique_id: 
- T1547
data_category:
- Windows Sysmon
references:
- https://github.com/cube0x0/CVE-2021-1675

Stages and Predicates

Stage 1: search

`get_endpoint_data` `get_endpoint_data_sysmon` ((EventCode=11 OR "<EventID>11<" OR "<EventID>23<" OR EventCode=23) "spoolsv.exe" "dll")

Stage 2: regex

| regex TargetFilename="\QC:\Windows\System32\spool\drivers\x64\E"

Stage 3: table

| table _time, host, user, signature_id, process, process_*, parent_*

Stage 4: bucket

| bin span=5s

Stage 5: stats

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

Stage 6: where

| where match(signature_id, "11") and match(signature_id, "23")

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
  • 11 corpus 23 (splunk 21, kusto 2)
  • 23 corpus 4 (splunk 4)
TargetFilenameregex_match
  • "\QC:\Windows\System32\spool\drivers\x64\E"
signature_idmatch
  • "11"
  • "23"

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
1"<EventID>11<"
1"<EventID>23<"
1"spoolsv.exe"
1"dll"