Detection rules › Sigma

Testing Usage of Uncommonly Used Port

Status
test
Severity
medium
Log source
category ps_script, product windows
Author
frack113
Source
github.com/SigmaHQ/sigma

Adversaries may communicate using a protocol and port paring that are typically not associated. For example, HTTPS over port 8088(Citation: Symantec Elfin Mar 2019) or port 587(Citation: Fortinet Agent Tesla April 2018) as opposed to the traditional port 443.

Known false positives

  • Legitimate administrative script

MITRE ATT&CK coverage

TacticTechniques
Command & Control

Telemetry coverage

Rule body

title: Testing Usage of Uncommonly Used Port
id: adf876b3-f1f8-4aa9-a4e4-a64106feec06
status: test
description: |
    Adversaries may communicate using a protocol and port paring that are typically not associated.
    For example, HTTPS over port 8088(Citation: Symantec Elfin Mar 2019) or port 587(Citation: Fortinet Agent Tesla April 2018) as opposed to the traditional port 443.
references:
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1571/T1571.md#atomic-test-1---testing-usage-of-uncommonly-used-port-with-powershell
    - https://learn.microsoft.com/en-us/powershell/module/nettcpip/test-netconnection?view=windowsserver2022-ps
author: frack113
date: 2022-01-23
tags:
    - attack.command-and-control
    - attack.t1571
logsource:
    product: windows
    category: ps_script
    definition: 'Requirements: Script Block Logging must be enabled'
detection:
    selection:
        ScriptBlockText|contains|all:
            - Test-NetConnection
            - '-ComputerName '
            - '-port '
    filter:
        ScriptBlockText|contains:
            - ' 443 '
            - ' 80 '
    condition: selection and not filter
falsepositives:
    - Legitimate administrative script
level: medium

Stages and Predicates

Stage 0: condition

selection and not filter

Stage 1: selection

selection:
    ScriptBlockText|contains|all:
        - Test-NetConnection
        - '-ComputerName '
        - '-port '

Stage 2: not filter

filter:
    ScriptBlockText|contains:
        - ' 443 '
        - ' 80 '

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
ScriptBlockTextmatch 443 excludes:ScriptBlockText field:"ScriptBlockText" value:" 443 "
ScriptBlockTextmatch 80 excludes:ScriptBlockText field:"ScriptBlockText" value:" 80 "

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ScriptBlockTextmatch
  • -ComputerName corpus 3 (sigma 3)
  • -port
  • Test-NetConnection
field:"ScriptBlockText" kind:match