Actor(s): BlackTech
PLEAD is a RAT used by the actor BlackTech. FireEye uses the synonyms GOODTIMES for the RAT module and DRAWDOWN for the respective downloader.
rule win_plead_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2022-04-08" version = "1" description = "Detects win.plead." 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.plead" malpedia_rule_date = "20220405" malpedia_hash = "ecd38294bd47d5589be5cd5490dc8bb4804afc2a" malpedia_version = "20220411" 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 = { 50 56 53 6a13 } // n = 4, score = 900 // 50 | push eax // 56 | push esi // 53 | push ebx // 6a13 | push 0x13 $sequence_1 = { 59 894510 0f878f000000 3bc3 0f8482000000 } // n = 5, score = 900 // 59 | pop ecx // 894510 | mov dword ptr [ebp + 0x10], eax // 0f878f000000 | ja 0x95 // 3bc3 | cmp eax, ebx // 0f8482000000 | je 0x88 $sequence_2 = { 56 e8???????? 40 50 6a01 ff15???????? } // n = 6, score = 900 // 56 | push esi // e8???????? | // 40 | inc eax // 50 | push eax // 6a01 | push 1 // ff15???????? | $sequence_3 = { 3bf7 740f ebda 33f6 } // n = 4, score = 900 // 3bf7 | cmp esi, edi // 740f | je 0x11 // ebda | jmp 0xffffffdc // 33f6 | xor esi, esi $sequence_4 = { 33c0 eb09 56 50 e8???????? 59 } // n = 6, score = 900 // 33c0 | xor eax, eax // eb09 | jmp 0xb // 56 | push esi // 50 | push eax // e8???????? | // 59 | pop ecx $sequence_5 = { 56 897d14 e8???????? 83c40c 8d4514 } // n = 5, score = 900 // 56 | push esi // 897d14 | mov dword ptr [ebp + 0x14], edi // e8???????? | // 83c40c | add esp, 0xc // 8d4514 | lea eax, dword ptr [ebp + 0x14] $sequence_6 = { 56 881c30 ff15???????? 3dc8000000 59 } // n = 5, score = 900 // 56 | push esi // 881c30 | mov byte ptr [eax + esi], bl // ff15???????? | // 3dc8000000 | cmp eax, 0xc8 // 59 | pop ecx $sequence_7 = { c745fcf8ffffff 3bf7 750c 895dfc } // n = 4, score = 900 // c745fcf8ffffff | mov dword ptr [ebp - 4], 0xfffffff8 // 3bf7 | cmp esi, edi // 750c | jne 0xe // 895dfc | mov dword ptr [ebp - 4], ebx $sequence_8 = { c21000 8b942428020000 8b842424020000 52 50 } // n = 5, score = 600 // c21000 | ret 0x10 // 8b942428020000 | mov edx, dword ptr [esp + 0x228] // 8b842424020000 | mov eax, dword ptr [esp + 0x224] // 52 | push edx // 50 | push eax $sequence_9 = { 52 53 50 8b1d???????? } // n = 4, score = 600 // 52 | push edx // 53 | push ebx // 50 | push eax // 8b1d???????? | $sequence_10 = { 85f6 0f84d2000000 8bcf 33c0 8bfe } // n = 5, score = 600 // 85f6 | test esi, esi // 0f84d2000000 | je 0xd8 // 8bcf | mov ecx, edi // 33c0 | xor eax, eax // 8bfe | mov edi, esi $sequence_11 = { 83c414 8d942420010000 52 ffd6 5f 5e } // n = 6, score = 600 // 83c414 | add esp, 0x14 // 8d942420010000 | lea edx, dword ptr [esp + 0x120] // 52 | push edx // ffd6 | call esi // 5f | pop edi // 5e | pop esi $sequence_12 = { 3bf1 7cf1 ffd3 8b35???????? } // n = 4, score = 600 // 3bf1 | cmp esi, ecx // 7cf1 | jl 0xfffffff3 // ffd3 | call ebx // 8b35???????? | $sequence_13 = { 25ffff0000 52 50 8d8c242c010000 68???????? } // n = 5, score = 600 // 25ffff0000 | and eax, 0xffff // 52 | push edx // 50 | push eax // 8d8c242c010000 | lea ecx, dword ptr [esp + 0x12c] // 68???????? | $sequence_14 = { 8b1d???????? ffd3 8bf8 33f6 8bcf 81e1ff000080 } // n = 6, score = 600 // 8b1d???????? | // ffd3 | call ebx // 8bf8 | mov edi, eax // 33f6 | xor esi, esi // 8bcf | mov ecx, edi // 81e1ff000080 | and ecx, 0x800000ff $sequence_15 = { 32c2 8844341c 46 3bf1 7cf1 } // n = 5, score = 600 // 32c2 | xor al, dl // 8844341c | mov byte ptr [esp + esi + 0x1c], al // 46 | inc esi // 3bf1 | cmp esi, ecx // 7cf1 | jl 0xfffffff3 $sequence_16 = { 648b1530000000 8b520c 8b521c 8b5a08 } // n = 4, score = 200 // 648b1530000000 | mov edx, dword ptr fs:[0x30] // 8b520c | mov edx, dword ptr [edx + 0xc] // 8b521c | mov edx, dword ptr [edx + 0x1c] // 8b5a08 | mov ebx, dword ptr [edx + 8] $sequence_17 = { 85c0 0f849f020000 8945f0 6a0c 8d4de0 } // n = 5, score = 100 // 85c0 | test eax, eax // 0f849f020000 | je 0x2a5 // 8945f0 | mov dword ptr [ebp - 0x10], eax // 6a0c | push 0xc // 8d4de0 | lea ecx, dword ptr [ebp - 0x20] $sequence_18 = { 7529 85d2 0f84bdfeffff 66c742020100 b908000000 8d4580 8d7a08 } // n = 7, score = 100 // 7529 | jne 0x2b // 85d2 | test edx, edx // 0f84bdfeffff | je 0xfffffec3 // 66c742020100 | mov word ptr [edx + 2], 1 // b908000000 | mov ecx, 8 // 8d4580 | lea eax, dword ptr [ebp - 0x80] // 8d7a08 | lea edi, dword ptr [edx + 8] $sequence_19 = { 6800000100 50 50 50 ff7508 } // n = 5, score = 100 // 6800000100 | push 0x10000 // 50 | push eax // 50 | push eax // 50 | push eax // ff7508 | push dword ptr [ebp + 8] $sequence_20 = { 021c07 021c0e 8a140e 86141e 88140e fec0 99 } // n = 7, score = 100 // 021c07 | add bl, byte ptr [edi + eax] // 021c0e | add bl, byte ptr [esi + ecx] // 8a140e | mov dl, byte ptr [esi + ecx] // 86141e | xchg byte ptr [esi + ebx], dl // 88140e | mov byte ptr [esi + ecx], dl // fec0 | inc al // 99 | cdq $sequence_21 = { 75f2 ab c3 56 51 52 8b733c } // n = 7, score = 100 // 75f2 | jne 0xfffffff4 // ab | stosd dword ptr es:[edi], eax // c3 | ret // 56 | push esi // 51 | push ecx // 52 | push edx // 8b733c | mov esi, dword ptr [ebx + 0x3c] $sequence_22 = { e8???????? 0fb74de0 3bc1 0f850b020000 ff75f0 8d45e0 } // n = 6, score = 100 // e8???????? | // 0fb74de0 | movzx ecx, word ptr [ebp - 0x20] // 3bc1 | cmp eax, ecx // 0f850b020000 | jne 0x211 // ff75f0 | push dword ptr [ebp - 0x10] // 8d45e0 | lea eax, dword ptr [ebp - 0x20] $sequence_23 = { 6a04 6800200000 ff7750 50 ff5644 } // n = 5, score = 100 // 6a04 | push 4 // 6800200000 | push 0x2000 // ff7750 | push dword ptr [edi + 0x50] // 50 | push eax // ff5644 | call dword ptr [esi + 0x44] condition: 7 of them and filesize < 8224768 }
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