Detection rules › Sigma

Certutil payload obfuscation - Tchopper (command)

Status
experimental
Severity
high
Log source
category process_creation, product windows
Author
mdecrevoisier
Source
github.com/mdecrevoisier/SIGMA-detection-rules

Detects scenarios where an attacker attempts to abuse certutil command to download obfuscated malicious payload using the Tchopper tool.

Known false positives

  • None

MITRE ATT&CK coverage

Telemetry coverage

Rule body

title: Certutil payload obfuscation - Tchopper (command)
description: Detects scenarios where an attacker attempts to abuse certutil command to download obfuscated malicious payload using the Tchopper tool.
references:
- https://github.com/lawrenceamer/TChopper
- https://www.elastic.co/guide/en/security/current/suspicious-certutil-commands.html
- https://www.bleepingcomputer.com/news/security/certutilexe-could-allow-attackers-to-download-malware-while-bypassing-av/
- https://attack.mitre.org/software/S0160/
- https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certutil
- https://www.sentinelone.com/blog/malware-living-off-land-with-certutil/
tags:
- attack.defense_evasion
- attack.t1140
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  category: process_creation
detection:
  selection:
    EventID: 4688
    Version: 2 # parent process name is available starting Windows 10 / Server 2016 and higher
    ParentProcessName|endswith: '\WmiPrvSE.exe'
    NewProcessName|endswith: '\certutil.exe'
    CommandLine|contains: decode
  condition: selection
falsepositives:
- None
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
  EventID: 4688
  Version: 2
  ParentProcessName|endswith: '\WmiPrvSE.exe'
  NewProcessName|endswith: '\certutil.exe'
  CommandLine|contains: decode

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • decode corpus 5 (sigma 2, splunk 2, elastic 1)
field:"CommandLine" kind:match value:"decode"
NewProcessNameends_with
  • \certutil.exe corpus 44 (sigma 43, kusto 1)
field:"Image" kind:ends_with value:"\certutil.exe"
ParentProcessNameends_with
  • \WmiPrvSE.exe corpus 3 (sigma 2, kusto 1)
field:"parent_process_name" kind:ends_with value:"\WmiPrvSE.exe"
Versioneq
  • 2 corpus 7 (sigma 7)
field:"Version" kind:eq value:"2"