SYMBOLCOMMON_NAMEaka. SYNONYMS
win.tetra_loader (Back to overview)

Tetra Loader

VTCollection    

According to Cisco Talos, this is loader is written in Rust and was observed to stage Cobalt Strike Beacons and VShell.

References
2025-05-22 ⋅ Cisco Talos ⋅ Asheer Malhotra, Brandon White
UAT-6382 exploits Cityworks zero-day vulnerability to deliver malware
Tetra Loader UAT-6382
Yara Rules
[TLP:WHITE] win_tetra_loader_auto (20260917 | Detects win.tetra_loader.)
rule win_tetra_loader_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-09-17"
        version = "1"
        description = "Detects win.tetra_loader."
        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.tetra_loader"
        malpedia_rule_date = "20260916"
        malpedia_hash = "53a643781c18e08f4a50949af60172d837a0b6f6"
        malpedia_version = "20260917"
        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 = { 4983c003 4d0f42c5 49c1e802 6683fe01 4983d800 4983c002 4889d9 }
            // n = 7, score = 100
            //   4983c003             | dec                 eax
            //   4d0f42c5             | cmp                 ebp, dword ptr [esp + 0x28]
            //   49c1e802             | ja                  0x1a0
            //   6683fe01             | dec                 esp
            //   4983d800             | lea                 eax, [0x278eb]
            //   4983c002             | dec                 eax
            //   4889d9               | inc                 ebp

        $sequence_1 = { 415d 415e 415f 5d c3 e8???????? 488d0d6f2a0300 }
            // n = 7, score = 100
            //   415d                 | cmp                 bh, 2
            //   415e                 | ja                  0xebe
            //   415f                 | cmp                 bl, 0xc0
            //   5d                   | jge                 0xebe
            //   c3                   | dec                 ebp
            //   e8????????           |                     
            //   488d0d6f2a0300       | lea                 edx, [ecx + 2]

        $sequence_2 = { 4c89d8 48f7d0 4889f1 4c29d1 4801c1 4839f1 0f8390020000 }
            // n = 7, score = 100
            //   4c89d8               | dec                 esp
            //   48f7d0               | mov                 dword ptr [esp + 0x30], esp
            //   4889f1               | dec                 esp
            //   4c29d1               | mov                 dword ptr [esp + 0x28], ebp
            //   4801c1               | dec                 eax
            //   4839f1               | mov                 dword ptr [esp + 0x20], edi
            //   0f8390020000         | dec                 eax

        $sequence_3 = { 48c7420801000000 488955d0 488b45e8 48894218 488b45e0 48894220 488b05???????? }
            // n = 7, score = 100
            //   48c7420801000000     | jne                 0x28c
            //   488955d0             | dec                 ecx
            //   488b45e8             | mov                 ecx, dword ptr [esp + 8]
            //   48894218             | dec                 ecx
            //   488b45e0             | mov                 eax, dword ptr [esp + 0x10]
            //   48894220             | dec                 ecx
            //   488b05????????       |                     

        $sequence_4 = { 4d89c3 49c1c330 4989da 49c1c230 4989f8 49c1c030 4c89ca }
            // n = 7, score = 100
            //   4d89c3               | lea                 ecx, [0x25a7d]
            //   49c1c330             | dec                 esp
            //   4989da               | lea                 eax, [ebp + 0x70330]
            //   49c1c230             | mov                 edx, 0x2b
            //   4989f8               | ud2                 
            //   49c1c030             | dec                 ecx
            //   4c89ca               | cmp                 eax, 0x11

        $sequence_5 = { 83e13f 4409c9 4409d9 4189c9 eb13 41c1e306 4109f3 }
            // n = 7, score = 100
            //   83e13f               | movzx               ecx, word ptr [edi]
            //   4409c9               | dec                 eax
            //   4409d9               | lea                 eax, [0x173f9]
            //   4189c9               | cmp                 ecx, 0x544c
            //   eb13                 | je                  0x4fc
            //   41c1e306             | inc                 ecx
            //   4109f3               | movzx               ecx, word ptr [edi]

        $sequence_6 = { 48898550050000 80bdbe05000000 750a 4983ff64 0f8761010000 c685bc05000000 488d85bc050000 }
            // n = 7, score = 100
            //   48898550050000       | mov                 dword ptr [ebp - 0x20], eax
            //   80bdbe05000000       | dec                 eax
            //   750a                 | mov                 dword ptr [ebp - 0x48], eax
            //   4983ff64             | dec                 eax
            //   0f8761010000         | mov                 eax, dword ptr [ebp - 0x48]
            //   c685bc05000000       | dec                 eax
            //   488d85bc050000       | mov                 dword ptr [ebp - 0x18], eax

        $sequence_7 = { 48c7460801000000 48c7461000000000 0fb605???????? b918000000 e8???????? 4885c0 7420 }
            // n = 7, score = 100
            //   48c7460801000000     | dec                 ebp
            //   48c7461000000000     | mov                 eax, edi
            //   0fb605????????       |                     
            //   b918000000           | dec                 ecx
            //   e8????????           |                     
            //   4885c0               | mov                 ecx, esi
            //   7420                 | dec                 eax

        $sequence_8 = { e9???????? e8???????? 84c0 0f85fffeffff c6461801 }
            // n = 5, score = 100
            //   e9????????           |                     
            //   e8????????           |                     
            //   84c0                 | mov                 dword ptr [esp + 0x20], 0
            //   0f85fffeffff         | dec                 eax
            //   c6461801             | test                ebx, ebx

        $sequence_9 = { 488b3c24 488939 4c897908 4c89fe 4183fc01 0f8569feffff 41b70a }
            // n = 7, score = 100
            //   488b3c24             | dec                 eax
            //   488939               | cmp                 eax, 0x2d8
            //   4c897908             | mov                 ecx, 0x2d7
            //   4c89fe               | dec                 eax
            //   4183fc01             | mov                 edx, eax
            //   0f8569feffff         | dec                 eax
            //   41b70a               | neg                 edx

    condition:
        7 of them and filesize < 847872
}
Download all Yara Rules