Actor(s): Mirage
Intezer found this family mid May 2020, which appears to be a merger of the family Ketrican and Okrum.
rule win_ketrum_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-09-17" version = "1" description = "Detects win.ketrum." 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.ketrum" 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 = { 037de4 8d8c0f53144402 c1c109 03c8 8bfe f7d7 23f8 } // n = 7, score = 200 // 037de4 | add edi, dword ptr [ebp - 0x1c] // 8d8c0f53144402 | lea ecx, [edi + ecx + 0x2441453] // c1c109 | rol ecx, 9 // 03c8 | add ecx, eax // 8bfe | mov edi, esi // f7d7 | not edi // 23f8 | and edi, eax $sequence_1 = { e8???????? be00020000 56 8d8584faffff 6a00 50 } // n = 6, score = 200 // e8???????? | // be00020000 | mov esi, 0x200 // 56 | push esi // 8d8584faffff | lea eax, [ebp - 0x57c] // 6a00 | push 0 // 50 | push eax $sequence_2 = { 8dbdfcefffff f3a5 be00080000 56 8d85fcdfffff 6a00 } // n = 6, score = 200 // 8dbdfcefffff | lea edi, [ebp - 0x1004] // f3a5 | rep movsd dword ptr es:[edi], dword ptr [esi] // be00080000 | mov esi, 0x800 // 56 | push esi // 8d85fcdfffff | lea eax, [ebp - 0x2004] // 6a00 | push 0 $sequence_3 = { 83c107 51 68???????? e8???????? 68???????? ff75f4 } // n = 6, score = 200 // 83c107 | add ecx, 7 // 51 | push ecx // 68???????? | // e8???????? | // 68???????? | // ff75f4 | push dword ptr [ebp - 0xc] $sequence_4 = { b9???????? e8???????? 68???????? 6a0f 58 } // n = 5, score = 200 // b9???????? | // e8???????? | // 68???????? | // 6a0f | push 0xf // 58 | pop eax $sequence_5 = { 56 e8???????? 59 59 85c0 742f b9???????? } // n = 7, score = 200 // 56 | push esi // e8???????? | // 59 | pop ecx // 59 | pop ecx // 85c0 | test eax, eax // 742f | je 0x31 // b9???????? | $sequence_6 = { 7e0d 33db 53 53 68???????? 6a03 } // n = 6, score = 200 // 7e0d | jle 0xf // 33db | xor ebx, ebx // 53 | push ebx // 53 | push ebx // 68???????? | // 6a03 | push 3 $sequence_7 = { 33c0 0fb7f0 8bc6 c1e610 ba???????? } // n = 5, score = 200 // 33c0 | xor eax, eax // 0fb7f0 | movzx esi, ax // 8bc6 | mov eax, esi // c1e610 | shl esi, 0x10 // ba???????? | $sequence_8 = { e8???????? 8945f8 85c0 7905 83c8ff } // n = 5, score = 100 // e8???????? | // 8945f8 | mov dword ptr [ebp - 8], eax // 85c0 | test eax, eax // 7905 | jns 7 // 83c8ff | or eax, 0xffffffff $sequence_9 = { 59 7202 8b00 68???????? 50 8d85f0feffff 68???????? } // n = 7, score = 100 // 59 | pop ecx // 7202 | jb 4 // 8b00 | mov eax, dword ptr [eax] // 68???????? | // 50 | push eax // 8d85f0feffff | lea eax, [ebp - 0x110] // 68???????? | $sequence_10 = { 83c40c 837d3c10 7303 8d4528 50 } // n = 5, score = 100 // 83c40c | add esp, 0xc // 837d3c10 | cmp dword ptr [ebp + 0x3c], 0x10 // 7303 | jae 5 // 8d4528 | lea eax, [ebp + 0x28] // 50 | push eax $sequence_11 = { 8db5a8fdffff c645fc02 e8???????? ffb51cfdffff ff15???????? } // n = 5, score = 100 // 8db5a8fdffff | lea esi, [ebp - 0x258] // c645fc02 | mov byte ptr [ebp - 4], 2 // e8???????? | // ffb51cfdffff | push dword ptr [ebp - 0x2e4] // ff15???????? | $sequence_12 = { ffd7 8bf0 85f6 7f2b 8b93b0000000 33c0 } // n = 6, score = 100 // ffd7 | call edi // 8bf0 | mov esi, eax // 85f6 | test esi, esi // 7f2b | jg 0x2d // 8b93b0000000 | mov edx, dword ptr [ebx + 0xb0] // 33c0 | xor eax, eax $sequence_13 = { 6a01 8db594feffff c645fc00 e8???????? 83ec1c } // n = 5, score = 100 // 6a01 | push 1 // 8db594feffff | lea esi, [ebp - 0x16c] // c645fc00 | mov byte ptr [ebp - 4], 0 // e8???????? | // 83ec1c | sub esp, 0x1c $sequence_14 = { ab ab ab 8d85f8eeffff } // n = 4, score = 100 // ab | stosd dword ptr es:[edi], eax // ab | stosd dword ptr es:[edi], eax // ab | stosd dword ptr es:[edi], eax // 8d85f8eeffff | lea eax, [ebp - 0x1108] $sequence_15 = { 68???????? e8???????? 68???????? ff15???????? 8b7508 c7465c20a24100 } // n = 6, score = 100 // 68???????? | // e8???????? | // 68???????? | // ff15???????? | // 8b7508 | mov esi, dword ptr [ebp + 8] // c7465c20a24100 | mov dword ptr [esi + 0x5c], 0x41a220 condition: 7 of them and filesize < 4599808 }
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