T1680

Local Storage Discovery

This detection identifies adversary attempts to enumerate local drives, disks, volumes, and storage attributes across Windows, Linux, macOS, and ESXi platforms. Attackers use tools such as wmic logicaldisk, Get-PSDrive, lsblk, fdisk, diskutil, esxcli, and cloud CLI commands to gather disk size, free space, volume serial numbers, and partition layouts. Storage discovery is a critical precursor to ransomware encryption (to identify all encryptable volumes), lateral movement targeting network shares, and direct volume access attacks. Groups like TeamTNT and malware families including Cuba ransomware and ZeroCleare have demonstrated this behavior in production incidents.

Microsoft Sentinel / Defender
kusto
let StorageDiscoveryPatterns = dynamic(["logicaldisk", "diskdrive", "win32_volume", "win32_logicaldisk"]);
let PSStorageCmdlets = dynamic(["Get-PSDrive", "Get-Disk", "Get-Volume", "Get-Partition", "Get-PhysicalDisk", "Get-StoragePool"]);
let LinuxStorageCmds = dynamic(["lsblk", "fdisk", "parted", "lshw", "blkid", "lvdisplay", "pvdisplay", "vgdisplay"]);
let CloudStorageCmds = dynamic(["describe-volumes", "describe-instances", "disks list", "disk list"]);
DeviceProcessEvents
| where TimeGenerated > ago(1h)
| where (
    (FileName =~ "wmic.exe" and ProcessCommandLine has_any (StorageDiscoveryPatterns))
    or (FileName =~ "wmic.exe" and ProcessCommandLine has "volume" and ProcessCommandLine has "get")
    or (FileName in~ ("powershell.exe", "pwsh.exe") and ProcessCommandLine has_any (PSStorageCmdlets))
    or (FileName =~ "diskpart.exe" and ProcessCommandLine has_any ("list disk", "list volume", "list partition"))
    or (FileName =~ "fsutil.exe" and ProcessCommandLine has "fsinfo")
    or (FileName =~ "mountvol.exe")
    or (FileName in~ ("lsblk", "fdisk", "parted", "lshw", "blkid", "df") and ProcessCommandLine has_any (LinuxStorageCmds))
    or (FileName =~ "diskutil" and (ProcessCommandLine has "list" or ProcessCommandLine has "info"))
    or (FileName =~ "system_profiler" and ProcessCommandLine has "SPStorageDataType")
    or (FileName =~ "esxcli" and ProcessCommandLine has "storage")
    or (FileName in~ ("aws", "gcloud", "az") and ProcessCommandLine has_any (CloudStorageCmds))
)
| where InitiatingProcessFileName !in~ ("msiexec.exe", "MsMpEng.exe", "svchost.exe", "services.exe")
| project TimeGenerated, DeviceName, AccountName, AccountDomain,
    FileName, ProcessCommandLine, FolderPath,
    InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessAccountName,
    ProcessId, InitiatingProcessId
| extend RiskIndicator = case(
    ProcessCommandLine has "wmic" and ProcessCommandLine has "logicaldisk", "WMIC LogicalDisk Enumeration",
    ProcessCommandLine has_any (PSStorageCmdlets), "PowerShell Storage Cmdlet",
    ProcessCommandLine has "diskpart", "DiskPart Storage Enumeration",
    ProcessCommandLine has "esxcli" and ProcessCommandLine has "storage", "ESXi Storage Enumeration",
    ProcessCommandLine has_any (CloudStorageCmds), "Cloud Volume Enumeration",
    "Generic Storage Discovery"
)
| order by TimeGenerated desc
medium severity medium confidence

Data Sources

Microsoft Defender for Endpoint

Required Tables

DeviceProcessEvents

False Positives

  • Backup agents (Veeam, Commvault, Veritas) routinely enumerate disk volumes before backup operations
  • System administration scripts and IT automation tools (Ansible, Chef, Puppet) checking disk capacity for health monitoring
  • Windows disk cleanup utilities and OS maintenance tasks invoking fsutil or wmic for storage information
  • Cloud management platforms and orchestration tools (Terraform, Packer) enumerating volumes during provisioning
  • Storage monitoring agents and SIEM forwarders checking disk free space for alerting thresholds

Unlock Pro Content

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

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections