T1105
Ingress Tool Transfer
Adversaries may transfer tools or other files from an external system into a compromised environment. Tools may be pulled via the C2 channel or through alternate protocols using built-in OS utilities (certutil, bitsadmin, PowerShell Invoke-WebRequest, curl, wget, scp). Threat actors including HAFNIUM, Fox Kitten, and Cobalt Group have leveraged this technique to stage second-stage payloads, implants, and post-exploitation toolkits onto victim systems.
Microsoft Sentinel / Defender
kusto
let DownloadLolbins = dynamic(["certutil.exe", "bitsadmin.exe", "mshta.exe", "regsvr32.exe", "desktopimgdownldr.exe", "esentutl.exe", "expand.exe", "extrac32.exe", "finger.exe", "ftp.exe", "ieexec.exe", "makecab.exe", "mavinject.exe", "msiexec.exe", "replace.exe", "robocopy.exe", "wscript.exe", "xcopy.exe"]);
let SuspiciousExtensions = dynamic([".exe", ".dll", ".ps1", ".vbs", ".bat", ".cmd", ".hta", ".scr", ".bin", ".msi", ".jar"]);
let SuspiciousDownloadPaths = dynamic(["\\Temp\\", "\\AppData\\Local\\Temp\\", "\\AppData\\Roaming\\", "\\Users\\Public\\", "\\ProgramData\\", "\\Windows\\Temp\\"]);
// Branch 1: LOLBin download activity
let LolbinDownloads = DeviceProcessEvents
| where Timestamp > ago(24h)
| where FileName in~ (DownloadLolbins)
| where ProcessCommandLine has_any ("http://", "https://", "ftp://", "\\\\")
or (FileName =~ "certutil.exe" and ProcessCommandLine has_any ("-urlcache", "-decode", "-decodehex", "-verifyctl"))
or (FileName =~ "bitsadmin.exe" and ProcessCommandLine has_any ("/transfer", "/addfile", "/setnotifycmdline"))
or (FileName =~ "esentutl.exe" and ProcessCommandLine has "/cp")
or (FileName =~ "desktopimgdownldr.exe" and ProcessCommandLine has "--storagefile")
| extend DetectionSource = "LOLBin download"
| project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine,
InitiatingProcessFileName, InitiatingProcessCommandLine, DetectionSource;
// Branch 2: PowerShell / WScript download cradles (distinct from T1059.001 focus)
let PsDownloads = DeviceProcessEvents
| where Timestamp > ago(24h)
| where FileName in~ ("powershell.exe", "pwsh.exe", "wscript.exe", "cscript.exe")
| where ProcessCommandLine has_any (
"Invoke-WebRequest", "IWR ", "Start-BitsTransfer",
"Net.WebClient", "DownloadFile", "DownloadData",
"WebRequest.Create", "HttpClient", "OpenRead",
"wget ", "curl "
)
| where ProcessCommandLine has_any ("http://", "https://", "ftp://")
| extend DetectionSource = "PowerShell/script download cradle"
| project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine,
InitiatingProcessFileName, InitiatingProcessCommandLine, DetectionSource;
// Branch 3: Executable files created in suspicious paths following network activity
let ExecFilesInTempPaths = DeviceFileEvents
| where Timestamp > ago(24h)
| where ActionType =~ "FileCreated"
| where FolderPath has_any (SuspiciousDownloadPaths)
| where FileName has_any (SuspiciousExtensions)
| where InitiatingProcessFileName in~ (DownloadLolbins)
or InitiatingProcessFileName in~ ("powershell.exe", "pwsh.exe", "curl.exe", "wget.exe", "wscript.exe", "cscript.exe", "mshta.exe")
| extend DetectionSource = "Executable dropped in temp path by download utility"
| project Timestamp, DeviceName, InitiatingProcessAccountName as AccountName,
FileName, FolderPath, InitiatingProcessFileName,
InitiatingProcessCommandLine, DetectionSource;
// Union all branches
LolbinDownloads
| union PsDownloads
| union ExecFilesInTempPaths
| sort by Timestamp desc high severity
high confidence
Data Sources
Process: Process Creation Command: Command Execution File: File Creation Microsoft Defender for Endpoint
Required Tables
DeviceProcessEvents DeviceFileEvents
False Positives
- Software deployment tools (SCCM, Intune, Chocolatey, winget) using certutil or bitsadmin to stage installers into Temp directories
- IT administrators using certutil -urlcache or Invoke-WebRequest for legitimate patch management or inventory scripts
- Developer toolchains (npm, pip, gradle) spawning curl or wget to download build dependencies to temp locations
- Monitoring and backup agents (CrowdStrike, SolarWinds, Veeam) that periodically download update packages using BitsTransfer
- Security scanning tools that use built-in download utilities for OSINT enrichment or threat intel feed ingestion
Last updated: 2026-04-17 Research depth: deep
References (11)
- https://attack.mitre.org/techniques/T1105/
- https://lolbas-project.github.io/#t1105
- https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/certutil
- https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-transfer
- https://cloud.google.com/blog/topics/threat-intelligence/cosmicenergy-ot-malware-russian-response/
- https://www.trellix.com/blogs/research/beyond-file-search-a-novel-method/
- https://www.technologyreview.com/2013/08/21/83143/dropbox-and-similar-services-can-sync-malware/
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1105/T1105.md
- https://github.com/SigmaHQ/sigma/blob/master/rules/windows/process_creation/proc_creation_win_certutil_download.yml
- https://www.mandiant.com/resources/blog/hafnium-china-cyberespionage-exchange-server
- https://www.ptsecurity.com/upload/corporate/ww-en/analytics/Cobalt-Snatch-eng.pdf
Unlock Pro Content
Get the full detection package for T1105 including response playbook, investigation guide, and atomic red team tests.
Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance