Detection rules › Sigma

File Download Via Curl.EXE

Status
test
Severity
medium
Log source
product windows, category process_creation
Author
Florian Roth (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects file download using curl.exe

MITRE ATT&CK coverage

TacticTechniques
Command & ControlT1105 Ingress Tool Transfer

Event coverage

ProviderEventTitle
SysmonEvent ID 1Process creation

Rule body yaml

title: File Download Via Curl.EXE
id: 9a517fca-4ba3-4629-9278-a68694697b81
related:
    - id: bbeaed61-1990-4773-bf57-b81dbad7db2d # Basic curl execution
      type: derived
    - id: e218595b-bbe7-4ee5-8a96-f32a24ad3468 # Suspicious curl execution
      type: derived
status: test
description: Detects file download using curl.exe
references:
    - https://web.archive.org/web/20200128160046/https://twitter.com/reegun21/status/1222093798009790464
author: Florian Roth (Nextron Systems)
date: 2022-07-05
modified: 2023-02-21
tags:
    - attack.command-and-control
    - attack.t1105
    - detection.threat-hunting
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith: '\curl.exe'
        - Product: 'The curl executable'
    selection_remote:
        CommandLine|contains:
            - ' -O'  # covers the alias for --remote-name and --output
            - '--remote-name'
            - '--output'
    condition: all of selection_*
falsepositives:
    - Scripts created by developers and admins
    - Administrative activity
    - The "\Git\usr\bin\sh.exe" process uses the "--output" flag to download a specific file in the temp directory with the pattern "gfw-httpget-xxxxxxxx.txt "
level: medium

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_img

selection_img:
    - Image|endswith: '\curl.exe'
    - Product: 'The curl executable'

Stage 2: selection_remote

selection_remote:
    CommandLine|contains:
        - ' -O'
        - '--remote-name'
        - '--output'

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
CommandLinematch
  • -O corpus 7 (sigma 6, chronicle 1)
  • --output corpus 4 (sigma 4)
  • --remote-name corpus 4 (sigma 4)
Imageends_with
  • \curl.exe corpus 30 (sigma 30)
Producteq
  • The curl executable corpus 5 (sigma 5)