Skip to content

YARA · ditekSHen detection

DITEKSHEN_INDICATOR_TOOL_Avbypass_Aviator

Detects AVIator, which is a backdoor generator utility, which uses cryptographic and injection techniques in order to bypass AV detection. This was observed to bypass Win.Trojan.AZorult. This rule works for binaries and memory.

Suspicious / huntingAzorultditekSHen detectionBSD 2-Clause LicenseCompiles with YARA-X
Author
ditekSHen
Date
2020-11-06
Modified
2024-09-25
Score / Quality
75 / 75

What this rule detects

Detects AVIator, which is a backdoor generator utility, which uses cryptographic and injection techniques in order to bypass AV detection. This was observed to bypass Win.Trojan.AZorult. This rule works for binaries and memory.

Associated malware family: Azorult.

Targets: Windows PE.

It defines 18 patterns (16 text, 0 hex, 2 regex).

Summary generated from the rule's metadata and condition.

Rule source

indicator-tool-avbypass-aviator.yarBSD 2-Clause License
rule DITEKSHEN_INDICATOR_TOOL_Avbypass_Aviator : FILE
{
	meta:
		description = "Detects AVIator, which is a backdoor generator utility, which uses cryptographic and injection techniques in order to bypass AV detection. This was observed to bypass Win.Trojan.AZorult. This rule works for binaries and memory."
		author = "ditekSHen"
		id = "2bddd64e-baca-58cb-ba52-27487cc4ded5"
		date = "2020-11-06"
		modified = "2024-09-25"
		reference = "https://github.com/ditekshen/detection"
		source_url = "https://github.com/ditekshen/detection/blob/e76c93dcdedff04076380ffc60ea54e45b313635/yara/indicator_tools.yar#L214-L240"
		license_url = "https://github.com/ditekshen/detection/blob/e76c93dcdedff04076380ffc60ea54e45b313635/LICENSE.txt"
		logic_hash = "1fb497eec2b0cd4051b5ddd53463f1da511c0a7b72d54a0bc68736a99fdc6143"
		score = 75
		quality = 75
		tags = "FILE"

	strings:
		$s1 = "msfvenom -p windows/meterpreter" ascii wide
		$s2 = "payloadBox.Text" ascii wide
		$s3 = "APCInjectionCheckBox" ascii wide
		$s4 = "Thread Hijacking (Shellcode Arch: x86, OS Arch: x86)" ascii wide
		$s5 = "injectExistingApp.Text" ascii wide
		$s6 = "Stable execution but can be traced by most AVs" ascii wide
		$s7 = "AV/\\tor" ascii wide
		$s8 = "AvIator.Properties.Resources" ascii wide
		$s9 = "Select injection technique" ascii wide
		$s10 = "threadHijacking_option" ascii wide
		$pwsh1 = "Convert.ToByte(Payload_Encrypted_Without_delimiterChar[" ascii wide
		$pwsh2 = "[DllImport(\"kernel32.dll\", SetLastError = true)]" ascii wide
		$pwsh3 = "IntPtr RtlAdjustPrivilege(" ascii wide
		$pwsh4 = /InjectShellcode\.(THREADENTRY32|CONTEXT64|WriteProcessMemory\(|CloseHandle\(|CONTEXT_FLAGS|CONTEXT\(\);|Thread32Next\()/ ascii wide
		$pwsh5 = "= Payload_Encrypted.Split(',');" ascii wide
		$pwsh6 = "namespace NativePayload_Reverse_tcp" ascii wide
		$pwsh7 = "byte[] Finall_Payload = Decrypt(KEY, _X_to_Bytes);" ascii wide
		$pwsh8 = /ConstantsAndExtCalls\.(WriteProcessMemory\(|CreateRemoteThread\()/ ascii wide

	condition:
		( uint16( 0 ) == 0x5a4d and ( 3 of ( $s* ) or 2 of ( $pwsh* ) ) ) or ( 3 of ( $s* ) or 2 of ( $pwsh* ) )
}

Strings (18 patterns)

IdentifierTypeValueModifiers
$s1text"msfvenom -p windows/meterpreter"ascii wide
$s2text"payloadBox.Text"ascii wide
$s3text"APCInjectionCheckBox"ascii wide
$s4text"Thread Hijacking (Shellcode Arch: x86, OS Arch: x86)"ascii wide
$s5text"injectExistingApp.Text"ascii wide
$s6text"Stable execution but can be traced by most AVs"ascii wide
$s7text"AV/\\tor"ascii wide
$s8text"AvIator.Properties.Resources"ascii wide
$s9text"Select injection technique"ascii wide
$s10text"threadHijacking_option"ascii wide
$pwsh1text"Convert.ToByte(Payload_Encrypted_Without_delimiterChar["ascii wide
$pwsh2text"[DllImport(\"kernel32.dll\", SetLastError = true)]"ascii wide
$pwsh3text"IntPtr RtlAdjustPrivilege("ascii wide
$pwsh4regex/InjectShellcode\.(THREADENTRY32|CONTEXT64|WriteProcessMemory\(|CloseHandle\(|CONTEXT_FLAGS|CONTEXT\(\);|Thread32Next\()/ascii wide
$pwsh5text"= Payload_Encrypted.Split(',');"ascii wide
$pwsh6text"namespace NativePayload_Reverse_tcp"ascii wide
$pwsh7text"byte[] Finall_Payload = Decrypt(KEY, _X_to_Bytes);"ascii wide
$pwsh8regex/ConstantsAndExtCalls\.(WriteProcessMemory\(|CreateRemoteThread\()/ascii wide

Condition

( uint16( 0 ) == 0x5a4d and ( 3 of ( $s* ) or 2 of ( $pwsh* ) ) ) or ( 3 of ( $s* ) or 2 of ( $pwsh* ) )

In plain words (Heuristic)

  • The file must start with “MZ” — a Windows executable (PE).
  • At least 3 patterns in ( $s* ) must match.
  • At least 2 patterns in ( $pwsh* ) must match.

Test this rule in your browser

Drop a file to scan it with this rule using YARA-X compiled to WebAssembly. Nothing is uploaded.

Drop a file here or click to chooseScanned locally with YARA-X. Files up to 200 MB.

Open in editor

References

Licence & attribution

Author: ditekSHen

Source repository: ditekSHen detection @ e76c93dcde

Licence: BSD 2-Clause License (repository licence)

Copyright notice: Copyright 2021 by ditekSHen (https://github.com/ditekshen/detection).

Original rule

Mirrored via YARA Forge 20260927, which prefixes rule names with the source and adds normalised meta fields.

Rule id: 2bddd64e-baca-58cb-ba52-27487cc4ded5

Tags:FILE