This hunt hypothesis targets adversaries deploying the Veaty backdoor to establish persistent access and execute remote commands within the environment. Proactive hunting for this signature in Azure Sentinel is essential to identify early-stage infections that may evade standard heuristic controls due to their low severity classification.
rule ByteCode_MSIL_Backdoor_Veaty : tc_detection malicious
{
meta:
author = "ReversingLabs"
source = "ReversingLabs"
status = "RELEASED"
sharing = "TLP:WHITE"
category = "MALWARE"
malware = "VEATY"
description = "Yara rule that detects Veaty backdoor."
tc_detection_type = "Backdoor"
tc_detection_name = "Veaty"
tc_detection_factor = 5
strings:
$fetch_commands = {
73 ?? ?? ?? ?? 0A 72 ?? ?? ?? ?? 0B 73 ?? ?? ?? ?? 0D 02 03 04 05 0E ?? 28 ?? ?? ??
?? 0C 72 ?? ?? ?? ?? 13 ?? 08 6F ?? ?? ?? ?? 13 ?? 38 ?? ?? ?? ?? 12 ?? 28 ?? ?? ??
?? 13 ?? 0E ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 2C ?? 02 11 ?? 28 ?? ?? ?? ?? 13 ?? 11
?? 2D ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 2B ?? 0E ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 2C
?? 11 ?? 6F ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 2B ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 72
?? ?? ?? ?? 73 ?? ?? ?? ?? 7A 11 ?? 16 6F ?? ?? ?? ?? 06 11 ?? 6F ?? ?? ?? ?? 72 ??
?? ?? ?? 11 ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? 12 ?? 28 ?? ?? ?? ?? 3A ?? ?? ?? ?? DE
?? 12 ?? (FE | 16) ?? ?? ?? ?? ?? 6F ?? ?? ?? ?? DC 08 6F ?? ?? ?? ?? 2D ?? 09 72 ??
?? ?? ?? 73 ?? ?? ?? ?? 25 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 09 72 ?? ??
?? ?? 06 6F ?? ?? ?? ?? 09 13 ?? DD ?? ?? ?? ?? 08 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 6F
?? ?? ?? ?? 0B 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 09 72 ?? ?? ?? ?? 73 ?? ?? ?? ?? 25 07
6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 09 72 ?? ?? ?? ?? 06 6F ?? ?? ?? ?? DE ?? 13 ?? 72 ??
?? ?? ?? 11 ?? 25 2D ?? 26 14 2B ?? 6F ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? 11
?? 6F ?? ?? ?? ?? 73 ?? ?? ?? ?? 7A 13 ?? 72 ?? ?? ?? ?? 11 ?? 25 2D ?? 26 14 2B ??
6F ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? 11 ?? 6F ?? ?? ?? ?? 73 ?? ?? ?? ?? 7A
09 2A 11
}
$read_mailbox_folder = {
73 ?? ?? ?? ?? 0A 03 04 28 ?? ?? ?? ?? 26 1F ?? 0B 18 8D ?? ?? ?? ?? 25 16 7E ?? ??
?? ?? A2 25 17 7E ?? ?? ?? ?? A2 0C 17 08 13 ?? 11 ?? 73 ?? ?? ?? ?? 0D 07 73 ?? ??
?? ?? 13 ?? 05 6F ?? ?? ?? ?? 16 3E ?? ?? ?? ?? 73 ?? ?? ?? ?? 13 ?? 11 ?? 17 6F ??
?? ?? ?? 11 ?? 18 6F ?? ?? ?? ?? 11 ?? 05 6F ?? ?? ?? ?? 0E ?? 72 ?? ?? ?? ?? 28 ??
?? ?? ?? 2C ?? 11 ?? 7E ?? ?? ?? ?? 6F ?? ?? ?? ?? 2B ?? 0E ?? 72 ?? ?? ?? ?? 28 ??
?? ?? ?? 2C ?? 11 ?? 7E ?? ?? ?? ?? 6F ?? ?? ?? ?? 03 04 11 ?? 11 ?? 6F ?? ?? ?? ??
6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 13 ?? 2B ?? 11 ?? 6F ?? ?? ?? ?? 13 ?? 03 11 ?? 6F ??
?? ?? ?? 09 28 ?? ?? ?? ?? 74 ?? ?? ?? ?? 13 ?? 06 11 ?? 6F ?? ?? ?? ?? 11 ?? 6F ??
?? ?? ?? 2D ?? DE ?? 11 ?? 2C ?? 11 ?? 6F ?? ?? ?? ?? DC 05 6F ?? ?? ?? ?? 2D ?? 03
04 11 ?? 6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 13 ?? 2B ?? 11 ?? 6F ?? ?? ??
?? 13 ?? 03 11 ?? 6F ?? ?? ?? ?? 09 28 ?? ?? ?? ?? 74 ?? ?? ?? ?? 13 ?? 06 11 ?? 6F
?? ?? ?? ?? 11 ?? 6F ?? ?? ?? ?? 2D ?? DE ?? 11 ?? 2C ?? 11 ?? 6F ?? ?? ?? ?? DC DE
?? 13 ?? 72 ?? ?? ?? ?? 11 ?? 25 2D ?? 26 14 2B ?? 6F ?? ?? ?? ?? 28 ?? ?? ?? ?? 28
?? ?? ?? ?? 11 ?? 6F ?? ?? ?? ?? 73 ?? ?? ?? ?? 7A 13 ?? 72 ?? ?? ?? ?? 11 ?? 25 2D
?? 26 14 2B ?? 6F ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? 11 ?? 6F ?? ?? ?? ?? 73
?? ?? ?? ?? 7A 06 7E ?? ?? ?? ?? 25 2D ?? 26 7E ?? ?? ?? ?? (FE | 06) ?? ?? ?? ?? ??
73 ?? ?? ?? ?? 25 80
}
$add_move_to_inbox_rule = {
02 7B ?? ?? ?? ?? 7E ?? ?? ?? ?? 7E ?? ?? ?? ?? 7E ?? ?? ?? ?? 7E ?? ?? ?? ?? 7E ??
?? ?? ?? 6F ?? ?? ?? ?? 0A DE ?? 0B 72 ?? ?? ?? ?? 07 25 2D ?? 26 14 2B ?? 6F ?? ??
?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? 07 6F ?? ?? ?? ?? 73 ?? ?? ?? ?? 7A 0C 72 ?? ??
?? ?? 08 25 2D ?? 26 14 2B ?? 6F ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? 08 6F ??
?? ?? ?? 73 ?? ?? ?? ?? 7A 00 73 ?? ?? ?? ?? 0D 09 05 6F ?? ?? ?? ?? 09 6F ?? ?? ??
?? 0E ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 09 6F ?? ?? ?? ?? 17 6F ?? ?? ?? ?? 09 6F ??
?? ?? ?? 16 6F ?? ?? ?? ?? 09 17 6F ?? ?? ?? ?? 09 17 6F ?? ?? ?? ?? 04 72 ?? ?? ??
?? 28 ?? ?? ?? ?? 2C ?? 09 6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 03 6F ?? ?? ?? ?? 2B ?? 04
72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 2C ?? 09 6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 03 6F ?? ?? ??
?? 09 73 ?? ?? ?? ?? 13 ?? 06 17 8D ?? ?? ?? ?? 25 16 11 ?? A2 17 6F ?? ?? ?? ?? 7E
?? ?? ?? ?? 13 ?? DE ?? 26 7E ?? ?? ?? ?? 13 ?? DE
}
condition:
uint16(0) == 0x5A4D and
(
$fetch_commands
) and
(
$read_mailbox_folder
) and
(
$add_move_to_inbox_rule
)
}
This YARA rule can be deployed in the following contexts:
This rule contains 3 string patterns in its detection logic.
Here are 5 specific false positive scenarios for the Veaty Backdoor detection rule, including suggested filters and exclusions:
Scenario: Antivirus Engine Scanning of Compressed Archives
.zip or .7z archives containing software installers. The Veaty rule may trigger on the specific byte patterns found within these compressed containers, mistaking them for the backdoor’s embedded payload..zip, .7z, and .rar from Yara scanning when they are located in temporary download directories (e.g., C:\Users\*\AppData\Local\Temp\Downloads) or specific software distribution folders like \\FileServer\SoftwareDeploy.Scenario: Scheduled Backup Job Processing Legacy Archives
VeeamBackupService.exe or commvault_agent.exe. Additionally, exclude any file paths containing \Backup\StagingArea from the detection scope during scheduled maintenance windows (e.g., 02:00–04:00 daily).Scenario: Software Deployment via Configuration Management Tools