T1105 — Ingress Tool Transfer

Tactic: Command and Control · Platforms: ESXi, Linux, macOS, Network Devices, Windows

Adversaries may transfer tools or other files from an external system into a compromised environment. Tools or files may be copied from an external adversary-controlled system to the victim network through the command and control channel or through alternate protocols such as ftp. Once present,…

Sigma detection rules (5)

T1105 Ingress Tool Transfer

title: T1105 Ingress Tool Transfer
id: 8519fb29-9ff7-4910-abeb-4ac4088520d9
description: 'Detects command-line tool-transfer utilities (certutil urlcache/-decode, bitsadmin /transfer, PowerShell WebClient/Invoke-WebRequest, curl, wget) used to pull files from an external system into the compromised environment. (Data Component: Process Creation; baseline tier: windows-eventid.) Tune using: ParentProcessName, DestinationIPCategory, FilePathRegex.'
references:
  - https://attack.mitre.org/techniques/T1105
author: Shahrukh Khan
date: 2026-04-24
license: MIT
tags:
  - attack.command-and-control
  - attack.t1105

logsource:
  category: process_creation
  product: windows

detection:
  selection_certutil:
    Image|endswith: '\certutil.exe'
    CommandLine|contains:
      - 'urlcache'
      - '-decode'
      - '-decodehex'
  selection_bitsadmin:
    Image|endswith: '\bitsadmin.exe'
    CommandLine|contains: '/transfer'
  selection_iwr:
    Image|endswith:
      - '\powershell.exe'
      - '\pwsh.exe'
    CommandLine|contains:
      - 'Invoke-WebRequest'
      - 'Net.WebClient'
      - 'DownloadFile'
      - 'DownloadString'
  selection_curlwget:
    Image|endswith:
      - '\curl.exe'
      - '\wget.exe'
  filter_system_account:
    User|contains:
      - 'SYSTEM'
      - 'LOCAL SERVICE'
      - 'NETWORK SERVICE'

  condition: 1 of selection_* and not filter_system_account

falsepositives:
  - Legitimate admin/patch-management use of certutil, bitsadmin, or scripted downloads.
  - System and service accounts (SYSTEM, LOCAL SERVICE, NETWORK SERVICE) performing the same action are excluded via filter_system_account; tune further with process/path allowlists if noise remains.

level: medium

T1105 Ingress Tool Transfer

title: T1105 Ingress Tool Transfer
id: eddbe83a-a46e-469d-bff0-b85266151300
description: 'Detect Ingress Tool Transfers via Behavioral Chain: a curl/wget invocation with an explicit output flag (-o/-O/--output) that also creates a script/binary file, corrected to require both the download invocation and the file creation together (previously either alone would fire) and moved to the process_creation logsource since the primary signal is the EXECVE-typed download command. (Retargeted to the process_creation auditd telemetry that actually captures this techniques behavior; see logsource below.) Tune using: ToolName, DownloadExtension.'
references:
  - https://attack.mitre.org/techniques/T1105
author: Shahrukh Khan
date: 2026-05-17
license: MIT
tags:
  - attack.command-and-control
  - attack.t1105

logsource:
  category: process_creation
  product: linux

detection:
  selection_dl:
    type: EXECVE
    a0|endswith:
      - '/curl'
      - '/wget'
    a1|contains:
      - '-o'
      - '-O'
      - '--output'
  selection_create:
    type: PATH
    nametype: CREATE
    name|endswith:
      - '.sh'
      - '.elf'
      - '.bin'
      - '.py'

  condition: all of selection*

falsepositives:
  - Legitimate software installation and update scripts routinely download and write executable files via curl/wget; scope to unusual destination directories (/tmp, /dev/shm) and unsigned/unexpected file types.

level: high

T1105 Ingress Tool Transfer

title: T1105 Ingress Tool Transfer
id: d157327e-69d4-4acf-9e88-2a44203cea9b
description: 'Detect Ingress Tool Transfers via Behavioral Chain. (Retargeted to the file_event macOS unified-log telemetry that actually captures this techniques behavior; see logsource below.) Tune using: DirectoryTargeted, ProcessPath.'
references:
  - https://attack.mitre.org/techniques/T1105
author: Shahrukh Khan
date: 2026-01-18
license: MIT
tags:
  - attack.command-and-control
  - attack.t1105

logsource:
  category: file_event
  product: macos

detection:
  selection:
    TargetFilename|contains:
      - '/tmp/'
      - '/private/tmp/'
    TargetFilename|endswith:
      - '.sh'
      - '.py'
      - '.command'
    Image|endswith:
      - '/curl'
      - '/osascript'

  condition: selection

falsepositives:
  - Developers downloading and staging scripts in temp directories for legitimate testing.

level: high

T1105 Ingress Tool Transfer

title: T1105 Ingress Tool Transfer
id: dda16fd9-f641-4ee8-be19-84893893ed51
description: 'Detect Ingress Tool Transfers via Behavioral Chain. (Data Component: Network Traffic Flow; baseline tier: fallback.) All three sub-selections (curl, wget, scp) now require an argument-level indicator of an actual remote transfer -- a URL/protocol scheme for curl and wget, or a remote host:path target for scp -- rather than a bare binary-name match. Tune using: PayloadVolumeThreshold, ProtocolUsed.'
references:
  - https://attack.mitre.org/techniques/T1105
author: Shahrukh Khan
date: 2026-02-08
license: MIT
tags:
  - attack.command-and-control
  - attack.t1105

logsource:
  category: process_creation
  product: linux
  service: auditd

detection:
  selection_curl:
    type: EXECVE
    a0|endswith: '/curl'
    a1|contains:
      - 'http://'
      - 'https://'
  selection_wget:
    type: EXECVE
    a0|endswith: '/wget'
  selection_wget_url:
    - a1|contains:
        - 'http://'
        - 'https://'
        - 'ftp://'
    - a2|contains:
        - 'http://'
        - 'https://'
        - 'ftp://'
    - a3|contains:
        - 'http://'
        - 'https://'
        - 'ftp://'
  selection_scp:
    type: EXECVE
    a0|endswith: '/scp'
  selection_scp_remote:
    - a1|re: '^[^:\\s]+:[^:\\s]'
    - a2|re: '^[^:\\s]+:[^:\\s]'

  condition: selection_curl or (selection_wget and selection_wget_url) or (selection_scp and selection_scp_remote)

falsepositives:
  - This rule was retargeted from file_event to process_creation because auditd captures the download command via EXECVE rather than the resulting file write; package managers, update scripts, and developers legitimately fetch remote files with curl, wget, or scp, so this will still fire on routine automation -- allowlist known CI/config-management hosts and paths as needed.

level: medium

T1105 Ingress Tool Transfer

title: T1105 Ingress Tool Transfer
id: 6384b518-70e8-42a5-9c3b-f2fb614a550b
description: 'Detect Ingress Tool Transfers via Behavioral Chain. (Retargeted to the process_creation ESXi telemetry that actually captures this techniques behavior; see logsource below.) Tune using: ToolName, DatastorePath.'
references:
  - https://attack.mitre.org/techniques/T1105
author: Shahrukh Khan
date: 2026-04-02
license: MIT
tags:
  - attack.command-and-control
  - attack.t1105

logsource:
  category: process_creation
  product: esxi
  service: shell

detection:
  selection_transfer:
    CommandLine|contains:
      - 'wget '
      - 'curl '
      - 'tftp '
      - 'scp '
  selection_dest:
    CommandLine|contains:
      - '/tmp/'
      - '/vmfs/volumes/'

  condition: selection_transfer and selection_dest

falsepositives:
  - Administrators intentionally staging patches, drivers, or diagnostic tools into a datastore path or /tmp during authorized maintenance.

level: high

Explore