Interactive Terminal Spawned via Pythonedit

Identifies when a terminal (tty) is spawned via Python. Attackers may upgrade a simple reverse shell to a fully interactive tty after obtaining initial access to a host.

Rule type: query

Rule indices:

  • auditbeat-*
  • logs-endpoint.events.*

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

Tags:

  • Elastic
  • Host
  • Linux
  • Threat Detection
  • Execution

Version: 6 (version history)

Added (Elastic Stack release): 7.8.0

Last modified (Elastic Stack release): 7.12.0

Rule authors: Elastic

Rule license: Elastic License v2

Rule queryedit

event.category:process and event.type:(start or process_started) and
process.name:python and process.args:("import pty;
pty.spawn(\"/bin/sh\")" or "import pty;
pty.spawn(\"/bin/dash\")" or "import pty;
pty.spawn(\"/bin/bash\")")

Threat mappingedit

Framework: MITRE ATT&CKTM

Rule version historyedit

Version 6 (7.12.0 release)
  • Formatting only
Version 5 (7.11.2 release)
  • Formatting only
Version 4 (7.10.0 release)
  • Formatting only
Version 3 (7.9.1 release)
  • Formatting only
Version 2 (7.9.0 release)
  • Updated query, changed from:

    event.action:executed and process.name:python and
    process.args:("import pty; pty.spawn(\"/bin/sh\")" or "import pty;
    pty.spawn(\"/bin/dash\")" or "import pty; pty.spawn(\"/bin/bash\")")