Skip to content

Siemphony is in beta and still being built. How a rule earns its badge.

Siemphony’s repertoire

Execution of a port or network service scanning utility

AN1057 is a rate analytic — it counts unique destination addresses and ports inside MITRE's TimeWindow and compares the result against ScanRateThreshold — and none of that survives into single-event Sigma. What is left, and all this rule claims, is that a scanning utility was launched on the host: it does not observe a scan, does not know whether one host or a whole /16 was probed, and is silent on scanning done from PowerShell sockets or from a renamed binary, because the selection anchors on the image name. MITRE's KnownScannerExeList knob is an allowlist of scanners IT is permitted to run; the list below is the authored inverse of it, restricted to binaries that do their own scanning rather than launchers that hand off to another process. The level is deliberately medium and not higher: in any estate that uses one of these for inventory this is a daily event, and treating it as an alert rather than a hunting lead is how the rule gets turned off. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0376, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full description

The detection

The 4 SIEM queries below are previews produced by Siemphony’s own translator, not pySigma, and none has been executed against a real backend — review before you deploy.

detection.yml

title: Execution of a port or network service scanning utilityid: 5161327d-a49b-49de-879f-5ff2a84b6170status: experimentaldescription: |  AN1057 is a rate analytic — it counts unique destination addresses and ports  inside MITRE's TimeWindow and compares the result against ScanRateThreshold —  and none of that survives into single-event Sigma. What is left, and all this  rule claims, is that a scanning utility was launched on the host: it does not  observe a scan, does not know whether one host or a whole /16 was probed, and  is silent on scanning done from PowerShell sockets or from a renamed binary,  because the selection anchors on the image name. MITRE's KnownScannerExeList  knob is an allowlist of scanners IT is permitted to run; the list below is  the authored inverse of it, restricted to binaries that do their own scanning  rather than launchers that hand off to another process. The level is  deliberately medium and not higher: in any estate that uses one of these for  inventory this is a daily event, and treating it as an alert rather than a  hunting lead is how the rule gets turned off.  UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0376, not hand-written and not tested by its author. Any lab result is on this rule's own page.references:  - https://attack.mitre.org/techniques/T1046  - https://attack.mitre.org/detectionstrategies/DET0376author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-16tags:  - attack.discovery  - attack.t1046logsource:  category: process_creation  product: windowsdetection:  selection:    Image|endswith:      - '\nmap.exe'      - '\ncat.exe'      - '\masscan.exe'      - '\rustscan.exe'      - '\naabu.exe'      - '\fscan.exe'      - '\netscan.exe'      - '\nbtscan.exe'      - '\advanced_ip_scanner.exe'      - '\advanced_port_scanner.exe'      - '\portqry.exe'  condition: selectionfalsepositives:  - "Sanctioned inventory and vulnerability scanning. Advanced IP Scanner and the SoftPerfect scanner are ordinary helpdesk tools in many organisations, and a vulnerability-management agent that shells out to nmap matches on every scheduled sweep. This is precisely the noise MITRE parks in the KnownScannerExeList knob, and that knob has to be populated with the local truth before this rule is worth routing to an analyst."  - "Authorised penetration tests and red-team engagements, which produce the exact process this rule selects and are indistinguishable from an intruder at the process-creation event."  - "Network engineers using ncat or portqry interactively to check whether one service on one host is reachable. That is a single connection rather than a scan, but the process event is identical because this rule never sees the connections at all."  - "Portable copies of these tools bundled inside vendor support packages and diagnostic collectors, which run them once from a temporary directory during a support case."level: medium

Sentinel · KQL

Run this as a search.

DeviceProcessEvents| where (FolderPath endswith "\\nmap.exe" or FolderPath endswith "\\ncat.exe" or FolderPath endswith "\\masscan.exe" or FolderPath endswith "\\rustscan.exe" or FolderPath endswith "\\naabu.exe" or FolderPath endswith "\\fscan.exe" or FolderPath endswith "\\netscan.exe" or FolderPath endswith "\\nbtscan.exe" or FolderPath endswith "\\advanced_ip_scanner.exe" or FolderPath endswith "\\advanced_port_scanner.exe" or FolderPath endswith "\\portqry.exe")

Splunk · SPL

Run this as a search.

index=* (Image="*\\nmap.exe" OR Image="*\\ncat.exe" OR Image="*\\masscan.exe" OR Image="*\\rustscan.exe" OR Image="*\\naabu.exe" OR Image="*\\fscan.exe" OR Image="*\\netscan.exe" OR Image="*\\nbtscan.exe" OR Image="*\\advanced_ip_scanner.exe" OR Image="*\\advanced_port_scanner.exe" OR Image="*\\portqry.exe")

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE (TO_LOWER(process.executable) LIKE "*\\\\nmap.exe" OR TO_LOWER(process.executable) LIKE "*\\\\ncat.exe" OR TO_LOWER(process.executable) LIKE "*\\\\masscan.exe" OR TO_LOWER(process.executable) LIKE "*\\\\rustscan.exe" OR TO_LOWER(process.executable) LIKE "*\\\\naabu.exe" OR TO_LOWER(process.executable) LIKE "*\\\\fscan.exe" OR TO_LOWER(process.executable) LIKE "*\\\\netscan.exe" OR TO_LOWER(process.executable) LIKE "*\\\\nbtscan.exe" OR TO_LOWER(process.executable) LIKE "*\\\\advanced_ip_scanner.exe" OR TO_LOWER(process.executable) LIKE "*\\\\advanced_port_scanner.exe" OR TO_LOWER(process.executable) LIKE "*\\\\portqry.exe")

Wazuh · XML rule

Deploy to your manager — this is a rule, not a search.

<group name="sigma,windows,process_creation,">  <!-- Rule ids must be unique on your manager; 100000+ is the user range. -->  <rule id="100000" level="7">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="Image" type="pcre2">(?i)(\\nmap\.exe$|\\ncat\.exe$|\\masscan\.exe$|\\rustscan\.exe$|\\naabu\.exe$|\\fscan\.exe$|\\netscan\.exe$|\\nbtscan\.exe$|\\advanced_ip_scanner\.exe$|\\advanced_port_scanner\.exe$|\\portqry\.exe$)</field>    <description>Execution of a port or network service scanning utility</description>    <mitre>      <id>T1046</id>    </mitre>  </rule></group>

Verdicts · reactions · comments

Community

Verdicts from engineers who actually deployed it, and the conversation around it.

Log in to react
Not yet reported on

Nobody has run this in a real environment and said what happened.

Verdicts from engineers who deployed it

0 cast

No verdicts reported yet. The first one is worth more than the tenth — say what you ran it against.

Log in to report a verdict.

Log in to join the discussion.

No comments yet. Someone who deploys this will have something to say about it.