Detect Network Service Discovery in Sumo Logic CSE
Adversaries may attempt to get a listing of services running on remote hosts and local network infrastructure devices, including those that may be vulnerable to remote software exploitation. Common methods include port, vulnerability, and wordlist scans using tools such as nmap, masscan, zmap, CrackMapExec, and custom port scanners. Within cloud environments, adversaries may discover services on other cloud hosts or connected on-premises systems. On macOS, adversaries may leverage Bonjour/mDNSResponder to discover advertised services. Threat actors including Volt Typhoon, APT39, BlackTech, menuPass, FIN13, and ransomware operators like BlackByte routinely perform network service discovery as part of internal reconnaissance before lateral movement.
MITRE ATT&CK
- Tactic
- Discovery
- Technique
- T1046 Network Service Discovery
- Canonical reference
- https://attack.mitre.org/techniques/T1046/
Sumo Detection Query
(_sourceCategory=*Windows/Sysmon* OR _sourceCategory=*WinEventLog/Security* OR _sourceCategory=*windows/security*)
| where EventID in ("1", "4688")
| parse field=CommandLine "*" as cmdline nodrop
| parse field=Image "*" as image_path nodrop
| parse field=NewProcessName "*" as image_path2 nodrop
| eval image_path = if(isNull(image_path), image_path2, image_path)
| eval cmdline_lower = toLowerCase(cmdline)
| eval image_lower = toLowerCase(image_path)
/* Flag known scanning tool binaries */
| eval known_scanner = if(
matches(image_lower, ".*(nmap\.exe|masscan\.exe|zmap\.exe|netscan\.exe|tcping\.exe|superscan\.exe|nbtscan\.exe|angryipscan\.exe|winegddrop\.exe|rustscan|netdiscover|unicornscan).*"),
1, 0
)
/* Flag native LOLBin scanning in PowerShell/cmd */
| eval native_scan = if(
matches(image_lower, ".*(powershell\.exe|pwsh\.exe|cmd\.exe).*")
AND matches(cmdline_lower, ".*(test-netconnection|tnc\s|net\.sockets|1\.\.254|1\.\.65535|netstat\s+-a|arp\s+-a|net\s+view|net\s+use\\\\|route\s+print).*"),
1, 0
)
/* Flag port range or scan-flag arguments */
| eval port_range = if(
matches(cmdline_lower, ".*(-p\s+|--top-ports|--ports|/p:|--rate).*"),
1, 0
)
/* Flag service version or aggressive scan flags */
| eval service_version = if(
matches(cmdline_lower, ".*(-sv|-ss|-st|-su|-sn|--script|--open|-pn).*"),
1, 0
)
| eval suspicion_score = known_scanner + native_scan + port_range + service_version
| where suspicion_score > 0
| eval detection_type = if(known_scanner = 1, "KnownScanningTool",
if(native_scan = 1, "NativeToolScanning", "PortScanPattern")
)
| eval user = if(isNull(User), SubjectUserName, User)
| eval parent_image = if(isNull(ParentImage), ParentProcessName, ParentImage)
/* Exclude machine accounts */
| where !matches(user, ".*\$")
| fields _time, host, user, image_path, cmdline, parent_image,
known_scanner, native_scan, port_range, service_version,
suspicion_score, detection_type
| sort by _time desc Detects T1046 network service discovery by parsing Sysmon Event ID 1 and Windows Security Event ID 4688 process creation records for known scanning tool binaries (nmap, masscan, zmap, rustscan, tcping) and native LOLBin scanning patterns in PowerShell and cmd.exe including TCP socket loops, Test-NetConnection, arp, and netstat. Assigns a suspicion score based on the number of risk indicators matched to support triage prioritisation.
Data Sources
Required Tables
False Positives & Tuning
- Security tooling such as Tenable Nessus, Rapid7 InsightVM, or Qualys agents may spawn nmap or custom port scanners as part of authenticated credentialed network scan jobs
- DevOps pipelines using PowerShell Test-NetConnection or custom TCP health-check scripts to verify dependent service availability across microservice environments before deployment gates
- IT helpdesk staff troubleshooting network connectivity issues using built-in Windows tools such as netstat, arp, and route print from interactive desktop sessions
Other platforms for T1046
Testing Methodology
Validate this detection against 5 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1nmap SYN Scan Against Local Subnet
Expected signal: Sysmon Event ID 1: Process Create with Image ending in nmap.exe, CommandLine containing '-sV -p' and '127.0.0.1'. Sysmon Event ID 3: Multiple network connection events from nmap.exe to 127.0.0.1 on specified ports. Sysmon Event ID 11: File created at %TEMP%\df00tech-nmap-test.txt. Security Event ID 4688 (if process command-line auditing enabled) showing nmap.exe process creation.
- Test 2PowerShell TCP Port Scan via .NET Socket Loop
Expected signal: Sysmon Event ID 1: Process Create for powershell.exe with CommandLine containing 'Net.Sockets.TcpClient' and 'Connect'. Sysmon Event ID 3: Multiple network connection events from powershell.exe to 127.0.0.1 on each tested port. PowerShell ScriptBlock Log Event ID 4104 capturing the full socket enumeration script.
- Test 3PowerShell Host Sweep with Test-NetConnection
Expected signal: Sysmon Event ID 1: Process Create for powershell.exe with CommandLine containing '1..5', 'Test-NetConnection', and '-Port 80'. Sysmon Event ID 3: Multiple network connection attempts from powershell.exe to 127.0.0.1 through 127.0.0.5 on port 80. PowerShell ScriptBlock Log Event ID 4104 showing the full ForEach-Object loop.
- Test 4NBTScan NetBIOS Network Discovery
Expected signal: Sysmon Event ID 1: Process Create with Image ending in nbtscan.exe and CommandLine containing a target IP range. Sysmon Event ID 3: UDP connection attempts from nbtscan.exe to target IP on port 137 (NetBIOS Name Service). Security Event ID 4688 with nbtscan.exe process creation if command-line auditing is enabled.
- Test 5Netstat Service Enumeration via CMD
Expected signal: Sysmon Event ID 1: Process Create for cmd.exe with CommandLine containing 'netstat -ano' and 'findstr LISTENING'. Sysmon Event ID 11: File created at %TEMP%\df00tech-netstat.txt containing listening service output. Security Event ID 4688 for cmd.exe process if command-line auditing is enabled.
References (12)
- https://attack.mitre.org/techniques/T1046/
- https://nmap.org/book/man.html
- https://us-cert.cisa.gov/ncas/analysis-reports/ar21-126a
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa24-038a
- https://www.fireeye.com/blog/threat-research/2019/01/apt39-iranian-cyber-espionage-group-focused-on-personal-information.html
- https://learn.microsoft.com/en-us/defender-endpoint/advanced-hunting-devicenetworkevents-table
- https://learn.microsoft.com/en-us/defender-endpoint/advanced-hunting-deviceprocessevents-table
- https://docs.splunk.com/Documentation/SplunkCloud/latest/SearchReference/CommonStatsFunctions
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1046/T1046.md
- https://github.com/SigmaHQ/sigma/tree/master/rules/windows/process_creation
- https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/palmerworm-blacktech-espionage-apt
- https://unit42.paloaltonetworks.com/stately-taurus-toneshell-september-2023/
Unlock Pro Content
Get the full detection package for T1046 including response playbook, investigation guide, and atomic red team tests.