The hypothesis is that the detection of EquationGroup Tool - April Leak indicates potential adversary use of legacy malware associated with advanced persistent threats, which may be used for data exfiltration or system persistence. SOC teams should proactively hunt for this behavior in Azure Sentinel to identify and mitigate potential long-term compromise of critical systems.
YARA Rule
rule EquationGroup_Toolset_Apr17_msgks_mskgu {
meta:
description = "Detects EquationGroup Tool - April Leak"
author = "Florian Roth"
reference = "https://steemit.com/shadowbrokers/@theshadowbrokers/lost-in-translation"
date = "2017-04-15"
hash1 = "7b4986aee8f5c4dca255431902907b36408f528f6c0f7d7fa21f079fa0a42e09"
hash2 = "ef906b8a8ad9dca7407e0a467b32d7f7cf32814210964be2bfb5b0e6d2ca1998"
strings:
$op1 = { f4 65 c6 45 f5 6c c6 45 f6 33 c6 45 f7 32 c6 45 }
$op2 = { 36 c6 45 e6 34 c6 45 e7 50 c6 45 e8 72 c6 45 e9 }
$op3 = { c6 45 e8 65 c6 45 e9 70 c6 45 ea 74 c6 45 eb 5f }
condition:
( uint16(0) == 0x5a4d and filesize < 300KB and all of them )
}
This YARA rule can be deployed in the following contexts:
This rule contains 3 string patterns in its detection logic.
Scenario: Legitimate system update using msiexec.exe
Filter/Exclusion: process.name == "msiexec.exe" && process.args contains "quiet" && process.args contains "/i"
Scenario: Scheduled backup job using vssadmin.exe
Filter/Exclusion: process.name == "vssadmin.exe" && process.args contains "backup" && process.args contains "begin"
Scenario: Admin task using taskkill.exe to terminate a non-malicious process
Filter/Exclusion: process.name == "taskkill.exe" && process.args contains "/pid" && process.args contains "1234" && process.args contains " /f"
Scenario: Legitimate software installation using setup.exe from a trusted vendor
Filter/Exclusion: process.name == "setup.exe" && process.args contains "/s" && process.args contains "/v" && process.args contains "quiet"
Scenario: System maintenance using schtasks.exe to run a scheduled task
Filter/Exclusion: process.name == "schtasks.exe" && process.args contains "create" && process.args contains "/xml"