SYMBOLCOMMON_NAMEaka. SYNONYMS
win.kazuar (Back to overview)

Kazuar

Actor(s): Turla

VTCollection    

There is no description at this point.

References
2026-05-14MicrosoftMicrosoft Threat Intelligence
Kazuar: Anatomy of a nation-state botnet
Kazuar
2026-01-14R136a1Dominik Reichel
COMmand & Evade: Turla's Kazuar v3 Loader
Kazuar Turla
2024-12-11MicrosoftMicrosoft Threat Intelligence
Frequent freeloader part II: Russian actor Secret Blizzard using tools of other groups to attack Ukraine
Amadey Kazuar Wipbot FlyingYeti
2023-10-31Palo Alto Networks Unit 42Daniel Frank, Tom Fakterman
Over the Kazuar’s Nest: Cracking Down on a Freshly Hatched Backdoor Used by Pensive Ursa (Aka Turla)
Kazuar
2023-08-30Kaspersky LabsDavid Emm
IT threat evolution in Q2 2023
3CX Backdoor Bankshot BLINDINGCAN GoldMax Kazuar QUIETCANARY tomiris GoldenJackal
2023-07-19Twitter (@MsftSecIntel)Microsoft Threat Intelligence
Tweet on targeted attacks against the defense sector in Ukraine and Eastern Europe by the threat actor Secret Blizzard
DeliveryCheck Kazuar
2023-07-18Cert-UACert-UA
Targeted Turla attacks (UAC-0024, UAC-0003) using CAPIBAR and KAZUAR malware (CERT-UA#6981)
DeliveryCheck Kazuar
2023-04-24Kaspersky LabsIvan Kwiatkowski, Pierre Delcher
Tomiris called, they want their Turla malware back
KopiLuwak Andromeda Ave Maria GoldMax JLORAT Kazuar Meterpreter QUIETCANARY RATel Roopy Telemiris tomiris Topinambour Storm-0473
2021-06-12YouTube (BSidesBoulder)Kaspersky, Kurt Baumgartner
Same and Different - sesame street level attribution
Kazuar SUNBURST
2021-04-27KasperskyGReAT
APT trends report Q1 2021
PAS Artra Downloader BadNews Bozok DILLJUICE Kazuar Quasar RAT SodaMaster
2021-01-11Kaspersky LabsCostin Raiu, Georgy Kucherin, Igor Kuznetsov
Sunburst backdoor – code overlaps with Kazuar
Kazuar SUNBURST
2020-10-28AccentureCyber Defense
Turla uses HyperStack, Carbon, and Kazuar to compromise government entity
Cobra Carbon System Kazuar TurlaRPC Turla SilentMoon
2020-05-28EpicTurlaJuan Andrés Guerrero-Saade
SysInTURLA
Kazuar
2020-05-21PICUS SecuritySüleyman Özarslan
T1055 Process Injection
BlackEnergy Cardinal RAT Downdelph Emotet Kazuar RokRAT SOUNDBITE
2020-03-03PWC UKPWC UK
Cyber Threats 2019:A Year in Retrospect
KevDroid MESSAGETAP magecart AndroMut Cobalt Strike CobInt Crimson RAT DNSpionage Dridex Dtrack Emotet FlawedAmmyy FlawedGrace FriedEx Gandcrab Get2 GlobeImposter Grateful POS ISFB Kazuar LockerGoga Nokki QakBot Ramnit REvil Rifdoor RokRAT Ryuk shadowhammer ShadowPad Shifu Skipper StoneDrill Stuxnet TrickBot Winnti ZeroCleare APT41 MUSTANG PANDA Sea Turtle
2017-05-03Palo Alto Networks Unit 42Brandon Levene, Robert Falcone, Tyler Halfpop
Kazuar: Multiplatform Espionage Backdoor with API Access
Kazuar
Yara Rules
[TLP:WHITE] win_kazuar_auto (20260504 | Detects win.kazuar.)
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
}
[TLP:WHITE] win_kazuar_w0   (20260112 | Detects Turla's KERNEL, WORKER and BRIDGE Kazuar v3)
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*)
            )
        )
}
[TLP:WHITE] win_kazuar_w1   (20260112 | Detects Turla's Kazuar v3 native loader)
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")
}
[TLP:WHITE] win_kazuar_w2   (20260112 | Detects Turla's Kazuar v3 COM-visible application)
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
}
Download all Yara Rules