ATT&CK coverage › Technique

Ingress Tool Transfer T1105

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, adversaries may also transfer/spread tools between victim devices within a compromised environment (i.e. Lateral Tool Transfer).

Events covered

14 catalog events are tagged with this technique by at least one rule.

ProviderEvent IDTitle
Sysmon1Process creation
Sysmon3Network connection
Sysmon7Image loaded
Sysmon11FileCreate
Sysmon13RegistryEvent (Value Set)
Sysmon15FileCreateStreamHash
Sysmon17PipeEvent (Pipe Created)
Sysmon18PipeEvent (Pipe Connected)
Sysmon22DNSEvent (DNS query)
Security-Auditing4688A new process has been created.
Security-Auditing5379Credential Manager credentials were read.
Defender-DeviceEvents9007006Named pipe event
Defender-DeviceProcessEvents9001000Process activity (any)
PowerShell4104Creating Scriptblock text (MessageNumber of MessageTotal).

Authoring guide

Patterns shared across the 69 rules above: which fields they filter on, what specific values they look for, and what they exclude. Field names are normalized across vendors so Sigma's Image, Elastic's process.name, and Splunk's process_name collapse into one row. Each rule contributes at most once per row.

Fields filtered most (27 distinct)

The fields most rules look at when detecting this technique. The How column shows the operators authors use (eq, wildcard, regex_match, match) and how often each appears. Sample values are concrete examples to start from, not an exhaustive list.

FieldRulesHowSample values
Image48ends_with 43, match 5, starts_with 3, eq 2, in 1\bitsadmin.exe, \certutil.exe, \powershell.exe, \pwsh.exe, \powershell_ise.exe
CommandLine42match 42, ends_with 2, regex_match 1http, https://, http://, --headless, ://
OriginalFileName21eq 21bitsadmin.exe, PowerShell.EXE, pwsh.dll, CertUtil.exe, CertOC.exe
Initiated7eq 7true
TargetFilename6match 3, ends_with 2, eq 1.ps1, .exe, \Music\, \Desktop\, \AppData\Local\
EventID5eq 54104, 15, 7, 22
DestinationHostname4ends_with 3, match 1mega.co.nz, paste.ee, pixeldrain.com, transfer.sh, api.dropboxapi.com
FileName3eq 3bitsadmin.exe, certutil.exe, wscript.exe
ParentImage3ends_with 2, eq 1\notepad++.exe, \desktopimgdownldr.exe, C:\Program Files\Git\usr\bin\sh.exe
ScriptBlockText3in 2, match 1, regex_match 1, eq 100024500-0000-0000-C000-000000000046, 88d96a0b-f192-11d4-a65f-0040963251e5, F6D90F16-9C73-11D3-B32E-00C04F990BB4, "(\"?(https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\..., "*https:*"
dest_ip2cidr_match 210.0.0.0/8, ::1/128, fe80::/10, 20.0.0.0/11
PipeName1match 1badPipeNames
FileOperation1eq 1File created
ActionType1eq 1NamedPipeEvent
SHA11eq 1CertUtilPESha1, CertUtilFESha1

Top indicator values (563 distinct)

Specific (field, operator, value) combinations the rules check for, ranked by how many rules under this technique use each one. The Corpus reach column counts how many rules across the entire catalog (any technique) check the same combination. High numbers point to widely-used indicators that are likely noisy on their own; combine them with another condition for useful signal. Blank means the combination is specific to rules under this technique.

FieldKindValueRules (here)Corpus reach
CommandLinematchhttp1231
Initiatedeqtrue740
CommandLinematchcurl 58
CommandLinematch /create 514
Imageends_with\bitsadmin.exe523
Imageends_with\certutil.exe534
Imageends_with\msedge.exe422
Imageends_with\vivaldi.exe419
Imageends_with\brave.exe420
Imageends_with\opera.exe421
CommandLinematch /addfile 45
OriginalFileNameeqbitsadmin.exe49
CommandLinematch /transfer 45
Imageends_with\chrome.exe311
CommandLinematch%AppData%37
Imageends_with\certoc.exe310
CommandLinematch%tmp%39
CommandLinematch\Desktop\311
Imageends_with\powershell.exe3143
Imageends_with\powershell_ise.exe327

Common exclusions (24 distinct)

Field/operator/value combinations that rules under this technique routinely exclude (top-level not() clauses). These are the false-positive paths the community has learned to filter out. A new rule that ignores the high-count entries here will likely fire on the same noisy paths.

FieldKindValueRules excluding
All_Traffic.dest_ipin"192.0.0.10/32"1
All_Traffic.dest_ipin"198.51.100.0/24"1
All_Traffic.dest_ipin"192.168.0.0/16"1
All_Traffic.dest_ipin"192.0.0.170/32"1
All_Traffic.dest_ipin"192.52.193.0/24"1
All_Traffic.dest_ipin"192.0.0.0/29"1
All_Traffic.dest_ipin"100.64.0.0/10"1
All_Traffic.dest_ipin"127.0.0.0/8"1
All_Traffic.dest_ipin"192.0.0.0/24"1
All_Traffic.dest_ipin"240.0.0.0/4"1
All_Traffic.dest_ipin"10.0.0.0/8"1
All_Traffic.dest_ipin"203.0.113.0/24"1
All_Traffic.dest_ipin"172.16.0.0/12"1
All_Traffic.dest_ipin"192.0.2.0/24"1
All_Traffic.dest_ipin"192.0.0.8/32"1

Rules under this technique

Every rule in the catalog tagged with this technique, grouped by vendor. Click a rule title for its full predicates, exclusions, and indicators.

Sigma 58 rules

Splunk 6 rules

Kusto Query Language 5 rules