T1608

Stage Capabilities

This detection identifies adversary activity consistent with staging capabilities on external infrastructure prior to targeting. Because T1608 is a pre-compromise technique conducted on adversary-controlled infrastructure, direct detection is not possible from victim telemetry alone. Instead, this detection focuses on the victim-side observable: endpoints or users connecting to known or suspected staging infrastructure and downloading executable artifacts. Detectable signals include connections to file-sharing platforms (Pastebin, transfer.sh, Discord CDN, GitHub raw), downloads of executable file types from these platforms, and use of living-off-the-land binaries (certutil, bitsadmin, curl) to retrieve staged payloads. Threat intelligence correlation against known staging domains and IPs supplements behavioral heuristics to surface high-confidence staging delivery events.

Microsoft Sentinel / Defender
kusto
let LookbackPeriod = 1d;
let SuspiciousStagingDomains = dynamic([
    "pastebin.com", "paste.ee", "pastecode.io", "pasteio.com",
    "transfer.sh", "filebin.net", "gofile.io", "temp.sh", "anonfiles.com",
    "raw.githubusercontent.com", "gist.githubusercontent.com",
    "dl.dropboxusercontent.com", "cdn.discordapp.com",
    "storage.googleapis.com", "s3.amazonaws.com"
]);
let ExecutableExtensions = dynamic(["exe", "dll", "ps1", "vbs", "hta", "bat", "cmd", "msi", "jar", "bin", "scr", "pif"]);
let LolBins = dynamic([
    "certutil.exe", "bitsadmin.exe", "curl.exe", "wget.exe",
    "powershell.exe", "pwsh.exe", "wscript.exe", "cscript.exe",
    "mshta.exe", "regsvr32.exe", "rundll32.exe", "msiexec.exe"
]);
DeviceNetworkEvents
| where TimeGenerated >= ago(LookbackPeriod)
| where ActionType in ("ConnectionSuccess", "HttpConnectionInspected")
| extend ParsedUrl = parse_url(RemoteUrl)
| extend HostDomain = tostring(ParsedUrl["Host"])
| extend FilePath = tostring(ParsedUrl["Path"])
| extend FileExt = tolower(extract(@"\.([a-zA-Z0-9]{2,4})(?:\?|#|$)", 1, FilePath))
| where HostDomain has_any (SuspiciousStagingDomains)
    and FileExt in (ExecutableExtensions)
| join kind=leftouter (
    DeviceFileEvents
    | where TimeGenerated >= ago(LookbackPeriod)
    | where ActionType == "FileCreated"
    | project DeviceId, FileCreatedTime = TimeGenerated, FileName, FolderPath,
        SHA256, FileSize, FileInitiatingProcessId = InitiatingProcessId
) on DeviceId, $left.InitiatingProcessId == $right.FileInitiatingProcessId
| extend RiskScore = case(
    HostDomain has "pastebin", 85,
    HostDomain has "paste", 80,
    HostDomain has "transfer.sh", 85,
    HostDomain has "anonfiles", 90,
    HostDomain has "gofile", 75,
    HostDomain has "temp.sh", 80,
    HostDomain has "discordapp", 60,
    HostDomain has "dropbox", 50,
    HostDomain has "raw.githubusercontent", 45,
    HostDomain has "storage.googleapis", 55,
    HostDomain has "s3.amazonaws", 50,
    55
)
| extend LolBinUsed = iff(InitiatingProcessFileName in~ (LolBins), true, false)
| extend AdjustedRisk = RiskScore + iff(LolBinUsed, 15, 0)
| where AdjustedRisk >= 45
| project TimeGenerated, DeviceName, DeviceId,
    StagingDomain = HostDomain,
    RemoteUrl, RemoteIP, FileExt,
    InitiatingProcessFileName, InitiatingProcessCommandLine,
    InitiatingProcessAccountName, InitiatingProcessAccountDomain,
    DroppedFile = FileName, DroppedFilePath = FolderPath, SHA256,
    LolBinUsed, AdjustedRisk
| order by AdjustedRisk desc, TimeGenerated desc
high severity medium confidence

Data Sources

Microsoft Defender for Endpoint

Required Tables

DeviceNetworkEvents DeviceFileEvents

False Positives

  • Developers legitimately downloading build artifacts, scripts, or tools from GitHub raw content or cloud storage during CI/CD workflows
  • IT administrators using certutil or curl to download approved software packages from cloud storage buckets
  • Security researchers or red teamers running authorized testing from internal systems that happen to pull tools from public staging platforms
  • Automated deployment pipelines or configuration management tools (Ansible, Chef, Puppet) that fetch scripts from blob storage

Unlock Pro Content

Get the full detection package for T1608 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections