Incoming DCOM Lateral Movement via MSHTA

edit

Identifies the use of Distributed Component Object Model (DCOM) to execute commands from a remote host, which are launched via the HTA Application COM Object. This behavior may indicate an attacker abusing a DCOM application to move laterally while attempting to evade detection.

Rule type: eql

Rule indices:

  • winlogbeat-*
  • logs-endpoint.events.*
  • logs-windows.*

Severity: high

Risk score: 73

Runs every: 5 minutes

Searches indices from: now-9m (Date Math format, see also Additional look-back time)

Maximum alerts per execution: 100

References:

Tags:

  • Elastic
  • Host
  • Windows
  • Threat Detection
  • Lateral Movement

Version: 101 (version history)

Added (Elastic Stack release): 7.11.0

Last modified (Elastic Stack release): 8.5.0

Rule authors: Elastic

Rule license: Elastic License v2

Rule query

edit
sequence with maxspan=1m [process where event.type == "start" and
process.name : "mshta.exe" and process.args : "-Embedding" ] by
host.id, process.entity_id [network where event.type == "start" and
process.name : "mshta.exe" and network.direction : ("incoming",
"ingress") and network.transport == "tcp" and source.port > 49151
and destination.port > 49151 and source.ip != "127.0.0.1" and
source.ip != "::1" ] by host.id, process.entity_id

Threat mapping

edit

Framework: MITRE ATT&CKTM

Rule version history

edit
Version 101 (8.5.0 release)
  • Updated query, changed from:

    sequence with maxspan=1m [process where event.type in ("start",
    "process_started") and process.name : "mshta.exe" and
    process.args : "-Embedding" ] by host.id, process.entity_id
    [network where event.type == "start" and process.name : "mshta.exe"
    and network.direction : ("incoming", "ingress") and
    network.transport == "tcp" and source.port > 49151 and
    destination.port > 49151 and source.ip != "127.0.0.1" and source.ip !=
    "::1" ] by host.id, process.entity_id
Version 8 (8.4.0 release)
  • Updated query, changed from:

    sequence with maxspan=1m [process where event.type in ("start",
    "process_started") and process.name : "mshta.exe" and
    process.args : "-Embedding" ] by host.id, process.entity_id
    [network where event.type == "start" and process.name : "mshta.exe"
    and network.direction : ("incoming", "ingress") and
    network.transport == "tcp" and source.port > 49151 and
    destination.port > 49151 and source.ip != "127.0.0.1" and source.ip !=
    "::1" ] by host.id, process.entity_id
Version 6 (8.2.0 release)
  • Formatting only
Version 5 (8.0.0 release)
  • Updated query, changed from:

    sequence with maxspan=1m [process where event.type in ("start",
    "process_started") and process.name : "mshta.exe" and
    process.args : "-Embedding" ] by host.id, process.entity_id
    [network where event.type == "start" and process.name : "mshta.exe"
    and network.direction : ("incoming", "ingress") and
    network.transport == "tcp" and source.port > 49151 and
    destination.port > 49151 and not source.address in ("127.0.0.1",
    "::1") ] by host.id, process.entity_id
Version 4 (7.16.0 release)
  • Updated query, changed from:

    sequence with maxspan=1m [process where event.type in ("start",
    "process_started") and process.name : "mshta.exe" and
    process.args : "-Embedding" ] by host.id, process.entity_id
    [network where event.type == "start" and process.name : "mshta.exe"
    and network.direction == "incoming" and network.transport ==
    "tcp" and source.port > 49151 and destination.port > 49151 and
    not source.address in ("127.0.0.1", "::1") ] by host.id,
    process.entity_id
Version 2 (7.12.0 release)
  • Formatting only