Detection rules › Sigma

Silence.EDA Detection

Status
test
Severity
critical
Log source
product windows, category ps_script
Author
Alina Stepchenkova, Group-IB, oscd.community
Source
github.com/SigmaHQ/sigma

Detects Silence EmpireDNSAgent as described in the Group-IP report

MITRE ATT&CK coverage

Event coverage

Rule body yaml

title: Silence.EDA Detection
id: 3ceb2083-a27f-449a-be33-14ec1b7cc973
status: test
description: Detects Silence EmpireDNSAgent as described in the Group-IP report
references:
    - https://www.group-ib.com/resources/threat-research/silence_2.0.going_global.pdf
author: Alina Stepchenkova, Group-IB, oscd.community
date: 2019-11-01
modified: 2023-04-03
tags:
    - attack.execution
    - attack.t1059.001
    - attack.command-and-control
    - attack.t1071.004
    - attack.t1572
    - attack.impact
    - attack.t1529
    - attack.g0091
    - attack.s0363
logsource:
    product: windows
    category: ps_script
    definition: 'Requirements: Script Block Logging must be enabled'
detection:
    empire:
        # better to randomise the order
        ScriptBlockText|contains|all:
            - 'System.Diagnostics.Process'
            - 'Stop-Computer'
            - 'Restart-Computer'
            - 'Exception in execution'
            - '$cmdargs'
            - 'Close-Dnscat2Tunnel'
    dnscat:
        # better to randomise the order
        ScriptBlockText|contains|all:
            - 'set type=$LookupType`nserver'
            - '$Command | nslookup 2>&1 | Out-String'
            - 'New-RandomDNSField'
            - '[Convert]::ToString($SYNOptions, 16)'
            - '$Session.Dead = $True'
            - '$Session["Driver"] -eq'
    condition: empire and dnscat
falsepositives:
    - Unknown
level: critical

Stages and Predicates

Stage 0: condition

empire and dnscat

Stage 1: empire

empire:
    ScriptBlockText|contains|all:
        - 'System.Diagnostics.Process'
        - 'Stop-Computer'
        - 'Restart-Computer'
        - 'Exception in execution'
        - '$cmdargs'
        - 'Close-Dnscat2Tunnel'

Stage 2: dnscat

dnscat:
    ScriptBlockText|contains|all:
        - 'set type=$LookupType`nserver'
        - '$Command | nslookup 2>&1 | Out-String'
        - 'New-RandomDNSField'
        - '[Convert]::ToString($SYNOptions, 16)'
        - '$Session.Dead = $True'
        - '$Session["Driver"] -eq'

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
ScriptBlockTextmatch
  • $Command | nslookup 2>&1 | Out-String
  • $Session.Dead = $True
  • $Session["Driver"] -eq
  • $cmdargs
  • Close-Dnscat2Tunnel
  • Exception in execution
  • New-RandomDNSField
  • Restart-Computer
  • Stop-Computer
  • System.Diagnostics.Process
  • [Convert]::ToString($SYNOptions, 16)
  • set type=$LookupType`nserver