Skip to content

Commit

Permalink
Create Mutants.yaml (Velocidex#2877)
Browse files Browse the repository at this point in the history
This artifact detects creation of Mutants and triggers an alert.
  • Loading branch information
DfirJos authored and scudette committed Aug 27, 2023
1 parent a3186ff commit e28ae39
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions artifacts/definitions/Windows/Events/Mutants.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Windows.Events.Mutants
description: |
This artifact detects creation of Mutants and triggers an alert.
author: Jos Clephas - @DfirJos

type: CLIENT_EVENT

precondition:
SELECT * FROM info() WHERE OS =~ "windows"

parameters:
- name: processRegex
description: A regex applied to process names.
default: .
type: regex
- name: Period
type: int
default: 120
- name: MutantNameRegex
default: EvilMutant
type: regex
- name: AlertName
default: "Suspicious mutex created"
- name: diff
default: added
- name: enrich
description: Enrich mutex with process information. Closely monitor the performance impact if you enable this.
type: bool
default: N

sources:
- query: |
LET processes = SELECT Pid AS ProcPid, Name AS ProcName, Exe FROM process_tracker_pslist() WHERE ProcName =~ processRegex AND int(int=ProcPid) > 0
LET query_mutant = SELECT * FROM winobj() WHERE Type = "Mutant" AND Name =~ MutantNameRegex
LET query_enriched = SELECT * FROM foreach(
row=processes,
query={
SELECT ProcPid, ProcName, Exe, Type, Name, Handle
FROM handles(pid=int(int=ProcPid), types="Mutant")
})
WHERE Type = "Mutant" AND Name =~ MutantNameRegex
LET query_diff = if(condition=enrich, then=query_enriched, else=query_mutant)
SELECT *, alert(name=AlertName, Name=Name, Type=Type, Exe=Exe) as AlertSent FROM diff(query=query_diff, period=Period, key="Name") WHERE Diff = diff

0 comments on commit e28ae39

Please sign in to comment.