SYMBOLCOMMON_NAMEaka. SYNONYMS
win.crytox (Back to overview)

Crytox

VTCollection    

Ransomware.

References
2023-06-01 ⋅ K7 Security ⋅ Rahul R
Encrypted Chaos: Analysis of Crytox Ransomware
Crytox
2022-09-21 ⋅ Zscaler ⋅ Romain Dumont
Technical Analysis of Crytox Ransomware
Crytox
Yara Rules
[TLP:WHITE] win_crytox_auto (20260917 | Detects win.crytox.)
rule win_crytox_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-09-17"
        version = "1"
        description = "Detects win.crytox."
        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.crytox"
        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 = { f30f6f3a 0f297c2440 0f29bc2490000000 f30f6f7a10 0f293c24 f30f6f6220 0f29642450 }
            // n = 7, score = 100
            //   f30f6f3a             | movdqu              xmm0, xmmword ptr [eax]
            //   0f297c2440           | movdqu              xmm1, xmmword ptr [eax + ecx]
            //   0f29bc2490000000     | movdqu              xmm2, xmmword ptr [eax + ecx*2]
            //   f30f6f7a10           | movdqu              xmm3, xmmword ptr [eax + edi]
            //   0f293c24             | lea                 eax, [eax + ecx*4]
            //   f30f6f6220           | movdqa              xmmword ptr [edx], xmm0
            //   0f29642450           | movdqa              xmmword ptr [edx + ebx], xmm1

        $sequence_1 = { e8???????? c745ec03000000 8d850efdffff 8945e8 8d85eefeffff 8945e4 8d85fefdffff }
            // n = 7, score = 100
            //   e8????????           |                     
            //   c745ec03000000       | mov                 dword ptr [esp + 4], 0xfbc
            //   8d850efdffff         | mov                 eax, dword ptr [ebp - 0x1a4]
            //   8945e8               | mov                 dword ptr [esp], eax
            //   8d85eefeffff         | mov                 eax, dword ptr [ebp - 0x1ac]
            //   8945e4               | mov                 dword ptr [esp + 4], 0x70c2d0
            //   8d85fefdffff         | mov                 dword ptr [esp], 1

        $sequence_2 = { eb0d ddd8 eb09 ddd8 8db42600000000 8b4508 8b9594feffff }
            // n = 7, score = 100
            //   eb0d                 | mov                 eax, dword ptr [ebp + 8]
            //   ddd8                 | mov                 eax, dword ptr [eax + 0x3340]
            //   eb09                 | add                 eax, eax
            //   ddd8                 | mov                 edx, dword ptr [ebp - 0x14]
            //   8db42600000000       | mov                 ecx, eax
            //   8b4508               | jmp                 0x82c
            //   8b9594feffff         | mov                 dword ptr [ebp - 0x14], 0xf

        $sequence_3 = { dec1 d905???????? d84abc dec1 d905???????? d84a1c dee9 }
            // n = 7, score = 100
            //   dec1                 | jne                 0xfffffff8
            //   d905????????         |                     
            //   d84abc               | lea                 esi, [esi]
            //   dec1                 | fld                 dword ptr [eax]
            //   d905????????         |                     
            //   d84a1c               | add                 eax, 4
            //   dee9                 | fmul                st(1)

        $sequence_4 = { e8???????? e9???????? 53 31c9 81ecc8000000 8b9424d4000000 8b8424dc000000 }
            // n = 7, score = 100
            //   e8????????           |                     
            //   e9????????           |                     
            //   53                   | fld                 dword ptr [esp + 0x80]
            //   31c9                 | fmul                st(0)
            //   81ecc8000000         | fstp                qword ptr [esp + 0xa0]
            //   8b9424d4000000       | fld                 qword ptr [esp + 0xa0]
            //   8b8424dc000000       | fstp                dword ptr [esp + 0xac]

        $sequence_5 = { e8???????? eb0c 0fb7db 6bdb30 031d???????? 83c414 89d8 }
            // n = 7, score = 100
            //   e8????????           |                     
            //   eb0c                 | add                 edx, dword ptr [esi + 0x23de4]
            //   0fb7db               | cmp                 byte ptr [edx], 1
            //   6bdb30               | jne                 0x6fd
            //   031d????????         |                     
            //   83c414               | mov                 eax, dword ptr [esp + 0xb4]
            //   89d8                 | mov                 edx, dword ptr [ebp - 0x6c]

        $sequence_6 = { c744240800000000 c744240417000000 89442410 892c24 ffd7 83ec14 85c0 }
            // n = 7, score = 100
            //   c744240800000000     | jmp                 0x1af
            //   c744240417000000     | dec                 dword ptr [ebp - 0x40]
            //   89442410             | sub                 eax, 4
            //   892c24               | mov                 dword ptr [esp + 8], 0
            //   ffd7                 | mov                 dword ptr [esp + 4], 0
            //   83ec14               | mov                 dword ptr [esp], 0x21
            //   85c0                 | jmp                 0x1ce

        $sequence_7 = { e8???????? b8c3150000 98 8b5508 8d4a02 8b551c 89542410 }
            // n = 7, score = 100
            //   e8????????           |                     
            //   b8c3150000           | lea                 eax, [esp + 0x130]
            //   98                   | mov                 dword ptr [esp], ebp
            //   8b5508               | mov                 dword ptr [esp + 4], eax
            //   8d4a02               | mov                 dword ptr [esp + 8], ebp
            //   8b551c               | mov                 dword ptr [esp + 4], ebx
            //   89542410             | lea                 eax, [esp + 0x130]

        $sequence_8 = { f30f7e28 0f84c0000000 01c8 31ff 0f29742420 6690 660f6ff5 }
            // n = 7, score = 100
            //   f30f7e28             | pmaddubsw           xmm0, xmm7
            //   0f84c0000000         | paddsw              xmm0, xmm6
            //   01c8                 | psraw               xmm0, 7
            //   31ff                 | packuswb            xmm0, xmm0
            //   0f29742420           | movq                xmm0, qword ptr [esi]
            //   6690                 | movq                xmm1, qword ptr [esi + eax]
            //   660f6ff5             | punpcklbw           xmm0, xmm5

        $sequence_9 = { e8???????? d8c0 db6c2440 dec9 db6c2420 dee1 d99c249c000000 }
            // n = 7, score = 100
            //   e8????????           |                     
            //   d8c0                 | mov                 dword ptr [esp + 4], eax
            //   db6c2440             | mov                 dword ptr [esp + 8], edi
            //   dec9                 | mov                 dword ptr [esp + 0x10], 0
            //   db6c2420             | mov                 dword ptr [esp + 0xc], 2
            //   dee1                 | mov                 eax, dword ptr [ebp + 0x10]
            //   d99c249c000000       | mov                 dword ptr [esp + 8], eax

    condition:
        7 of them and filesize < 6156288
}
[TLP:WHITE] win_crytox_w0   (20220930 | Detect variants of Crytox Ransomware)
import "pe"
rule win_crytox_w0 {
  meta:
    description = "Detect variants of Crytox Ransomware"
    author = "Jake Goldi"
    date = "2022-09-29"
    packed_hash1 = "32eef267a1192a9a739ccaaae0266bc66707bb64768a764541ecb039a50cba67"
    hash2 = "11ea0d7e0ebe15b8147d39e72773221d11c2cf84e2d8d6164102c65e797eef6d"
    hash3 = "68fae79a2eca125090bd2a8badc46ed4324c38f2ff24db702d09c3d7687e0047"
    hash4 = "a0a6c2937b6a8b2bc1214ace8255adc6992b553b9e740c3fe1543e089e8437aa"
    source = "https://raw.githubusercontent.com/taogoldi/YARA/main/ransomware/crytox_ransom.yara"
    
    version="1.0"
    phase = "experimental"
    url = "https://www.zscaler.com/blogs/security-research/technical-analysis-crytox-ransomware"
    malware = "Win64.Ransom.Crytox"
    
    malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.crytox"
    malpedia_rule_date = "20220930"
    malpedia_hash = ""
    malpedia_version = "20220930"
    malpedia_license = "CC BY-SA 4.0"
    malpedia_sharing = "TLP:WHITE"
    
    
  strings:
    $s1 = "utox" wide ascii nocase
    /*
        hash 2: 11ea0d7e0ebe15b8147d39e72773221d11c2cf84e2d8d6164102c65e797eef6d

        FF 15 C9 22 00 00                       call    cs:GlobalAlloc
        48 89 85 58 FF FF FF                    mov     [rbp+hMem], rax ; unk_5F2520
        4C 8B E0                                mov     r12, rax
        
        48 8B C8                                mov     rcx, rax

        E8 DD 13 00 00                          call    sub_1402E940E
        48 C7 C1 C0 01 00 00                    mov     rcx, 448
        49 8D 94 24 08 04 00 00                 lea     rdx, [r12+408h]

        4C 8D 05 29 20 00 00                    lea     r8, unk_1402EA070
 
        4C 8D 8D A4 FD FF FF                    lea     r9, [rbp+var_25C]
        E8 A2 11 00 00                          call    sub_1402E91F5
        48 8B 8D 58 FF FF FF                    mov     rcx, [rbp+hMem] ; hMem
        FF 15 90 22 00 00                       call    cs:GlobalFree 

        -------------   

        hash 3: 68fae79a2eca125090bd2a8badc46ed4324c38f2ff24db702d09c3d7687e0047

        FF 15 C9 22 00 00                       call    cs:GlobalAlloc
        48 89 85 58 FF FF FF                    mov     [rbp+hMem], rax
        4C 8B E0                                mov     r12, rax
        
        90                                      nop
        50                                      push    rax
        59                                      pop     rcx
        
        E8 E2 13 00 00                          call    sub_1402E9413
        48 C7 C1 C0 01 00 00                    mov     rcx, 1C0h
        49 8D 94 24 08 04 00 00                 lea     rdx, [r12+408h]

        4C 8D 05 29 20 00 00                    lea     r8, unk_1402EA070
        
        4C 8D 8D A4 FD FF FF                    lea     r9, [rbp+var_25C]
        E8 A7 11 00 00                          call    sub_1402E91FA
        48 8B 8D 58 FF FF FF                    mov     rcx, [rbp+hMem] ; hMem
        FF 15 90 22 00 00                       call    cs:GlobalFree

        ------------- 

        hash 4: a0a6c2937b6a8b2bc1214ace8255adc6992b553b9e740c3fe1543e089e8437aa

        FF 15 C9 22 00 00                       call    cs:GlobalAlloc
        48 89 85 58 FF FF FF                    mov     [rbp+hMem], rax
        4C 8B E0                                mov     r12, rax
        48 8B C8                                mov     rcx, rax
        E8 61 12 00 00                          call    sub_1402E9292
        48 C7 C1 C0 01 00 00                    mov     rcx, 1C0h
        49 8D 94 24 08 04 00 00                 lea     rdx, [r12+408h]
        4C 8D 05 29 20 00 00                    lea     r8, unk_1402EA070
        4C 8D 8D A4 FD FF FF                    lea     r9, [rbp+var_25C]
        E8 26 10 00 00                          call    sub_1402E9079
        48 8B 8D 58 FF FF FF                    mov     rcx, [rbp+hMem] ; hMem
        FF 15 90 22 00 00                       call    cs:GlobalFre



    */

    $op1 = { FF 15 C9 22 00 00 48 89 85 58 FF FF FF 4C 8B E0 } 
    $op2 = { E8 ?? ?? 00 00 48 C7 C1 C0 01 00 00 49 8D 94 24 08 04 00 00 }
    $op3 = { 4C 8D 05 29 20 00 00 }
    $op4 = { 4C 8D 8D A4 FD FF FF E8 ?? 1? 00 00 48 8B 8D 58 FF FF FF FF 15 90 22 00 00 }

condition:
    uint16(0) == 0x5a4d and filesize < 5000KB and ((all of ($s*)) and (all of ($op*)))

}
Download all Yara Rules