Actor(s): APT34
There is no description at this point.
rule win_helminth_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-09-17" version = "1" description = "Detects win.helminth." 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.helminth" 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 = { a1???????? 68e8030000 8907 e8???????? } // n = 4, score = 300 // a1???????? | // 68e8030000 | push 0x3e8 // 8907 | mov dword ptr [edi], eax // e8???????? | $sequence_1 = { 0f43ca 880d???????? ff15???????? 83f8ff 7509 c605????????01 eb0d } // n = 7, score = 200 // 0f43ca | cmovae ecx, edx // 880d???????? | // ff15???????? | // 83f8ff | cmp eax, -1 // 7509 | jne 0xb // c605????????01 | // eb0d | jmp 0xf $sequence_2 = { 50 ff15???????? c605????????00 b9???????? b8???????? 8bff } // n = 6, score = 200 // 50 | push eax // ff15???????? | // c605????????00 | // b9???????? | // b8???????? | // 8bff | mov edi, edi $sequence_3 = { 83e11f c1e106 83c10c 8b048570750110 03c1 } // n = 5, score = 200 // 83e11f | and ecx, 0x1f // c1e106 | shl ecx, 6 // 83c10c | add ecx, 0xc // 8b048570750110 | mov eax, dword ptr [eax*4 + 0x10017570] // 03c1 | add eax, ecx $sequence_4 = { 68e8030000 ff15???????? a1???????? 40 a3???????? 83f81e 7ce5 } // n = 7, score = 200 // 68e8030000 | push 0x3e8 // ff15???????? | // a1???????? | // 40 | inc eax // a3???????? | // 83f81e | cmp eax, 0x1e // 7ce5 | jl 0xffffffe7 $sequence_5 = { 7479 b9???????? b8???????? 8d642400 668b10 } // n = 5, score = 200 // 7479 | je 0x7b // b9???????? | // b8???????? | // 8d642400 | lea esp, [esp] // 668b10 | mov dx, word ptr [eax] $sequence_6 = { 668b0457 42 6689044e 41 3bd3 7cf2 8b45f0 } // n = 7, score = 200 // 668b0457 | mov ax, word ptr [edi + edx*2] // 42 | inc edx // 6689044e | mov word ptr [esi + ecx*2], ax // 41 | inc ecx // 3bd3 | cmp edx, ebx // 7cf2 | jl 0xfffffff4 // 8b45f0 | mov eax, dword ptr [ebp - 0x10] $sequence_7 = { 2c2c 2c2c 2c2c 2c2c 2c2c 232425???????? } // n = 6, score = 200 // 2c2c | sub al, 0x2c // 2c2c | sub al, 0x2c // 2c2c | sub al, 0x2c // 2c2c | sub al, 0x2c // 2c2c | sub al, 0x2c // 232425???????? | $sequence_8 = { b823810000 59 0f45f0 8975c8 8bf0 } // n = 5, score = 100 // b823810000 | mov eax, 0x8123 // 59 | pop ecx // 0f45f0 | cmovne esi, eax // 8975c8 | mov dword ptr [ebp - 0x38], esi // 8bf0 | mov esi, eax $sequence_9 = { 8d4c240c 56 ba???????? e8???????? 59 } // n = 5, score = 100 // 8d4c240c | lea ecx, [esp + 0xc] // 56 | push esi // ba???????? | // e8???????? | // 59 | pop ecx $sequence_10 = { 0f8471010000 50 53 ff15???????? 8bd8 68e8030000 } // n = 6, score = 100 // 0f8471010000 | je 0x177 // 50 | push eax // 53 | push ebx // ff15???????? | // 8bd8 | mov ebx, eax // 68e8030000 | push 0x3e8 $sequence_11 = { ba???????? 8b742418 8907 8b44243c 8b7c2438 83c024 } // n = 6, score = 100 // ba???????? | // 8b742418 | mov esi, dword ptr [esp + 0x18] // 8907 | mov dword ptr [edi], eax // 8b44243c | mov eax, dword ptr [esp + 0x3c] // 8b7c2438 | mov edi, dword ptr [esp + 0x38] // 83c024 | add eax, 0x24 $sequence_12 = { 83e103 f3a4 e8???????? ff75ec e8???????? } // n = 5, score = 100 // 83e103 | and ecx, 3 // f3a4 | rep movsb byte ptr es:[edi], byte ptr [esi] // e8???????? | // ff75ec | push dword ptr [ebp - 0x14] // e8???????? | $sequence_13 = { 75f4 ff75f0 8bca c1e902 } // n = 4, score = 100 // 75f4 | jne 0xfffffff6 // ff75f0 | push dword ptr [ebp - 0x10] // 8bca | mov ecx, edx // c1e902 | shr ecx, 2 $sequence_14 = { 2bd1 d1fa 7463 66833c772e 8bcf } // n = 5, score = 100 // 2bd1 | sub edx, ecx // d1fa | sar edx, 1 // 7463 | je 0x65 // 66833c772e | cmp word ptr [edi + esi*2], 0x2e // 8bcf | mov ecx, edi condition: 7 of them and filesize < 479232 }
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