Detection rules › Elastic

Suspicious Microsoft OneNote Child Process

Source
github.com/elastic/protections-artifacts

Identifies suspicious child processes of the Microsoft OneNote application. This may indicate an attempt to execute malicious embedded objects from a .one file.

MITRE ATT&CK coverage

TacticTechniques
Initial Access

Rule body

[rule]
description = """
Identifies suspicious child processes of the Microsoft OneNote application. This may indicate an attempt to execute
malicious embedded objects from a .one file.
"""
id = "28297d1e-c2a9-442c-9e48-98fe8ce36fab"
license = "Elastic License v2"
name = "Suspicious Microsoft OneNote Child Process"
os_list = ["windows"]
reference = ["https://blog.sevagas.com/IMG/pdf/redteam_with_onenote.pdf"]
version = "1.0.26"

query = '''
process where event.action == "start" and
  process.parent.name : "ONENOTE.EXE" and
  (
		process.pe.original_file_name : (
		    "rundll32.exe",
		    "regsvr32.exe",
		    "bitsadmin.exe",
		    "certutil.exe",
		    "installutil.exe",
		    "schtasks.exe",
		    "wmic.exe",
		    "cscript.exe",
		    "wscript.exe",
		    "cmstp.exe",
		    "Microsoft.Workflow.Compiler.exe",
		    "regasm.exe",
		    "regsvcs.exe",
		    "mshta.exe",
		    "msxsl.exe",
		    "ieexec.exe",
		    "cmd.exe",
		    "powershell.exe",
		    "hh.exe",
		    "javaw.exe",
		    "pcalua.exe",
		    "curl.exe",
		    "ScriptRunner.exe",
		    "CertOC.exe",
		    "Workfolders.exe",
		    "odbcconf.exe",
		    "msiexec.exe",
		    "msdt.exe")
		 or

		(process.name : "explorer.exe" and
		 process.args : ("*.hta*", "*.vb*", "*.wsh*", "*.js*", "*.ps*", "*.scr*", "*.pif*", "*bat*", "*.cmd*")) or

		process.executable : ("?:\\Users\\*\\AppData\\*",
		                      "?:\\Users\\Public\\",
		                      "?:\\ProgramData\\*",
		                      "?:\\Windows\\Tasks\\*",
		                      "?:\\Windows\\Temp\\*",
		                      "?:\\Windows\\System32\\Tasks\\*")
  ) and

  /* many FPs like browsers and chat desktop apps */
  not (process.executable : "?:\\Users\\*\\AppData\\*" and process.code_signature.trusted == true) and
  not (process.name : "rundll32.exe" and process.command_line : "*windows\\system32\\spool\\DRIVERS\\*MonitorPrintJobStatus*") and
  not (process.pe.original_file_name == "Teams.exe" and
        process.code_signature.trusted == true and process.code_signature.subject_name : "Microsoft Corporation") and
  not (process.name : "rundll32.exe" and process.args : "?:\\Program Files (x86)\\AllesTechnologyAgent\\Super Shield\\SuperShieldHookCpy32.dll,#1") and 
  not (process.code_signature.trusted == true and process.code_signature.subject_name : ("VideoLAN", "Interact Digital AG"))
'''

min_endpoint_version = "7.15.0"
optional_actions = []
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 0

[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1566"
name = "Phishing"
reference = "https://attack.mitre.org/techniques/T1566/"
[[threat.technique.subtechnique]]
id = "T1566.001"
name = "Spearphishing Attachment"
reference = "https://attack.mitre.org/techniques/T1566/001/"



[threat.tactic]
id = "TA0001"
name = "Initial Access"
reference = "https://attack.mitre.org/tactics/TA0001/"

[internal]
min_endpoint_version = "7.15.0"

Stages and Predicates

Stage 1: process

process where event.action == "start" and
  process.parent.name : "ONENOTE.EXE" and
  (
		process.pe.original_file_name : (
		    "rundll32.exe",
		    "regsvr32.exe",
		    "bitsadmin.exe",
		    "certutil.exe",
		    "installutil.exe",
		    "schtasks.exe",
		    "wmic.exe",
		    "cscript.exe",
		    "wscript.exe",
		    "cmstp.exe",
		    "Microsoft.Workflow.Compiler.exe",
		    "regasm.exe",
		    "regsvcs.exe",
		    "mshta.exe",
		    "msxsl.exe",
		    "ieexec.exe",
		    "cmd.exe",
		    "powershell.exe",
		    "hh.exe",
		    "javaw.exe",
		    "pcalua.exe",
		    "curl.exe",
		    "ScriptRunner.exe",
		    "CertOC.exe",
		    "Workfolders.exe",
		    "odbcconf.exe",
		    "msiexec.exe",
		    "msdt.exe")
		 or
		(process.name : "explorer.exe" and
		 process.args : ("*.hta*", "*.vb*", "*.wsh*", "*.js*", "*.ps*", "*.scr*", "*.pif*", "*bat*", "*.cmd*")) or
		process.executable : ("?:\\Users\\*\\AppData\\*",
		                      "?:\\Users\\Public\\",
		                      "?:\\ProgramData\\*",
		                      "?:\\Windows\\Tasks\\*",
		                      "?:\\Windows\\Temp\\*",
		                      "?:\\Windows\\System32\\Tasks\\*")
  ) and
  not (process.executable : "?:\\Users\\*\\AppData\\*" and process.code_signature.trusted == true) and
  not (process.name : "rundll32.exe" and process.command_line : "*windows\\system32\\spool\\DRIVERS\\*MonitorPrintJobStatus*") and
  not (process.pe.original_file_name == "Teams.exe" and
        process.code_signature.trusted == true and process.code_signature.subject_name : "Microsoft Corporation") and
  not (process.name : "rundll32.exe" and process.args : "?:\\Program Files (x86)\\AllesTechnologyAgent\\Super Shield\\SuperShieldHookCpy32.dll,#1") and
  not (process.code_signature.trusted == true and process.code_signature.subject_name : ("VideoLAN", "Interact Digital AG"))

Exclusions

The rule actively suppresses these predicates.

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
event.actioneq
  • start corpus 391 (elastic 391)
field:"EventType" kind:eq value:"start"
process.argswildcard
  • *.cmd* corpus 2 (elastic 2)
  • *.hta* corpus 2 (elastic 2)
  • *.js* corpus 2 (elastic 2)
  • *.pif* corpus 2 (elastic 2)
  • *.ps* corpus 2 (elastic 2)
  • *.scr* corpus 2 (elastic 2)
  • *.vb* corpus 2 (elastic 2)
  • *.wsh* corpus 2 (elastic 2)
  • *bat* corpus 2 (elastic 2)
field:"process.args" kind:wildcard
process.executablewildcard
  • ?:\ProgramData\* corpus 17 (elastic 17)
  • ?:\Users\*\AppData\* corpus 12 (elastic 12)
  • ?:\Users\Public\
  • ?:\Windows\System32\Tasks\* corpus 2 (elastic 2)
  • ?:\Windows\Tasks\* corpus 7 (elastic 7)
  • ?:\Windows\Temp\* corpus 9 (elastic 9)
field:"Image" kind:wildcard
process.namewildcard
  • explorer.exe corpus 21 (elastic 19, splunk 2)
field:"process_name" kind:wildcard value:"explorer.exe"
process.parent.namewildcard
  • ONENOTE.EXE corpus 3 (elastic 3)
field:"parent_process_name" kind:wildcard value:"ONENOTE.EXE"
process.pe.original_file_namewildcard
  • CertOC.exe corpus 9 (sigma 6, elastic 3)
  • Microsoft.Workflow.Compiler.exe corpus 12 (elastic 7, sigma 3, splunk 2)
  • ScriptRunner.exe corpus 6 (sigma 3, elastic 3)
  • Workfolders.exe corpus 4 (sigma 2, elastic 2)
  • bitsadmin.exe corpus 20 (sigma 9, elastic 8, splunk 2, kusto 1)
  • certutil.exe corpus 30 (sigma 14, elastic 10, splunk 6)
  • cmd.exe corpus 81 (sigma 43, elastic 21, splunk 17)
  • cmstp.exe corpus 11 (elastic 6, sigma 5)
  • cscript.exe corpus 32 (sigma 17, elastic 15)
  • curl.exe corpus 24 (sigma 13, elastic 8, splunk 3)
  • hh.exe corpus 11 (sigma 5, splunk 4, elastic 2)
  • ieexec.exe corpus 5 (sigma 3, elastic 2)
  • installutil.exe corpus 21 (elastic 11, sigma 6, splunk 4)
  • javaw.exe corpus 7 (elastic 5, sigma 2)
  • msdt.exe corpus 10 (sigma 6, elastic 4)
  • mshta.exe corpus 40 (elastic 21, sigma 13, splunk 6)
  • msiexec.exe corpus 20 (elastic 11, sigma 5, splunk 4)
  • msxsl.exe corpus 11 (elastic 8, sigma 3)
  • odbcconf.exe corpus 12 (sigma 9, elastic 3)
  • pcalua.exe corpus 4 (sigma 2, elastic 2)
  • powershell.exe corpus 138 (sigma 84, splunk 30, elastic 24)
  • regasm.exe corpus 14 (elastic 7, sigma 6, splunk 1)
  • regsvcs.exe corpus 13 (elastic 7, sigma 5, splunk 1)
  • regsvr32.exe corpus 37 (sigma 17, elastic 15, splunk 5)
  • rundll32.exe corpus 78 (sigma 35, elastic 22, splunk 21)
  • schtasks.exe corpus 31 (sigma 18, elastic 9, splunk 4)
  • wmic.exe corpus 80 (sigma 38, elastic 24, splunk 18)
  • wscript.exe corpus 38 (elastic 21, sigma 17)
field:"OriginalFileName" kind:wildcard