This hunt hypothesis targets adversaries deploying the wmRAT backdoor to establish persistent access and execute remote commands on compromised endpoints within the Azure Sentinel environment. Proactive hunting for this signature is essential despite its low severity rating, as early detection of wmRAT can prevent lateral movement and data exfiltration before the adversary establishes a deeper foothold in the network.
rule Win64_Backdoor_wmRAT : tc_detection malicious
{
meta:
author = "ReversingLabs"
source = "ReversingLabs"
status = "RELEASED"
sharing = "TLP:WHITE"
category = "MALWARE"
malware = "WMRAT"
description = "Yara rule that detects wmRAT backdoor."
tc_detection_type = "Backdoor"
tc_detection_name = "wmRAT"
tc_detection_factor = 5
strings:
$connect_to_c2 = {
6A ?? 68 ?? ?? ?? ?? 64 A1 ?? ?? ?? ?? 50 83 EC ?? A1 ?? ?? ?? ?? 33 C4 89 44 24 ??
A1 ?? ?? ?? ?? 33 C4 50 8D 44 24 ?? 64 A3 ?? ?? ?? ?? 68 ?? ?? ?? ?? FF 15 ?? ?? ??
?? 66 A3 ?? ?? ?? ?? B8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D 4C 24 ?? 66 A3 ?? ?? ?? ?? FF
15 ?? ?? ?? ?? 83 7C 24 ?? ?? 8B 44 24 ?? 73 ?? 8D 44 24 ?? 50 FF 15 ?? ?? ?? ?? 6A
?? 6A ?? 6A ?? A3 ?? ?? ?? ?? FF 15 ?? ?? ?? ?? 6A ?? 68 ?? ?? ?? ?? 50 A3 ?? ?? ??
?? FF 15 ?? ?? ?? ?? 85 C0 74 ?? 8B 0D ?? ?? ?? ?? 51 FF 15 ?? ?? ?? ?? 83 C8 ?? 8D
4C 24 ?? A3 ?? ?? ?? ?? 89 44 24 ?? FF 15 ?? ?? ?? ?? 32 C0 EB ?? 8D 4C 24 ?? C6 05
?? ?? ?? ?? ?? C7 44 24 ?? ?? ?? ?? ?? FF 15 ?? ?? ?? ?? B0 ?? 8B 4C 24 ?? 64 89 0D
?? ?? ?? ?? 59 8B 4C 24 ?? 33 CC E8 ?? ?? ?? ?? 83 C4 ?? C3
}
$find_files_and_get_file_data_p1 = {
6A ?? 68 ?? ?? ?? ?? 64 A1 ?? ?? ?? ?? 50 B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? A1 ?? ?? ??
?? 33 C4 89 84 24 ?? ?? ?? ?? 53 55 56 57 A1 ?? ?? ?? ?? 33 C4 50 8D 84 24 ?? ?? ??
?? 64 A3 ?? ?? ?? ?? 33 DB 68 ?? ?? ?? ?? 8D 8C 24 ?? ?? ?? ?? 89 9C 24 ?? ?? ?? ??
FF 15 ?? ?? ?? ?? 83 BC 24 ?? ?? ?? ?? ?? 8B 84 24 ?? ?? ?? ?? 73 ?? 8D 84 24 ?? ??
?? ?? 68 ?? ?? ?? ?? 8D 8C 24 ?? ?? ?? ?? 50 8D 84 24 ?? ?? ?? ?? 89 8C 24 ?? ?? ??
?? E8 ?? ?? ?? ?? 8D 54 24 ?? C6 84 24 ?? ?? ?? ?? ?? 8B 8C 24 ?? ?? ?? ?? 52 E8 ??
?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? 8B 84 24 ?? ?? ?? ?? 8D 8C 24 ?? ?? ?? ?? 3B C1 74
?? 50 FF 15 ?? ?? ?? ?? 83 C4 ?? 8B 44 24 ?? 8D 94 24 ?? ?? ?? ?? 52 50 FF 15 ?? ??
?? ?? 89 44 24 ?? 83 F8 ?? 0F 84 ?? ?? ?? ?? 8B 2D ?? ?? ?? ?? F6 84 24 ?? ?? ?? ??
?? 0F 84 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D 8C 24 ?? ?? ?? ?? 53 51 89 9C 24 ?? ?? ?? ??
E8 ?? ?? ?? ?? 8D 94 24 ?? ?? ?? ?? 52 8D 84 24 ?? ?? ?? ?? 68 ?? ?? ?? ?? 50 FF D5
8B 0D ?? ?? ?? ?? 66 8B 15 ?? ?? ?? ?? 83 C4 ?? 33 C0 89 84 24 ?? ?? ?? ?? 89 84 24
?? ?? ?? ?? 89 84 24 ?? ?? ?? ?? 89 84 24 ?? ?? ?? ?? 89 8C 24 ?? ?? ?? ?? 89 84 24
?? ?? ?? ?? 89 84 24 ?? ?? ?? ?? 89 84 24 ?? ?? ?? ?? 66 89 84 24 ?? ?? ?? ?? C7 84
24 ?? ?? ?? ?? ?? ?? ?? ?? 66 89 94 24 ?? ?? ?? ?? 8D 8C 24 ?? ?? ?? ?? 8D 84 24 ??
?? ?? ?? 66 8B 10 66 3B 11 75 ?? 66 3B D3 74 ?? 66 8B 50 ?? 66 3B 51 ?? 75 ?? 83 C0
?? 83 C1 ?? 66 3B D3 75 ?? 33 C0 EB ?? 1B C0 83 D8 ?? 3B C3 0F 84 ?? ?? ?? ?? 8D 8C
}
$find_files_and_get_file_data_p2 = {
24 ?? ?? ?? ?? 8D 84 24 ?? ?? ?? ?? 66 8B 10 66 3B 11 75 ?? 66 3B D3 74 ?? 66 8B 50
?? 66 3B 51 ?? 75 ?? 83 C0 ?? 83 C1 ?? 66 3B D3 75 ?? 33 C0 EB ?? 1B C0 83 D8 ?? 3B
C3 0F 84 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D 84 24 ?? ?? ?? ?? 53 50 89 9C 24 ?? ?? ?? ??
E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D 8C 24 ?? ?? ?? ?? 53 51 89 9C 24 ?? ?? ?? ?? E8 ??
?? ?? ?? 8B 54 24 ?? 8B C2 83 C4 ?? 8D 70 ?? EB ?? 8D 49 ?? 66 8B 08 83 C0 ?? 66 3B
CB 75 ?? 2B C6 D1 F8 8D 44 00 ?? 50 52 8D 8C 24 ?? ?? ?? ?? 51 E8 ?? ?? ?? ?? 8D 94
24 ?? ?? ?? ?? 52 8D 84 24 ?? ?? ?? ?? 68 ?? ?? ?? ?? 50 FF D5 8D 8C 24 ?? ?? ?? ??
51 8D 94 24 ?? ?? ?? ?? 68 ?? ?? ?? ?? 52 FF D5 83 C4 ?? 8D 44 24 ?? 68 ?? ?? ?? ??
8D 8C 24 ?? ?? ?? ?? 89 44 24 ?? 51 8D 44 24 ?? E8 ?? ?? ?? ?? 8D 54 24 ?? C6 84 24
?? ?? ?? ?? ?? 8B 4C 24 ?? 52 E8 ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? 8B 44 24 ?? 8D
4C 24 ?? 3B C1 74 ?? 50 FF 15 ?? ?? ?? ?? 83 C4 ?? 8B 54 24 ?? 52 8D 8C 24 ?? ?? ??
?? FF 15 ?? ?? ?? ?? 83 EC ?? 8B CC 89 64 24 ?? 68 ?? ?? ?? ?? C6 84 24 ?? ?? ?? ??
?? FF 15 ?? ?? ?? ?? 8D B4 24 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B C6 68 ?? ?? ?? ?? 50 FF
15 ?? ?? ?? ?? 83 C4 ?? 84 C0 74 ?? FF 05 ?? ?? ?? ?? 6A ?? FF 15 ?? ?? ?? ?? 68 ??
?? ?? ?? 8D 94 24 ?? ?? ?? ?? 8D 8C 24 ?? ?? ?? ?? 52 8D 84 24 ?? ?? ?? ?? 89 8C 24
?? ?? ?? ?? E8 ?? ?? ?? ?? 8D 44 24 ?? C6 84 24 ?? ?? ?? ?? ?? 8B 8C 24 ?? ?? ?? ??
50 E8 ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? 8B 84 24 ?? ?? ?? ?? 8D 8C 24
}
$find_files_and_get_file_data_p3 = {
3B C1 74 ?? 50 FF 15 ?? ?? ?? ?? 83 C4 ?? 68 ?? ?? ?? ?? 8D 8C 24 ?? ?? ?? ?? FF 15
?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? 8B 54 24 ?? 52 8D 8C 24 ?? ?? ?? ?? FF 15 ?? ??
?? ?? 83 EC ?? 8D 84 24 ?? ?? ?? ?? 8B CC 89 64 24 ?? 50 FF 15 ?? ?? ?? ?? E8 ?? ??
?? ?? 33 C0 0F B7 D0 8B C2 C1 E2 ?? 0B C2 B9 ?? ?? ?? ?? 8D BC 24 ?? ?? ?? ?? F3 AB
83 C4 ?? 8D 8C 24 ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? FF 15 ?? ?? ?? ?? C6 84 24 ??
?? ?? ?? ?? 8B 44 24 ?? 83 C0 ?? 8D 48 ?? 83 CA ?? F0 0F C1 11 4A 85 D2 7F ?? 8B 08
8B 11 50 8B 42 ?? FF D0 8D 8C 24 ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? FF 15 ?? ?? ??
?? C6 84 24 ?? ?? ?? ?? ?? 8B 44 24 ?? E9 ?? ?? ?? ?? 8B 84 24 ?? ?? ?? ?? 3B C3 8B
8C 24 ?? ?? ?? ?? 89 4C 24 ?? 89 44 24 ?? 0F 8C ?? ?? ?? ?? 7F ?? 3B CB 0F 86 ?? ??
?? ?? 68 ?? ?? ?? ?? 8D 8C 24 ?? ?? ?? ?? 53 51 89 9C 24 ?? ?? ?? ?? E8 ?? ?? ?? ??
8B 54 24 ?? 8B C2 83 C4 ?? 8D 70 ?? 8D 64 24 ?? 66 8B 08 83 C0 ?? 66 3B CB 75 ?? 2B
C6 D1 F8 8D 44 00 ?? 50 52 8D 8C 24 ?? ?? ?? ?? 51 E8 ?? ?? ?? ?? 8D 84 24 ?? ?? ??
?? 83 C4 ?? 8B D0 8B FF 66 8B 08 83 C0 ?? 66 3B CB 75 ?? 8D BC 24 ?? ?? ?? ?? 2B C2
83 C7 ?? EB ?? 8D A4 24 ?? ?? ?? ?? 66 8B 4F ?? 83 C7 ?? 66 3B CB 75 ?? DF 6C 24 ??
8B C8 C1 E9 ?? 8B F2 DC 05 ?? ?? ?? ?? F3 A5 DD 1D ?? ?? ?? ?? 8B C8 68
}
$find_files_and_get_file_data_p4 = {
8D 84 24 ?? ?? ?? ?? 83 E1 ?? 8D 94 24 ?? ?? ?? ?? 50 8D 84 24 ?? ?? ?? ?? F3 A4 89
94 24 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8D 4C 24 ?? C6 84 24 ?? ?? ?? ?? ?? 51 8B 8C 24 ??
?? ?? ?? E8 ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? 8B 84 24 ?? ?? ?? ?? 8D 94 24 ?? ??
?? ?? 3B C2 74 ?? 50 FF 15 ?? ?? ?? ?? 83 C4 ?? 8B 44 24 ?? 50 8D 8C 24 ?? ?? ?? ??
FF 15 ?? ?? ?? ?? FF 05 ?? ?? ?? ?? 8D 8C 24 ?? ?? ?? ?? FF 15 ?? ?? ?? ?? C6 84 24
?? ?? ?? ?? ?? 8B 44 24 ?? 83 C0 ?? 83 CA ?? 8D 48 ?? F0 0F C1 11 4A 85 D2 7F ?? 8B
08 8B 11 50 8B 42 ?? FF D0 8B 74 24 ?? 8D 8C 24 ?? ?? ?? ?? 51 56 FF 15 ?? ?? ?? ??
85 C0 0F 85 ?? ?? ?? ?? 56 FF 15 ?? ?? ?? ?? 88 9C 24 ?? ?? ?? ?? 8B 44 24 ?? 83 C0
?? 8D 50 ?? 83 C9 ?? F0 0F C1 0A 49 85 C9 7F ?? 8B 08 8B 11 50 8B 42 ?? FF D0 8D 8C
24 ?? ?? ?? ?? C7 84 24 ?? ?? ?? ?? ?? ?? ?? ?? FF 15 ?? ?? ?? ?? 8B 8C 24 ?? ?? ??
?? 64 89 0D ?? ?? ?? ?? 59 5F 5E 5D 5B 8B 8C 24 ?? ?? ?? ?? 33 CC E8 ?? ?? ?? ?? 81
C4 ?? ?? ?? ?? C3
}
$receive_data_and_write_to_file = {
C7 44 24 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 84 C0 0F 84 ?? ?? ?? ?? 8B 4C 24 ?? 51 E8 ??
?? ?? ?? 8B 7C 24 ?? 8B F0 83 C4 ?? 56 E8 ?? ?? ?? ?? 83 C4 ?? 84 C0 75 ?? 68 ?? ??
?? ?? 8D 8C 24 ?? ?? ?? ?? FF 15 ?? ?? ?? ?? 6A ?? 83 EC ?? 8B D4 C7 84 24 ?? ?? ??
?? ?? ?? ?? ?? 89 64 24 ?? 68 ?? ?? ?? ?? 8D 84 24 ?? ?? ?? ?? 50 52 FF 15 ?? ?? ??
?? 83 C4 ?? E8 ?? ?? ?? ?? 83 C4 ?? 8D 8C 24 ?? ?? ?? ?? E9 ?? ?? ?? ?? 8B 4C 24 ??
51 56 B9 ?? ?? ?? ?? FF 15 ?? ?? ?? ?? 8B 54 24 ?? 01 15 ?? ?? ?? ?? 56 E8 ?? ?? ??
?? 83 C4 ?? 6A ?? E8 ?? ?? ?? ?? 83 C4 ?? 84 C0 0F 85 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D
8C 24 ?? ?? ?? ?? FF 15 ?? ?? ?? ?? 6A ?? 83 EC ?? 8B C4 C7 84 24 ?? ?? ?? ?? ?? ??
?? ?? 89 64 24 ?? 68 ?? ?? ?? ?? 8D 8C 24 ?? ?? ?? ?? 51 50 E9
}
$get_system_information = {
6A ?? 68 ?? ?? ?? ?? 64 A1 ?? ?? ?? ?? 50 83 EC ?? A1 ?? ?? ?? ?? 33 C4 89 44 24 ??
53 55 56 57 A1 ?? ?? ?? ?? 33 C4 50 8D 44 24 ?? 64 A3 ?? ?? ?? ?? 8B 1D ?? ?? ?? ??
33 F6 BD ?? ?? ?? ?? 83 CF ?? E8 ?? ?? ?? ?? 66 A1 ?? ?? ?? ?? 8A 0D ?? ?? ?? ?? 66
89 44 24 ?? 88 4C 24 ?? FF 15 ?? ?? ?? ?? 89 44 24 ?? 3B C6 74 ?? 8D 9B ?? ?? ?? ??
A8 ?? 74 ?? 8D 54 24 ?? 52 8D 4C 24 ?? FF 15 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D 4C 24 ??
89 74 24 ?? FF 15 ?? ?? ?? ?? 8D 44 24 ?? 50 E8 ?? ?? ?? ?? 83 C4 ?? 8D 4C 24 ?? 89
7C 24 ?? FF 15 ?? ?? ?? ?? 8B 44 24 ?? FE 44 24 ?? D1 E8 89 44 24 ?? 75 ?? 8D 4C 24
?? 51 E8 ?? ?? ?? ?? 8D 54 24 ?? 52 E8 ?? ?? ?? ?? 83 C4 ?? 6A ?? FF D3 83 ED ?? 0F
85 ?? ?? ?? ?? 8B 4C 24 ?? 64 89 0D ?? ?? ?? ?? 59 5F 5E 5D 5B 8B 4C 24 ?? 33 CC E8
?? ?? ?? ?? 83 C4 ?? C3
}
condition:
uint16(0) == 0x5A4D and
(
$connect_to_c2
) and
(
all of ($find_files_and_get_file_data_p*)
) and
(
$receive_data_and_write_to_file
) and
(
$get_system_information
)
}
This YARA rule can be deployed in the following contexts:
This rule contains 7 string patterns in its detection logic.
Here are 5 specific false positive scenarios for the wmRAT backdoor detection rule, including suggested filters and exclusions:
Scenario: Deployment of legitimate Windows Management Framework updates via Microsoft Endpoint Configuration Manager (MECM/SCCM) or Intune.
wmi related processes or associated PowerShell scripts may trigger the rule due to overlapping file hashes or string patterns found in the backdoor definition.C:\Program Files\Microsoft Endpoint Configuration Manager Client\ccmsetup.exe and its child processes) from the rule scope when the execution source is a known system service account like NT SERVICE\CcmExec.Scenario: Execution of scheduled administrative PowerShell jobs for inventory or compliance auditing.
powershell.exe to query WMI namespaces (Get-WmiObject) for asset discovery or security posture checks. The wmRAT rule may flag the heavy usage of WMI interfaces and specific string signatures within these scripts as suspicious backdoor activity.Microsoft-Windows-Inventory-Sync) or filter out alerts where the parent process is TaskScheduler.exe and the command line contains specific keywords like -Command "Get-CimInstance".Scenario: Activity from third-party endpoint security agents performing real-time scanning.