← Back to SOC feed Coverage →

anomalous-payload-delivered-from-iso-file

kql MEDIUM Azure-Sentinel
T1204.003
DeviceEventsDeviceProcessEvents
huntingmicrosoftofficial
This rule was pulled from an open-source repository and enriched with AI. Validate in a test environment before deploying to production.
View original rule at Azure-Sentinel →
Retrieved: 2026-05-20T11:00:00Z · Confidence: medium

Hunt Hypothesis

Adversaries may use ISO files as a delivery mechanism to execute malicious payloads by leveraging mounted ISOs to execute lnk files from non-C: drive locations. SOC teams should proactively hunt for this behavior in Azure Sentinel to identify potential lateral movement or payload delivery tactics that evade traditional detection methods.

KQL Query

DeviceEvents
| where Timestamp > ago(30d) 
| where ActionType == 'BrowserLaunchedToOpenUrl' 
| where RemoteUrl endswith ".lnk"
| where RemoteUrl !startswith "C:"
| project LNKLaunchTimestamp = Timestamp, DeviceName, RemoteUrl
| parse RemoteUrl with Drive '\\' *
| extend Drive= tostring(Drive)
| where isnotempty(Drive)
| join (
DeviceProcessEvents
| where Timestamp > ago(30d)
| where FolderPath !startswith "C:"
| parse FolderPath with Drive '\\' *
| project Drive= tostring(Drive), StartedProcessTimestamp = Timestamp, StartedProcessName = FileName, StartedProcessSHA1 = SHA1, StartedProcessCommandline = ProcessCommandLine, StartedProcessPath = FolderPath, DeviceName, StartedProcessParentName = InitiatingProcessFileName, StartedProcessParentCmdline = InitiatingProcessCommandLine, StartedParentProcessFolderPath = InitiatingProcessFolderPath, StartedProcessGrandParent = InitiatingProcessParentFileName, Timestamp
) on DeviceName, Drive
| where StartedProcessTimestamp between (LNKLaunchTimestamp ..(LNKLaunchTimestamp+1m))
| project-away Drive1, DeviceName1
| project-reorder LNKLaunchTimestamp, StartedProcessTimestamp, DeviceName, RemoteUrl, Drive, StartedProcessName, StartedProcessSHA1, StartedProcessPath,StartedProcessCommandline, StartedProcessParentName, StartedProcessParentCmdline, StartedParentProcessFolderPath, StartedProcessGrandParent, Timestamp

Analytic Rule Definition

id: 3539f855-611c-4787-b8a9-e3437f138805
name: anomalous-payload-delivered-from-iso-file
description: |
  This query looks for lnk file executions from other locations than C: -drive, which can relate to mounted ISO-files.
  Reference - https://threathunt.blog/detecting-a-payload-delivered-with-iso-files-using-mde/
requiredDataConnectors:
- connectorId: MicrosoftThreatProtection
  dataTypes:
  - DeviceProcessEvents
  - DeviceEvents
tactics:
  - Execution
relevantTechniques:
  -  T1204.003
query: |
  DeviceEvents
  | where Timestamp > ago(30d) 
  | where ActionType == 'BrowserLaunchedToOpenUrl' 
  | where RemoteUrl endswith ".lnk"
  | where RemoteUrl !startswith "C:"
  | project LNKLaunchTimestamp = Timestamp, DeviceName, RemoteUrl
  | parse RemoteUrl with Drive '\\' *
  | extend Drive= tostring(Drive)
  | where isnotempty(Drive)
  | join (
  DeviceProcessEvents
  | where Timestamp > ago(30d)
  | where FolderPath !startswith "C:"
  | parse FolderPath with Drive '\\' *
  | project Drive= tostring(Drive), StartedProcessTimestamp = Timestamp, StartedProcessName = FileName, StartedProcessSHA1 = SHA1, StartedProcessCommandline = ProcessCommandLine, StartedProcessPath = FolderPath, DeviceName, StartedProcessParentName = InitiatingProcessFileName, StartedProcessParentCmdline = InitiatingProcessCommandLine, StartedParentProcessFolderPath = InitiatingProcessFolderPath, StartedProcessGrandParent = InitiatingProcessParentFileName, Timestamp
  ) on DeviceName, Drive
  | where StartedProcessTimestamp between (LNKLaunchTimestamp ..(LNKLaunchTimestamp+1m))
  | project-away Drive1, DeviceName1
  | project-reorder LNKLaunchTimestamp, StartedProcessTimestamp, DeviceName, RemoteUrl, Drive, StartedProcessName, StartedProcessSHA1, StartedProcessPath,StartedProcessCommandline, StartedProcessParentName, StartedProcessParentCmdline, StartedParentProcessFolderPath, StartedProcessGrandParent, Timestamp

Required Data Sources

Sentinel TableNotes
DeviceEventsEnsure this data connector is enabled
DeviceProcessEventsEnsure this data connector is enabled

MITRE ATT&CK Context

References

False Positive Guidance

Original source: https://github.com/Azure/Azure-Sentinel/blob/main/Hunting Queries/Microsoft 365 Defender/Execution/anomalous-payload-delivered-from-iso-file.yaml