Ingress Tool Transfer
Process Create File — Transfer an attacker-controlled file from an external source to a target system under attacker control.
Detect
No entity field is fully attacker-invariant. The best achievable detection targets unexpected executables written to disk from a network-facing process, using variable victim-side fields and requiring behavioural baselining — inherently STP 3.
Detect file writes to sensitive locations where the writing process is a network-facing application. Combine file.path destination with process ancestry. Correlate with subsequent execution of the transferred file.
Mitigate
Egress/ingress filtering on protocols addresses specific mediums (STP 3). Application control preventing execution of newly-arrived files is a complementary STP 5 control.
d3f:NetworkTrafficFilteringNo STP 5 mitigation exists. Detection is the primary defensive lever.
Application allowlisting preventing execution of files written to user-writable locations is the highest-STP control — it acts on the downstream effect of the transfer.
Respond
A new artifact was created and may persist beyond this session. Delete it immediately. Check for related persistence entries, scheduled tasks, and outbound callbacks originating from it.
actor.processsrc_endpointfiled3f:ProcessTerminationd3f:FileEvictiond3f:NetworkIsolationOCSF event model▼
Event class: Network File Activity (1008)
· activity_id: Create
%%{init: {"theme": "dark", "themeVariables": {"edgeLabelBackground": "#18181b", "lineColor": "#52525b"}}}%%
graph TD
classDef attacker fill:#7c2d12,stroke:#ea580c,color:#fed7aa
classDef victim fill:#1e3a5f,stroke:#3b82f6,color:#bfdbfe
classDef postSuccess fill:#78350f,stroke:#d97706,color:#fde68a
classDef tainted fill:#18181b,stroke:#52525b,color:#a1a1aa
EVENT(["Network File Activity\n· Create"])
actor_process["Transfer Process\nactor.process\nd3f:Process"]:::attacker
src_endpoint["C2 / Staging Server\nsrc_endpoint\nd3f:Host"]:::attacker
transferred_file["Transferred File\nfile\nd3f:ExecutableFile"]:::attacker
device["Host\ndevice\nd3f:Host\n⚠ tainted"]:::tainted
EVENT --> actor_process
EVENT --> src_endpoint
EVENT --> transferred_file
EVENT --> device
actor_process -.->|"creates"| transferred_fileactor.process·d3f:Processactor.process.file.path | attacker_controlled | Transfer tool binary — Execution Medium, attacker-chosen |
d3f:ProcessTerminationsrc_endpoint·d3f:Hostsrc_endpoint.ip | attacker_controlled | Source IP — attacker-controlled, rotated per campaign |
d3f:NetworkTrafficFilteringfile·d3f:ExecutableFilefile.path | attacker_controlled | Destination path — attacker-chosen within writable locations |
file.hash | attacker_controlled | File hash — attacker-controlled, changes with each build |
file.name | attacker_controlled | File name — attacker-chosen, trivially renamed |
d3f:FileEvictiondevice·d3f:Hostd3f:NetworkIsolationDefinitional Sigma rule▼
Broad by design — defines the technique, not an operational alert. Gate on variable or attacker-controlled field conditions to narrow for production use.
title: Ingress Tool Transfer (T1105)
status: experimental
description: >
Definitional rule — broad by design. Defines the technique independent of
medium, tool, or attacker-controlled variables. Narrow with variable and
attacker-controlled field conditions for operational use.
logsource:
product: ocsf
category: Network File Activity (1008)
detection:
selection:
activity_id: 'Create'
condition: selectionExecution Medium–scoped detectionSTP 3 ceiling▼
Sample rules — not canonical definitions. Each constrains detection to a specific Execution Medium and has a hard STP 3 ceiling. The attacker switches Execution Medium; the rule misses. Compare with the definitional rule above.
Gating on known download-tool names (curl, wget, Invoke-WebRequest) has a hard STP 3 ceiling. Evaded by using a custom binary, renaming the tool, or switching to SMB, FTP, or any other transfer Execution Medium.
title: Ingress Tool Transfer — HTTP/HTTPS medium (sample)
status: experimental
description: >
Sample — STP 3 ceiling. Detects file creation by common download utilities
over HTTP or HTTPS. Evaded by using a custom binary or switching to any other
Execution Medium.
logsource:
product: ocsf
category: Network File Activity (1008)
detection:
selection:
activity_id: 'Create'
protocol_name:
- 'HTTP'
- 'HTTPS'
actor.process.file.name:
- 'curl.exe'
- 'wget.exe'
- 'powershell.exe'
- 'certutil.exe'
- 'bitsadmin.exe'
condition: selectionSeen in the wild1report▼
GammaLoad downloads an AES-encrypted payload from GitHub via bitsadmin.exe and writes it to an NTFS Alternate Data Stream — tool staging as a prerequisite to the persistence technique.