T1590

Gather Victim Network Information

This detection identifies adversary reconnaissance activity targeting victim network information, including IP ranges, domain names, DNS records, network topology, and security appliance configurations. Because T1590 is a PRE-ATT&CK technique, direct detection within the victim environment is limited; however, second-order indicators are observable when adversaries deploy internal network enumeration tools post-compromise (as seen with Volt Typhoon, Indrik Spider, and HAFNIUM), attempt DNS zone transfers, execute WHOIS or DNS enumeration utilities, or run network discovery tools such as Lansweeper and Advanced IP Scanner. Detection focuses on process execution of known network reconnaissance binaries, DNS zone transfer attempts, and anomalous internal network topology queries that suggest an adversary mapping the environment for lateral movement or targeting.

Microsoft Sentinel / Defender
kusto
let NetworkReconTools = dynamic(["nmap", "masscan", "zmap", "lansweeper", "angryip", "fping", "nbtscan", "netdiscover", "unicornscan", "dnsenum", "dnsrecon", "fierce", "sublist3r", "amass", "theharvester", "advanced_port_scanner", "advanced ip scanner"]);
let DnsReconPatterns = dynamic(["axfr", "AXFR", "zone-transfer", "zone transfer", "-t ANY", "ls -d"]);
let NetworkCmdRecon = dynamic(["ipconfig /all", "nslookup", "arp -a", "netstat -ano", "route print", "net view", "nltest /dclist", "nltest /domain_trusts"]);
DeviceProcessEvents
| where TimeGenerated > ago(1d)
| where (
    FileName has_any (NetworkReconTools)
    or ProcessVersionInfoOriginalFileName has_any (NetworkReconTools)
    or ProcessCommandLine has_any (NetworkReconTools)
    or ProcessCommandLine has_any (DnsReconPatterns)
    or (FileName in~ ("nslookup.exe", "dig.exe", "host.exe") and ProcessCommandLine has_any (DnsReconPatterns))
    or (FileName in~ ("nltest.exe") and ProcessCommandLine has_any ("/dclist", "/domain_trusts", "/trusted_domains", "/dsgetdc"))
)
| extend ReconCategory = case(
    ProcessCommandLine has_any ("nmap", "masscan", "zmap", "fping", "nbtscan"), "PortHostScanning",
    ProcessCommandLine has_any ("dnsenum", "dnsrecon", "fierce", "axfr", "AXFR", "zone-transfer"), "DNSEnumeration",
    ProcessCommandLine has_any ("lansweeper", "advanced_port_scanner", "angryip", "netdiscover"), "NetworkDiscoveryTool",
    ProcessCommandLine has_any ("/dclist", "/domain_trusts", "/trusted_domains"), "DomainTrustEnumeration",
    "GeneralNetworkRecon")
| extend SuspicionScore = case(
    ReconCategory == "PortHostScanning", 90,
    ReconCategory == "DNSEnumeration", 85,
    ReconCategory == "NetworkDiscoveryTool", 80,
    ReconCategory == "DomainTrustEnumeration", 70,
    50)
| project TimeGenerated, DeviceName, AccountDomain, AccountName, FileName, FolderPath, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine, ReconCategory, SuspicionScore
| order by SuspicionScore desc, TimeGenerated desc
medium severity medium confidence

Data Sources

Microsoft Defender for Endpoint

Required Tables

DeviceProcessEvents

False Positives

  • Legitimate network administrators running nmap or Advanced IP Scanner for asset inventory or troubleshooting
  • IT operations teams using Lansweeper or similar tools for scheduled network discovery and CMDB updates
  • DNS administrators performing authoritative zone transfers between primaries and secondaries as part of normal operations
  • Security teams running authorized vulnerability scans or penetration tests using tools like nmap or masscan
  • nltest calls from legitimate domain join operations, group policy processing, or identity management tools

Unlock Pro Content

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

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections