Actor(s): NARWHAL SPIDER
There is no description at this point.
rule win_cutwail_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2023-12-06" version = "1" description = "Detects win.cutwail." 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.cutwail" malpedia_rule_date = "20231130" malpedia_hash = "fc8a0e9f343f6d6ded9e7df1a64dac0cc68d7351" malpedia_version = "20230808" 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 = { 8808 ebc1 8b5508 03550c c60200 c745fc01000000 8b45fc } // n = 7, score = 100 // 8808 | mov byte ptr [eax], cl // ebc1 | jmp 0xffffffc3 // 8b5508 | mov edx, dword ptr [ebp + 8] // 03550c | add edx, dword ptr [ebp + 0xc] // c60200 | mov byte ptr [edx], 0 // c745fc01000000 | mov dword ptr [ebp - 4], 1 // 8b45fc | mov eax, dword ptr [ebp - 4] $sequence_1 = { 3930 0f8491010000 8b08 8b09 894d40 } // n = 5, score = 100 // 3930 | cmp dword ptr [eax], esi // 0f8491010000 | je 0x197 // 8b08 | mov ecx, dword ptr [eax] // 8b09 | mov ecx, dword ptr [ecx] // 894d40 | mov dword ptr [ebp + 0x40], ecx $sequence_2 = { eb12 8d45f4 50 8b4704 } // n = 4, score = 100 // eb12 | jmp 0x14 // 8d45f4 | lea eax, [ebp - 0xc] // 50 | push eax // 8b4704 | mov eax, dword ptr [edi + 4] $sequence_3 = { 59 e9???????? 8b7de0 8b45f8 83f808 } // n = 5, score = 100 // 59 | pop ecx // e9???????? | // 8b7de0 | mov edi, dword ptr [ebp - 0x20] // 8b45f8 | mov eax, dword ptr [ebp - 8] // 83f808 | cmp eax, 8 $sequence_4 = { 8b8568feffff 0560ea0000 39855cfeffff 7633 8b8d5cfeffff 898d68feffff e8???????? } // n = 7, score = 100 // 8b8568feffff | mov eax, dword ptr [ebp - 0x198] // 0560ea0000 | add eax, 0xea60 // 39855cfeffff | cmp dword ptr [ebp - 0x1a4], eax // 7633 | jbe 0x35 // 8b8d5cfeffff | mov ecx, dword ptr [ebp - 0x1a4] // 898d68feffff | mov dword ptr [ebp - 0x198], ecx // e8???????? | $sequence_5 = { 8b400c 894564 8d4568 50 } // n = 4, score = 100 // 8b400c | mov eax, dword ptr [eax + 0xc] // 894564 | mov dword ptr [ebp + 0x64], eax // 8d4568 | lea eax, [ebp + 0x68] // 50 | push eax $sequence_6 = { c7410400000000 6830750000 ff15???????? 8b55fc 8b02 50 } // n = 6, score = 100 // c7410400000000 | mov dword ptr [ecx + 4], 0 // 6830750000 | push 0x7530 // ff15???????? | // 8b55fc | mov edx, dword ptr [ebp - 4] // 8b02 | mov eax, dword ptr [edx] // 50 | push eax $sequence_7 = { 837d1000 7d04 32c0 eb7d } // n = 4, score = 100 // 837d1000 | cmp dword ptr [ebp + 0x10], 0 // 7d04 | jge 6 // 32c0 | xor al, al // eb7d | jmp 0x7f $sequence_8 = { 84c0 745e 46 8a06 } // n = 4, score = 100 // 84c0 | test al, al // 745e | je 0x60 // 46 | inc esi // 8a06 | mov al, byte ptr [esi] $sequence_9 = { 51 e8???????? 83c40c c785e0fdffff00000000 c785dcfdffff00000000 } // n = 5, score = 100 // 51 | push ecx // e8???????? | // 83c40c | add esp, 0xc // c785e0fdffff00000000 | mov dword ptr [ebp - 0x220], 0 // c785dcfdffff00000000 | mov dword ptr [ebp - 0x224], 0 $sequence_10 = { 3bdf 894510 0f84ecfdffff 53 50 } // n = 5, score = 100 // 3bdf | cmp ebx, edi // 894510 | mov dword ptr [ebp + 0x10], eax // 0f84ecfdffff | je 0xfffffdf2 // 53 | push ebx // 50 | push eax $sequence_11 = { 68a6000000 89450c e8???????? 03c3 50 } // n = 5, score = 100 // 68a6000000 | push 0xa6 // 89450c | mov dword ptr [ebp + 0xc], eax // e8???????? | // 03c3 | add eax, ebx // 50 | push eax $sequence_12 = { e8???????? 83c410 8985ecfdffff 83bdecfdffffff 0f84ae000000 8b95e4fdffff } // n = 6, score = 100 // e8???????? | // 83c410 | add esp, 0x10 // 8985ecfdffff | mov dword ptr [ebp - 0x214], eax // 83bdecfdffffff | cmp dword ptr [ebp - 0x214], -1 // 0f84ae000000 | je 0xb4 // 8b95e4fdffff | mov edx, dword ptr [ebp - 0x21c] $sequence_13 = { 76ce 8b7d6c 83ff1d 740e } // n = 4, score = 100 // 76ce | jbe 0xffffffd0 // 8b7d6c | mov edi, dword ptr [ebp + 0x6c] // 83ff1d | cmp edi, 0x1d // 740e | je 0x10 $sequence_14 = { 7509 c68563feffff01 eb77 83bd6cfeffff05 7d6e ff15???????? 89855cfeffff } // n = 7, score = 100 // 7509 | jne 0xb // c68563feffff01 | mov byte ptr [ebp - 0x19d], 1 // eb77 | jmp 0x79 // 83bd6cfeffff05 | cmp dword ptr [ebp - 0x194], 5 // 7d6e | jge 0x70 // ff15???????? | // 89855cfeffff | mov dword ptr [ebp - 0x1a4], eax $sequence_15 = { e8???????? 83c414 8b85dcfdffff 2b85d8fdffff 0345fc } // n = 5, score = 100 // e8???????? | // 83c414 | add esp, 0x14 // 8b85dcfdffff | mov eax, dword ptr [ebp - 0x224] // 2b85d8fdffff | sub eax, dword ptr [ebp - 0x228] // 0345fc | add eax, dword ptr [ebp - 4] condition: 7 of them and filesize < 262144 }
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