Suspicious CertUtil Commands

edit

Identifies suspicious commands being used with certutil.exe. CertUtil is a native Windows component which is part of Certificate Services. CertUtil is often abused by attackers to live off the land for stealthier command and control or data exfiltration.

Rule type: eql

Rule indices:

  • winlogbeat-*
  • logs-endpoint.events.*
  • logs-windows.*

Severity: medium

Risk score: 47

Runs every: 5 minutes

Searches indices from: now-9m (Date Math format, see also Additional look-back time)

Maximum alerts per execution: 100

References:

Tags:

  • Elastic
  • Host
  • Windows
  • Threat Detection
  • Defense Evasion

Version: 100 (version history)

Added (Elastic Stack release): 7.6.0

Last modified (Elastic Stack release): 8.5.0

Rule authors: Elastic, Austin Songer

Rule license: Elastic License v2

Investigation guide

edit

Rule query

edit
process where event.type == "start" and (process.name :
"certutil.exe" or process.pe.original_file_name == "CertUtil.exe") and
process.args : ("?decode", "?encode", "?urlcache", "?verifyctl",
"?encodehex", "?decodehex", "?exportPFX")

Threat mapping

edit

Framework: MITRE ATT&CKTM

Rule version history

edit
Version 100 (8.5.0 release)
  • Formatting only
Version 16 (8.4.0 release)
  • Updated query, changed from:

    process where event.type == "start" and (process.name :
    "certutil.exe" or process.pe.original_file_name == "CertUtil.exe") and
    process.args : ("?decode", "?encode", "?urlcache", "?verifyctl",
    "?encodehex", "?decodehex", "?exportPFX")
Version 14 (8.3.0 release)
  • Formatting only
Version 12 (8.2.0 release)
  • Formatting only
Version 10 (8.0.0 release)
  • Updated query, changed from:

    process where event.type == "start" and (process.name :
    "certutil.exe" or process.pe.original_file_name == "CertUtil.exe") and
    process.args : ("?decode", "?encode", "?urlcache", "?verifyctl",
    "?encodehex", "?decodehex")
Version 9 (7.14.0 release)
  • Rule name changed from: Encoding or Decoding Files via CertUtil
  • Updated query, changed from:

    process where event.type == "start" and (process.name :
    "certutil.exe" or process.pe.original_file_name == "CertUtil.exe") and
    process.args : ("?decode", "?encode")
Version 8 (7.13.0 release)
  • Updated query, changed from:

    event.category:process and event.type:(start or process_started) and
    process.name:certutil.exe and process.args:(-decode or -encode or
    /decode or /encode)
Version 7 (7.12.0 release)
  • Formatting only
Version 6 (7.11.2 release)
  • Formatting only
Version 5 (7.10.0 release)
  • Formatting only
Version 4 (7.9.1 release)
  • Formatting only
Version 3 (7.9.0 release)
  • Updated query, changed from:

    event.action:"Process Create (rule: ProcessCreate)" and
    process.name:certutil.exe and process.args:(-decode or -encode or
    /decode or /encode)
Version 2 (7.7.0 release)
  • Updated query, changed from:

    event.action:"Process Create (rule: ProcessCreate)" and
    process.name:"certutil.exe" and process.args:("-encode" or "/encode"
    or "-decode" or "/decode")