Detection rules › Sigma

Suspicious Cobalt Strike DNS Beaconing - DNS Client

Status
test
Severity
critical
Log source
product windows, service dns-client
Author
Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects a program that invoked suspicious DNS queries known from Cobalt Strike beacons

MITRE ATT&CK coverage

TacticTechniques
Command & ControlT1071.004 Application Layer Protocol: DNS

Event coverage

Rule body yaml

title: Suspicious Cobalt Strike DNS Beaconing - DNS Client
id: 0d18728b-f5bf-4381-9dcf-915539fff6c2
related:
    - id: f356a9c4-effd-4608-bbf8-408afd5cd006
      type: similar
status: test
description: Detects a program that invoked suspicious DNS queries known from Cobalt Strike beacons
references:
    - https://www.icebrg.io/blog/footprints-of-fin7-tracking-actor-patterns
    - https://www.sekoia.io/en/hunting-and-detecting-cobalt-strike/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-01-16
tags:
    - attack.t1071.004
    - attack.command-and-control
logsource:
    product: windows
    service: dns-client
    definition: 'Requirements: Microsoft-Windows-DNS Client Events/Operational Event Log must be enabled/collected in order to receive the events.'
detection:
    selection_eid:
        EventID: 3008
    selection_query_1:
        QueryName|startswith:
            - 'aaa.stage.'
            - 'post.1'
    selection_query_2:
        QueryName|contains: '.stage.123456.'
    condition: selection_eid and 1 of selection_query_*
falsepositives:
    - Unknown
level: critical

Stages and Predicates

Stage 0: condition

selection_eid and 1 of selection_query_*

Stage 1: selection_eid

selection_eid:
    EventID: 3008

Stage 2: selection_query_1

selection_query_1:
    QueryName|startswith:
        - 'aaa.stage.'
        - 'post.1'

Stage 3: selection_query_2

selection_query_2:
    QueryName|contains: '.stage.123456.'

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
QueryNamematch
  • .stage.123456. corpus 2 (sigma 2)
QueryNamestarts_with
  • aaa.stage. corpus 2 (sigma 2)
  • post.1 corpus 2 (sigma 2)