Detection rules › Sigma

Curl File Upload To File Sharing Websites

Status
experimental
Severity
high
Log source
category process_creation, product windows
Author
Swachchhanda Shrawan Poudel (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects usage of curl to upload files to known file sharing domains, which may indicate data exfiltration.

Known false positives

  • Legitimate file uploads to these services by administrators or developers

MITRE ATT&CK coverage

Telemetry coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule body

title: Curl File Upload To File Sharing Websites
id: e328cc73-f92a-42fb-b3fa-7c2cffda981a
related:
    - id: 00bca14a-df4e-4649-9054-3f2aa676bc04
      type: derived
    - id: 7d1aaf3d-4304-425c-b7c3-162055e0b3ab
      type: similar
status: experimental
description: Detects usage of curl to upload files to known file sharing domains, which may indicate data exfiltration.
author: Swachchhanda Shrawan Poudel (Nextron Systems)
references:
    - https://unit42.paloaltonetworks.com/advanced-backdoor-squidoor/
date: 2026-03-29
tags:
    - attack.exfiltration
    - attack.t1567.002
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith: '\curl.exe'
        - OriginalFileName: 'curl.exe'
    selection_cli_domain:
        CommandLine|contains:
            - '0x0.st'
            - 'bashupload.com'
            - 'chunk.io'
            - 'file.io'
            - 'filebin.net'
            - 'pastebin'
            - 'send.firefox.com'
            - 'temp.sh'
            - 'transfer.sh'
            - 'ufile.io'
            - 'uploadfiles.io'
            - 'wetransfer.com'
            - 'x0.at'
    selection_cli_flags:
        - CommandLine|contains:
              - ' --form'
              - ' --upload-file'
              - ' --data'
              - ' -X POST'
              - ' --request POST '
        - CommandLine|re:
              - '\s-[FTd]\s' # We use regex to ensure a case sensitive argument detection
              - '\s-sT\s'
    condition: all of selection_*
falsepositives:
    - Legitimate file uploads to these services by administrators or developers
level: high

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_img

selection_img:
    - Image|endswith: '\curl.exe'
    - OriginalFileName: 'curl.exe'

Stage 2: selection_cli_domain

selection_cli_domain:
    CommandLine|contains:
        - '0x0.st'
        - 'bashupload.com'
        - 'chunk.io'
        - 'file.io'
        - 'filebin.net'
        - 'pastebin'
        - 'send.firefox.com'
        - 'temp.sh'
        - 'transfer.sh'
        - 'ufile.io'
        - 'uploadfiles.io'
        - 'wetransfer.com'
        - 'x0.at'

Stage 3: selection_cli_flags

selection_cli_flags:
    - CommandLine|contains:
          - ' --form'
          - ' --upload-file'
          - ' --data'
          - ' -X POST'
          - ' --request POST '
    - CommandLine|re:
          - '\s-[FTd]\s'
          - '\s-sT\s'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • --data
  • --form corpus 3 (sigma 3)
  • --request POST
  • --upload-file
  • -X POST
  • 0x0.st corpus 6 (sigma 6)
  • bashupload.com corpus 6 (sigma 6)
  • chunk.io corpus 6 (sigma 6)
  • file.io
  • filebin.net
  • pastebin
  • send.firefox.com
  • temp.sh corpus 7 (sigma 6, chronicle 1)
  • transfer.sh corpus 8 (sigma 6, elastic 1, chronicle 1)
  • ufile.io corpus 8 (sigma 6, elastic 1, chronicle 1)
  • uploadfiles.io
  • wetransfer.com
  • x0.at corpus 6 (sigma 6)
field:"CommandLine" kind:match
CommandLineregex_match
  • \s-[FTd]\s corpus 3 (sigma 3)
  • \s-sT\s
field:"CommandLine" kind:regex_match
Imageends_with
  • \curl.exe corpus 31 (sigma 31)
field:"Image" kind:ends_with value:"\curl.exe"
OriginalFileNameeq
  • curl.exe corpus 24 (sigma 13, elastic 8, splunk 3)
field:"OriginalFileName" kind:eq value:"curl.exe"