Actor(s): Turla
There is no description at this point.
rule win_kazuar_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-05-04" version = "1" description = "Detects win.kazuar." info = "autogenerated rule brought to you by yara-signator" tool = "yara-signator v0.6.0" signator_config = "callsandjumps;datarefs;binvalue" malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.kazuar" malpedia_rule_date = "20260422" malpedia_hash = "a182e35da64e6d71cb55f125c4d4225196523f14" malpedia_version = "20260504" malpedia_license = "CC BY-SA 4.0" malpedia_sharing = "TLP:WHITE" /* DISCLAIMER * The strings used in this rule have been automatically selected from the * disassembly of memory dumps and unpacked files, using YARA-Signator. * The code and documentation is published here: * https://github.com/fxb-cocacoding/yara-signator * As Malpedia is used as data source, please note that for a given * number of families, only single samples are documented. * This likely impacts the degree of generalization these rules will offer. * Take the described generation method also into consideration when you * apply the rules in your use cases and assign them confidence levels. */ strings: $sequence_0 = { 8b0402 4c01d8 eb07 48ffc3 } // n = 4, score = 300 // 8b0402 | jne 0xad // 4c01d8 | xor eax, eax // eb07 | jmp 0x25 // 48ffc3 | test eax, eax $sequence_1 = { 5d 415c c3 4883ec48 e8???????? } // n = 5, score = 300 // 5d | add esp, 0xc // 415c | mov eax, edi // c3 | pop ebx // 4883ec48 | dec eax // e8???????? | $sequence_2 = { 31c0 4885c9 4989cb 89d7 7463 } // n = 5, score = 300 // 31c0 | je 0x2dd // 4885c9 | mov eax, dword ptr [ebp - 0x24] // 4989cb | mov dword ptr [ebx + 4], 0x1a0 // 89d7 | jmp 0x330 // 7463 | mov eax, dword ptr [ebp - 0x24] $sequence_3 = { 8d8b00030000 894c2408 8d4b08 894c2404 } // n = 4, score = 300 // 8d8b00030000 | mov dword ptr [esp + 8], edi // 894c2408 | mov dword ptr [esp], eax // 8d4b08 | call ecx // 894c2404 | sub esp, 0x10 $sequence_4 = { 7463 4863493c 4c01d9 8bb188000000 85f6 7452 } // n = 6, score = 300 // 7463 | inc ecx // 4863493c | pop esp // 4c01d9 | ret // 8bb188000000 | dec eax // 85f6 | sub esp, 0x48 // 7452 | xor edx, edx $sequence_5 = { 740a 81ea00204000 01d0 eb02 31c0 5d c3 } // n = 7, score = 300 // 740a | mov dword ptr [ebx + 4], 0 // 81ea00204000 | lea esp, [ebp - 0xc] // 01d0 | pop ebx // eb02 | pop esi // 31c0 | jmp 0x3e3 // 5d | mov dword ptr [ebx], 0 // c3 | mov dword ptr [ebx + 4], 0 $sequence_6 = { 41ffc1 4131c0 4569c097010001 ebdd } // n = 4, score = 300 // 41ffc1 | mov eax, dword ptr [esi + 0x24] // 4131c0 | dec eax // 4569c097010001 | add ebx, ebx // ebdd | cmp eax, dword ptr [ebp - 0x18] $sequence_7 = { 55 57 56 53 4883ec20 31c0 4885c9 } // n = 7, score = 300 // 55 | lea ecx, [ebx + 0x200] // 57 | mov dword ptr [esp], eax // 56 | mov dword ptr [esp + 0x10], ecx // 53 | mov dword ptr [ebp - 0x14], 0 // 4883ec20 | mov word ptr [ebp - 0x10], ax // 31c0 | add eax, 2 // 4885c9 | mov dword ptr [esp + 4], 0 $sequence_8 = { 4863493c 4c01d9 8bb188000000 85f6 } // n = 4, score = 300 // 4863493c | imul eax, eax, 0x1000197 // 4c01d9 | jmp 0x9a // 8bb188000000 | inc ecx // 85f6 | call edx $sequence_9 = { 8b10 894c2414 8d8b00020000 890424 894c2410 } // n = 5, score = 300 // 8b10 | add eax, dword ptr [ecx + esi*4] // 894c2414 | je 0x1c4 // 8d8b00020000 | je 0x1d4 // 890424 | mov ecx, dword ptr [ebp - 0x14] // 894c2410 | mov eax, ebx condition: 7 of them and filesize < 81920 }
import "pe" rule win_kazuar_w0 { meta: author = "Dominik Reichel" description = "Detects Turla's KERNEL, WORKER and BRIDGE Kazuar v3" date = "2026-01-12" reference = "https://r136a1.dev/2026/01/14/command-and-evade-turlas-kazuar-v3-loader/" malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.kazuar" malpedia_rule_date = "20260112" malpedia_hash = "" malpedia_version = "20260112" malpedia_license = "CC BY-SA 4.0" malpedia_sharing = "TLP:WHITE" strings: $a0 = "FxResources.System.Buffers" $a1 = "FxResources.System.Numerics.Vectors" $a2 = "Google.Protobuf.Reflection" $a3 = "Google.Protobuf.WellKnownTypes" $a4 = "Microsoft.CodeAnalysis" $a5 = "System.Diagnostics.CodeAnalysis" $a6 = "System.Runtime.InteropServices" $b0 = "RequestElection" $b1 = "LeaderShutdown" $b2 = "ClientAnnouncement" $b3 = "LeaderAnnouncement" $b4 = "Silence" $c0 = "ExchangeWebServices" $c1 = "WebSocket" $c2 = "HTTP" $d0 = "AUTOS" $d1 = "GET_CONFIG" $d2 = "PEEP" $d3 = "CHECK" $d4 = "KEYLOG" $d5 = "SYN" $d6 = "TASK_RESULT" $d7 = "CHECK_RESULT" $d8 = "CONFIG" $d9 = "SEND" $d10 = "TASK_KILL" $d11 = "SEND_RESULT" $d12 = "TASK" condition: uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and pe.imports("mscoree.dll", "_CorExeMain") and ( ( 4 of ($a*) and 2 of ($b*) ) or ( 5 of ($a*) and all of ($c*) ) or ( 5 of ($a*) and 9 of ($d*) ) or ( 2 of ($b*) and 2 of ($c*) ) or ( 2 of ($b*) and 6 of ($d*) ) or ( all of ($b*) ) or ( 10 of ($d*) ) ) }
import "pe" rule win_kazuar_w1 { meta: author = "Dominik Reichel" description = "Detects Turla's Kazuar v3 native loader" date = "2026-01-12" reference = "https://r136a1.dev/2026/01/14/command-and-evade-turlas-kazuar-v3-loader/" malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.kazuar" malpedia_rule_date = "20260112" malpedia_hash = "" malpedia_version = "20260112" malpedia_license = "CC BY-SA 4.0" malpedia_sharing = "TLP:WHITE" strings: $a0 = "%d:%08X" $a1 = "Software\\Classes\\" wide $b0 = {7B 00 ?? 00 ?? 00 ?? 00 ?? 00 ?? 00 ?? 00 ?? 00 ?? 00 2D 00 ?? 00 ?? 00 ?? 00 ?? 00 2D 00 ?? 00 ?? 00 ?? 00 ?? 00 2D 00 ?? 00 ?? 00 ?? 00 ?? 00 2D 00 ?? 00 ?? 00 ?? 00 ?? 00 ?? 00 ?? 00 ?? 00 ?? 00 ?? 00 ?? 00 ?? 00 ?? 00 ?? 00 00 00} condition: uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and all of ($a*) and #b0 >= 3 and pe.imports("dbghelp.dll", "SymInitialize") and pe.imports("dbghelp.dll", "SymCleanup") and pe.imports("oleaut32.dll", "SafeArrayAccessData") and pe.imports("oleaut32.dll", "SafeArrayUnaccessData") and pe.imports("ole32.dll", "StringFromCLSID") and pe.imports("ole32.dll", "CLSIDFromProgID") and pe.imports("ole32.dll", "CLSIDFromString") and pe.imports("ole32.dll", "CoUninitialize") }
import "pe" rule win_kazuar_w2 { meta: author = "Dominik Reichel" description = "Detects Turla's Kazuar v3 COM-visible application" date = "2026-01-12" reference = "https://r136a1.dev/2026/01/14/command-and-evade-turlas-kazuar-v3-loader/" malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.kazuar" malpedia_rule_date = "20260112" malpedia_hash = "" malpedia_version = "20260112" malpedia_license = "CC BY-SA 4.0" malpedia_sharing = "TLP:WHITE" strings: $a0 = "GetDelegateForFunctionPointer" $a1 = "StackFrame" $a2 = "GuidAttribute" $a3 = "ComVisibleAttribute" $a4 = "ClassInterfaceAttribute" $a5 = "UnmanagedFunctionPointerAttribute" $a6 = "CompilerGeneratedAttribute" $a7 = "System.Reflection" $a8 = "CallingConvention" $a9 = "TargetInvocationException" $a10 = "get_InnerException" $b0 = "ResourceManager" condition: uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and pe.imports("mscoree.dll", "_CorDllMain") and all of ($a*) and filesize < 100KB and not $b0 }
If your designated proposal does not fit in any other category, feel free to write a free-text in the comment field below. Changes regarding references should be proposed on the Malpedia library page.
Your suggestion will be reviewed before being published. Thank you for contributing!
YYYY-MM-DD
YYYY-MM
YYYY