Detection rules › Elastic

Potential Memory Seeking Activity

Status
production
Kind
building block (feeds higher-level correlation rules; not a standalone alert)
Severity
low
Time window
9m
Author
Elastic
Source
github.com/elastic/detection-rules

Monitors for the execution of Unix utilities that may be leveraged as memory address seekers. Attackers may leverage built-in utilities to seek specific memory addresses, allowing for potential future manipulation/exploitation.

MITRE ATT&CK coverage

TacticTechniques
DiscoveryT1057 Process Discovery
CollectionT1005 Data from Local System

Rule body elastic

[metadata]
bypass_bbr_timing = true
creation_date = "2024/02/01"
integration = ["endpoint"]
maturity = "production"
updated_date = "2026/03/24"

[rule]
author = ["Elastic"]
building_block_type = "default"
description = """
Monitors for the execution of Unix utilities that may be leveraged as memory address seekers. Attackers may leverage
built-in utilities to seek specific memory addresses, allowing for potential future manipulation/exploitation.
"""
from = "now-9m"
index = ["logs-endpoint.events.*", "endgame-*"]
language = "eql"
license = "Elastic License v2"
name = "Potential Memory Seeking Activity"
references = ["https://github.com/arget13/DDexec"]
risk_score = 21
rule_id = "035a6f21-4092-471d-9cda-9e379f459b1e"
severity = "low"
tags = [
    "Domain: Endpoint",
    "OS: Linux",
    "Use Case: Threat Detection",
    "Tactic: Discovery",
    "Rule Type: BBR",
    "Data Source: Elastic Defend",
    "Data Source: Elastic Endgame",
]
timestamp_override = "event.ingested"
type = "eql"
query = '''
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event") and (
  (process.name == "tail" and process.args in ("-c", "--bytes")) or
  (process.name == "cmp" and process.args == "-i") or
  (process.name in ("hexdump", "xxd") and process.args == "-s") or
  (process.name == "dd" and process.args : ("skip*", "seek*"))
) and not (
  process.parent.args like ("/opt/error_monitor/error_monitor.sh", "printf*", "/sbin/dracut") or
  process.parent.name in ("acme.sh", "dracut", "leapp") or
  process.parent.executable like (
    "/bin/cagefs_enter", "/opt/nessus_agent/sbin/nessus-service", "/usr/libexec/platform-python*",
    "/usr/libexec/vdsm/vdsmd", "/usr/local/bin/docker-entrypoint.sh", "/usr/lib/module-init-tools/lsinitrd-quick",
    "/usr/bin/unmkinitramfs", "/usr/bin/lsinitramfs", "/opt/msp-agent/msp-agent-core.run",
    "/usr/local/cloudamize/bin/register.sh", "/usr/local/hestia/bin/v-log-action", "/usr/local/emps/bin/php"
  ) or
  process.parent.command_line like "sh*acme.sh*" or
  process.args like ("/var/tmp/dracut*", "/opt/bitdefender-security-tools/var/log/script_update.log") or
  ?process.working_directory like (
    "/usr/local/nutanix/ngt/python/bin", "/var/lib/waagent/*", "/opt/Tychon/Endpoint/bin",
    "/usr/local/cloudamize/bin", "/opt/sentinelone/bin"
  ) or
  process.command_line in ("tail -c 1", "tail -c 2") or
  (process.command_line == "dd ibs=18850 skip=1 count=1" and process.parent.args == "/opt/msp-agent/msp-agent-core.run")
)
'''

[[rule.threat]]
framework = "MITRE ATT&CK"

[[rule.threat.technique]]
id = "T1057"
name = "Process Discovery"
reference = "https://attack.mitre.org/techniques/T1057/"

[rule.threat.tactic]
id = "TA0007"
name = "Discovery"
reference = "https://attack.mitre.org/tactics/TA0007/"

[[rule.threat]]
framework = "MITRE ATT&CK"

[[rule.threat.technique]]
id = "T1005"
name = "Data from Local System"
reference = "https://attack.mitre.org/techniques/T1005/"

[rule.threat.tactic]
id = "TA0009"
name = "Collection"
reference = "https://attack.mitre.org/tactics/TA0009/"

Stages and Predicates

Stage 1: process

process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event") and (
  (process.name == "tail" and process.args in ("-c", "--bytes")) or
  (process.name == "cmp" and process.args == "-i") or
  (process.name in ("hexdump", "xxd") and process.args == "-s") or
  (process.name == "dd" and process.args : ("skip*", "seek*"))
) and not (
  process.parent.args like ("/opt/error_monitor/error_monitor.sh", "printf*", "/sbin/dracut") or
  process.parent.name in ("acme.sh", "dracut", "leapp") or
  process.parent.executable like (
    "/bin/cagefs_enter", "/opt/nessus_agent/sbin/nessus-service", "/usr/libexec/platform-python*",
    "/usr/libexec/vdsm/vdsmd", "/usr/local/bin/docker-entrypoint.sh", "/usr/lib/module-init-tools/lsinitrd-quick",
    "/usr/bin/unmkinitramfs", "/usr/bin/lsinitramfs", "/opt/msp-agent/msp-agent-core.run",
    "/usr/local/cloudamize/bin/register.sh", "/usr/local/hestia/bin/v-log-action", "/usr/local/emps/bin/php"
  ) or
  process.parent.command_line like "sh*acme.sh*" or
  process.args like ("/var/tmp/dracut*", "/opt/bitdefender-security-tools/var/log/script_update.log") or
  ?process.working_directory like (
    "/usr/local/nutanix/ngt/python/bin", "/var/lib/waagent/*", "/opt/Tychon/Endpoint/bin",
    "/usr/local/cloudamize/bin", "/opt/sentinelone/bin"
  ) or
  process.command_line in ("tail -c 1", "tail -c 2") or
  (process.command_line == "dd ibs=18850 skip=1 count=1" and process.parent.args == "/opt/msp-agent/msp-agent-core.run")
)

Exclusions

Top-level NOT(...) conjuncts: predicates this rule actively suppresses.

FieldKindExcluded values
process.command_lineeqdd ibs=18850 skip=1 count=1
process.parent.argseq/opt/msp-agent/msp-agent-core.run
process.argswildcard/var/tmp/dracut*, /opt/bitdefender-security-tools/var/log/script_update.log
process.command_lineintail -c 1, tail -c 2
process.parent.argswildcard/opt/error_monitor/error_monitor.sh, printf*, /sbin/dracut
process.parent.command_linewildcardsh*acme.sh*
process.parent.executablewildcard/bin/cagefs_enter, /opt/nessus_agent/sbin/nessus-service, /usr/libexec/platform-python*, /usr/libexec/vdsm/vdsmd, /usr/local/bin/docker-entrypoint.sh, /usr/lib/module-init-tools/lsinitrd-quick, /usr/bin/unmkinitramfs, /usr/bin/lsinitramfs, /opt/msp-agent/msp-agent-core.run, /usr/local/cloudamize/bin/register.sh, /usr/local/hestia/bin/v-log-action, /usr/local/emps/bin/php
process.parent.nameinacme.sh, dracut, leapp
process.working_directorywildcard/usr/local/nutanix/ngt/python/bin, /var/lib/waagent/*, /opt/Tychon/Endpoint/bin, /usr/local/cloudamize/bin, /opt/sentinelone/bin

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
event.actionin
  • exec
  • exec_event
event.typeeq
  • start
process.argseq
  • -i
  • -s
process.argsin
  • --bytes
  • -c
process.argswildcard
  • seek*
  • skip*
process.nameeq
  • cmp
  • dd
  • tail
process.namein
  • hexdump
  • xxd