name: Suspicious mshta spawn
id: 4d33a488-5b5f-11eb-ae93-0242ac130002
version: 1
date: '2021-01-20'
author: Michael Haag, Splunk
type: batch
datamodel:
- Endpoint
description: The following analytic identifies wmiprvse.exe spawning mshta.exe. This
  behavior is indicative of a DCOM object being utilized to spawn mshta from wmiprvse.exe
  or svchost.exe. In this instance, adversaries may use LethalHTA that will spawn
  mshta.exe from svchost.exe.
search: '| tstats `security_content_summariesonly` count values(Processes.process_name)
  as process_name values(Processes.process) as process min(_time) as firstTime max(_time)
  as lastTime from datamodel=Endpoint.Processes where (Processes.parent_process_name=svchost.exe
  OR Processes.parent_process_name=wmiprvse.exe) AND Processes.process_name=mshta.exe
  by Processes.dest Processes.parent_process Processes.user | `drop_dm_object_name(Processes)`
  | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `suspicious_mshta_spawn_filter`'
how_to_implement: To successfully implement this search you need to be ingesting information
  on process that include the name of the process responsible for the changes from
  your endpoints into the `Endpoint` datamodel in the `Processes` node.
known_false_positives: Although unlikely, some legitimate applications may exhibit
  this behavior, triggering a false positive.
references:
- https://codewhitesec.blogspot.com/2018/07/lethalhta.html
- https://github.com/redcanaryco/AtomicTestHarnesses
- https://redcanary.com/blog/introducing-atomictestharnesses/
tags:
  analytic_story:
  - Suspicious MSHTA Activity
  asset_type: Endpoint
  automated_detection_testing: passed
  cis20:
  - CIS 8
  dataset:
  - https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1218.005/atomic_red_team/windows-sysmon.log
  kill_chain_phases:
  - Exploitation
  mitre_attack_id:
  - T1218.005
  nist:
  - PR.PT
  - DE.CM
  product:
  - Splunk Enterprise
  - Splunk Enterprise Security
  - Splunk Cloud
  required_fields:
  - _time
  - Processes.process_name
  - Processes.process
  - Processes.parent_process_name
  - Processes.dest
  - Processes.parent_process
  - Processes.user
  security_domain: endpoint
