Actor(s): Turla Group
There is no description at this point.
rule win_agent_btz_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2020-12-22" version = "1" description = "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.agent_btz" malpedia_rule_date = "20201222" malpedia_hash = "30354d830a29f0fbd3714d93d94dea941d77a130" malpedia_version = "20201023" 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 = { c74608ffffffff f644240801 7409 56 } // n = 4, score = 2500 // c74608ffffffff | mov dword ptr [esi + 8], 0xffffffff // f644240801 | test byte ptr [esp + 8], 1 // 7409 | je 0xb // 56 | push esi $sequence_1 = { ffd3 85c0 75d8 5f } // n = 4, score = 2500 // ffd3 | call ebx // 85c0 | test eax, eax // 75d8 | jne 0xffffffda // 5f | pop edi $sequence_2 = { ffd6 8d54240c 52 ffd7 } // n = 4, score = 2500 // ffd6 | call esi // 8d54240c | lea edx, [esp + 0xc] // 52 | push edx // ffd7 | call edi $sequence_3 = { b803000f00 8b4df4 64890d00000000 5f } // n = 4, score = 2400 // b803000f00 | je 0x10 // 8b4df4 | push esi // 64890d00000000 | call esi // 5f | lea edx, [esp + 0xc] $sequence_4 = { c7460c00000000 895e08 895e04 c7461000000000 } // n = 4, score = 2400 // c7460c00000000 | call ebx // 895e08 | test eax, eax // 895e04 | jne 0xffffffde // c7461000000000 | lea ecx, [esp + 0xc] $sequence_5 = { ff15???????? b804000f00 8b4df4 64890d00000000 } // n = 4, score = 2400 // ff15???????? | // b804000f00 | add esp, 4 // 8b4df4 | mov dword ptr [esi + 8], 0xffffffff // 64890d00000000 | test byte ptr [esp + 8], 1 $sequence_6 = { 6a00 50 ff15???????? 894614 } // n = 4, score = 2300 // 6a00 | mov eax, 0xf0004 // 50 | mov ecx, dword ptr [ebp - 0xc] // ff15???????? | // 894614 | mov dword ptr fs:[0], ecx $sequence_7 = { 56 6a00 68???????? 8935???????? } // n = 4, score = 2300 // 56 | mov dword ptr [esi + 8], ebx // 6a00 | mov dword ptr [esi + 4], ebx // 68???????? | // 8935???????? | $sequence_8 = { 56 8bf1 8b4608 c706???????? 85c0 7413 } // n = 6, score = 2200 // 56 | mov ecx, dword ptr [ebp - 0xc] // 8bf1 | mov dword ptr fs:[0], ecx // 8b4608 | pop edi // c706???????? | // 85c0 | pop esi // 7413 | mov eax, 0xf0003 $sequence_9 = { 7413 83f8ff 740e 50 ff15???????? c74608ffffffff f644240801 } // n = 7, score = 2200 // 7413 | mov dword ptr [esi + 0xc], 0 // 83f8ff | mov dword ptr [esi + 8], ebx // 740e | mov dword ptr [esi + 4], ebx // 50 | mov dword ptr [esi + 0x10], 0 // ff15???????? | // c74608ffffffff | mov dword ptr [esi + 0x14], ebx // f644240801 | mov dword ptr [esi + 0xc], 0 $sequence_10 = { 6a0a 68???????? 6a01 6a00 68???????? } // n = 5, score = 1400 // 6a0a | push 0xa // 68???????? | // 6a01 | push 1 // 6a00 | push 0 // 68???????? | $sequence_11 = { 51 6a00 6819000200 6a00 68???????? } // n = 5, score = 1400 // 51 | push ecx // 6a00 | push 0 // 6819000200 | push 0x20019 // 6a00 | push 0 // 68???????? | $sequence_12 = { 50 68???????? 6a01 68???????? e8???????? 83c410 } // n = 6, score = 1200 // 50 | mov dword ptr fs:[0], ecx // 68???????? | // 6a01 | pop edi // 68???????? | // e8???????? | // 83c410 | pop esi $sequence_13 = { 6a01 6a04 6a01 68???????? } // n = 4, score = 1100 // 6a01 | push 1 // 6a04 | push 4 // 6a01 | push 1 // 68???????? | $sequence_14 = { 50 e8???????? 83c408 6800010000 e8???????? } // n = 5, score = 1000 // 50 | mov eax, 0xf0003 // e8???????? | // 83c408 | mov ecx, dword ptr [ebp - 0xc] // 6800010000 | mov dword ptr fs:[0], ecx // e8???????? | $sequence_15 = { 89461c 3dea000000 740b 3de5030000 } // n = 4, score = 1000 // 89461c | mov dword ptr [esi + 8], ebx // 3dea000000 | mov dword ptr [esi + 4], ebx // 740b | mov dword ptr [esi + 0x10], 0 // 3de5030000 | mov dword ptr [esi + 0x14], ebx $sequence_16 = { 7511 e8???????? 83c020 50 } // n = 4, score = 1000 // 7511 | jne 0x13 // e8???????? | // 83c020 | add eax, 0x20 // 50 | push eax $sequence_17 = { 83c020 50 e8???????? 83c404 33c0 } // n = 5, score = 1000 // 83c020 | add eax, 0x20 // 50 | push eax // e8???????? | // 83c404 | add esp, 4 // 33c0 | xor eax, eax $sequence_18 = { 50 68???????? 6a01 e8???????? 50 e8???????? } // n = 6, score = 1000 // 50 | push eax // 68???????? | // 6a01 | push 1 // e8???????? | // 50 | push eax // e8???????? | $sequence_19 = { 6a01 68???????? e8???????? 83c414 5f 5e } // n = 6, score = 1000 // 6a01 | mov dword ptr [esi + 0x14], eax // 68???????? | // e8???????? | // 83c414 | xor eax, eax // 5f | xor ebx, ebx // 5e | mov dword ptr [esi + 0x14], eax $sequence_20 = { c645cb25 c645cc78 c645cd25 c645ce78 885dcf c68578ffffff43 c68579ffffff6f } // n = 7, score = 900 // c645cb25 | pop esi // c645cc78 | pop ebx // c645cd25 | mov eax, 0xf0005 // c645ce78 | mov ecx, dword ptr [ebp - 0xc] // 885dcf | mov dword ptr fs:[0], ecx // c68578ffffff43 | pop edi // c68579ffffff6f | mov eax, 0xf0003 $sequence_21 = { c684248e00000050 c684248f00000072 c68424900000006f c684249100000063 c684249200000065 c684249300000073 c684249400000073 } // n = 7, score = 900 // c684248e00000050 | mov byte ptr [esp + 0x8e], 0x50 // c684248f00000072 | mov byte ptr [esp + 0x8f], 0x72 // c68424900000006f | mov byte ptr [esp + 0x90], 0x6f // c684249100000063 | mov byte ptr [esp + 0x91], 0x63 // c684249200000065 | mov byte ptr [esp + 0x92], 0x65 // c684249300000073 | mov byte ptr [esp + 0x93], 0x73 // c684249400000073 | mov byte ptr [esp + 0x94], 0x73 $sequence_22 = { c684241601000074 c684241701000045 c684241801000072 c684241901000072 c684241a0100006f } // n = 5, score = 900 // c684241601000074 | mov byte ptr [esp + 0x116], 0x74 // c684241701000045 | mov byte ptr [esp + 0x117], 0x45 // c684241801000072 | mov byte ptr [esp + 0x118], 0x72 // c684241901000072 | mov byte ptr [esp + 0x119], 0x72 // c684241a0100006f | mov byte ptr [esp + 0x11a], 0x6f $sequence_23 = { c684249200000065 c684249300000073 c684249400000073 c684249500000057 c684249600000000 c684241001000047 } // n = 6, score = 900 // c684249200000065 | mov byte ptr [esp + 0x92], 0x65 // c684249300000073 | mov byte ptr [esp + 0x93], 0x73 // c684249400000073 | mov byte ptr [esp + 0x94], 0x73 // c684249500000057 | mov byte ptr [esp + 0x95], 0x57 // c684249600000000 | mov byte ptr [esp + 0x96], 0 // c684241001000047 | mov byte ptr [esp + 0x110], 0x47 $sequence_24 = { c684248a00000065 c684248b00000061 c684248c00000074 c684248d00000065 c684248e00000050 c684248f00000072 c68424900000006f } // n = 7, score = 900 // c684248a00000065 | mov byte ptr [esp + 0x8a], 0x65 // c684248b00000061 | mov byte ptr [esp + 0x8b], 0x61 // c684248c00000074 | mov byte ptr [esp + 0x8c], 0x74 // c684248d00000065 | mov byte ptr [esp + 0x8d], 0x65 // c684248e00000050 | mov byte ptr [esp + 0x8e], 0x50 // c684248f00000072 | mov byte ptr [esp + 0x8f], 0x72 // c68424900000006f | mov byte ptr [esp + 0x90], 0x6f $sequence_25 = { c9 c3 83c8ff eb11 0fb611 ff4c2404 83ca04 } // n = 7, score = 900 // c9 | mov ecx, dword ptr [ebp - 0xc] // c3 | mov dword ptr fs:[0], ecx // 83c8ff | pop edi // eb11 | pop esi // 0fb611 | pop ebx // ff4c2404 | mov eax, 0xf0005 // 83ca04 | mov ecx, dword ptr [ebp - 0xc] $sequence_26 = { c684241001000047 c684241101000065 c684241201000074 c68424130100004c c684241401000061 c684241501000073 } // n = 6, score = 900 // c684241001000047 | mov byte ptr [esp + 0x110], 0x47 // c684241101000065 | mov byte ptr [esp + 0x111], 0x65 // c684241201000074 | mov byte ptr [esp + 0x112], 0x74 // c68424130100004c | mov byte ptr [esp + 0x113], 0x4c // c684241401000061 | mov byte ptr [esp + 0x114], 0x61 // c684241501000073 | mov byte ptr [esp + 0x115], 0x73 $sequence_27 = { ebd2 c78424a000000068000000 c78424dc00000001000000 33c0 66898424e0000000 } // n = 5, score = 900 // ebd2 | jmp 0xffffffd4 // c78424a000000068000000 | mov dword ptr [esp + 0xa0], 0x68 // c78424dc00000001000000 | mov dword ptr [esp + 0xdc], 1 // 33c0 | xor eax, eax // 66898424e0000000 | mov word ptr [esp + 0xe0], ax $sequence_28 = { 6800004004 53 53 8d4dd8 } // n = 4, score = 900 // 6800004004 | mov eax, 0xf0004 // 53 | mov ecx, dword ptr [ebp - 0xc] // 53 | mov dword ptr fs:[0], ecx // 8d4dd8 | mov dword ptr [esi + 0xc], 0 $sequence_29 = { 50 8d85e8fdffff 50 c745fc04010000 } // n = 4, score = 900 // 50 | mov dword ptr fs:[0], ecx // 8d85e8fdffff | pop edi // 50 | pop esi // c745fc04010000 | pop ebx $sequence_30 = { c685fcfeffff2d c685fdfeffff2d c685fefeffff25 c685fffeffff73 c68500ffffff0d c68501ffffff0a c68502ffffff43 } // n = 7, score = 900 // c685fcfeffff2d | mov byte ptr [ebp - 0x104], 0x2d // c685fdfeffff2d | mov byte ptr [ebp - 0x103], 0x2d // c685fefeffff25 | mov byte ptr [ebp - 0x102], 0x25 // c685fffeffff73 | mov byte ptr [ebp - 0x101], 0x73 // c68500ffffff0d | mov byte ptr [ebp - 0x100], 0xd // c68501ffffff0a | mov byte ptr [ebp - 0xff], 0xa // c68502ffffff43 | mov byte ptr [ebp - 0xfe], 0x43 $sequence_31 = { c645b92d c645ba2d c645bb2d c645bc2d c645bd2d c645be2d c645bf2d } // n = 7, score = 900 // c645b92d | mov dword ptr [esi + 8], ebx // c645ba2d | mov dword ptr [esi + 4], ebx // c645bb2d | mov dword ptr [esi + 0x10], 0 // c645bc2d | mov eax, 0xf0005 // c645bd2d | mov ecx, dword ptr [ebp - 0xc] // c645be2d | mov dword ptr fs:[0], ecx // c645bf2d | pop edi $sequence_32 = { 33c0 897e1c 5f 5b c9 c3 } // n = 6, score = 900 // 33c0 | xor eax, eax // 897e1c | mov dword ptr [esi + 0x1c], edi // 5f | pop edi // 5b | pop ebx // c9 | leave // c3 | ret $sequence_33 = { 6a00 6a27 6a02 6a00 6a01 } // n = 5, score = 800 // 6a00 | push 0 // 6a27 | push 0x27 // 6a02 | push 2 // 6a00 | push 0 // 6a01 | push 1 $sequence_34 = { c645d316 c645d43a c645d53b c645d63b c645d730 c645d836 } // n = 6, score = 700 // c645d316 | mov byte ptr [ebp - 0x2d], 0x16 // c645d43a | mov byte ptr [ebp - 0x2c], 0x3a // c645d53b | mov byte ptr [ebp - 0x2b], 0x3b // c645d63b | mov byte ptr [ebp - 0x2a], 0x3b // c645d730 | mov byte ptr [ebp - 0x29], 0x30 // c645d836 | mov byte ptr [ebp - 0x28], 0x36 $sequence_35 = { 8d8505feffff 50 e8???????? 83c40c } // n = 4, score = 700 // 8d8505feffff | push 0 // 50 | push 0x80000002 // e8???????? | // 83c40c | push eax $sequence_36 = { 488b4338 33d2 488bce 448d4220 } // n = 4, score = 500 // 488b4338 | lea ecx, [esp + 0x50] // 33d2 | inc esp // 488bce | mov eax, ebx // 448d4220 | dec eax $sequence_37 = { 83c904 c1e803 448bc9 440fafc8 } // n = 4, score = 500 // 83c904 | dec esp // c1e803 | lea ecx, [esp + 0x50] // 448bc9 | inc esp // 440fafc8 | mov eax, ebx $sequence_38 = { 488bcf c744242088130000 e8???????? 488b5738 } // n = 4, score = 500 // 488bcf | inc esp // c744242088130000 | mov eax, ebx // e8???????? | // 488b5738 | dec eax $sequence_39 = { 488b4638 488b0e 4c8d442450 4533c9 } // n = 4, score = 500 // 488b4638 | lea ecx, [esp + 0x50] // 488b0e | inc esp // 4c8d442450 | mov eax, ebx // 4533c9 | dec eax $sequence_40 = { 488b0e 48894628 488b4638 4c8d4c2450 } // n = 4, score = 500 // 488b0e | dec eax // 48894628 | mov ecx, dword ptr [esi] // 488b4638 | dec eax // 4c8d4c2450 | mov dword ptr [esi + 0x28], eax $sequence_41 = { 488b4638 4c8d4c2450 448bc3 488bd7 } // n = 4, score = 500 // 488b4638 | dec eax // 4c8d4c2450 | mov eax, dword ptr [esi + 8] // 448bc3 | dec eax // 488bd7 | mov ecx, dword ptr [esi] $sequence_42 = { 488bf0 c70005000000 85db 7415 4c8b4f38 488d4804 } // n = 6, score = 400 // 488bf0 | mov eax, dword ptr [esi + 0x38] // c70005000000 | dec esp // 85db | lea ecx, [esp + 0x50] // 7415 | inc esp // 4c8b4f38 | mov eax, ebx // 488d4804 | dec eax $sequence_43 = { ff9058020000 488bf0 c7000d000000 895804 897808 } // n = 5, score = 400 // ff9058020000 | mov eax, dword ptr [ebx + 0x38] // 488bf0 | xor edx, edx // c7000d000000 | dec eax // 895804 | mov ecx, esi // 897808 | inc esp $sequence_44 = { 8d8594faffff 50 68???????? ff15???????? } // n = 4, score = 200 // 8d8594faffff | mov dword ptr fs:[0], ecx // 50 | pop edi // 68???????? | // ff15???????? | $sequence_45 = { 59 68???????? e8???????? 59 8b0c9d10c04100 33c0 } // n = 6, score = 100 // 59 | mov dword ptr [esi + 4], ebx // 68???????? | // e8???????? | // 59 | mov eax, 0xf0000 // 8b0c9d10c04100 | mov ecx, dword ptr [ebp - 0xc] // 33c0 | mov dword ptr fs:[0], ecx $sequence_46 = { ff15???????? 56 ff15???????? 5e c3 33c0 5e } // n = 7, score = 100 // ff15???????? | // 56 | mov eax, 0xf0004 // ff15???????? | // 5e | mov ecx, dword ptr [ebp - 0xc] // c3 | mov dword ptr fs:[0], ecx // 33c0 | pop edi // 5e | pop esi $sequence_47 = { 50 6a00 6a00 6a1c 8d44247c } // n = 5, score = 100 // 50 | pop edi // 6a00 | pop esi // 6a00 | mov eax, 0xf0004 // 6a1c | mov ecx, dword ptr [ebp - 0xc] // 8d44247c | mov dword ptr fs:[0], ecx $sequence_48 = { 33db b86e6b0000 66394204 0f94c3 85db 0f84a5000000 8b4c2428 } // n = 7, score = 100 // 33db | mov eax, 0xf0000 // b86e6b0000 | mov ecx, dword ptr [ebp - 0xc] // 66394204 | mov dword ptr fs:[0], ecx // 0f94c3 | pop edi // 85db | mov dword ptr [esi + 0xc], 0 // 0f84a5000000 | mov dword ptr [esi + 8], ebx // 8b4c2428 | mov dword ptr [esi + 4], ebx $sequence_49 = { 8bf0 59 59 85f6 7469 8b4c2414 2b01 } // n = 7, score = 100 // 8bf0 | mov eax, 0xf0000 // 59 | mov ecx, dword ptr [ebp - 0xc] // 59 | mov dword ptr fs:[0], ecx // 85f6 | pop edi // 7469 | mov eax, 0xf0005 // 8b4c2414 | mov ecx, dword ptr [ebp - 0xc] // 2b01 | mov dword ptr fs:[0], ecx $sequence_50 = { 8b4c2410 e8???????? 53 ffd5 } // n = 4, score = 100 // 8b4c2410 | mov dword ptr [esi + 0x10], 0 // e8???????? | // 53 | mov dword ptr [esi + 0xc], 0 // ffd5 | mov dword ptr [esi + 8], ebx $sequence_51 = { 3bf1 0f8d40010000 8b04f568124200 8945e0 8b1cf56c124200 3bc7 } // n = 6, score = 100 // 3bf1 | pop edi // 0f8d40010000 | pop esi // 8b04f568124200 | pop ebx // 8945e0 | mov eax, 0xf0000 // 8b1cf56c124200 | mov ecx, dword ptr [ebp - 0xc] // 3bc7 | mov dword ptr fs:[0], ecx condition: 7 of them and filesize < 3779584 }
rule win_agent_btz_w0 { meta: author = "Symantec" source = "https://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/waterbug-attack-group.pdf" contribution = "pnx - removed FPs" malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.agent_btz" malpedia_version = "20171113" malpedia_sharing = "TLP:WHITE" malpedia_license = "" strings: $b = {C645????} $c = {C685??FEFFFF??} $d = {FFA0??0?0000} $e = {89A8??00000068??00000056FFD78B} $f = {00004889????030000488B} $tmp_fn = "FA.tmp" condition: ((#c > 200 and #b > 200 ) or (#d > 40) and (#e > 15 or #f > 30)) and $tmp_fn }
If your designated proposal does not fit in any other category, feel free to write a free-text in the comment field below.
Please propose all changes regarding references on the Malpedia library page
Your suggestion will be reviewed before being published. Thank you for contributing!
YYYY-MM-DD
YYYY-MM
YYYY