CobaltStrike_Sleeve_BeaconLoader_x64_o_v4_3_v4_4_v4_5_and_v4_6
Description
Cobalt Strike's sleeve/BeaconLoader.x64.o (Base) Versions 4.3 through at least 4.6
Query · yara
strings:
/*
33 C0 xor eax, eax
83 F8 01 cmp eax, 1
74 63 jz short loc_378
48 8B 44 24 20 mov rax, [rsp+38h+var_18]
0F B7 00 movzx eax, word ptr [rax]
3D 4D 5A 00 00 cmp eax, 5A4Dh
75 45 jnz short loc_369
48 8B 44 24 20 mov rax, [rsp+38h+var_18]
48 63 40 3C movsxd rax, dword ptr [rax+3Ch]
48 89 44 24 28 mov [rsp+38h+var_10], rax
48 83 7C 24 28 40 cmp [rsp+38h+var_10], 40h ; '@'
72 2F jb short loc_369
48 81 7C 24 28 00 04 00 00 cmp [rsp+38h+var_10], 400h
73 24 jnb short loc_369
48 8B 44 24 20 mov rax, [rsp+38h+var_18]
48 8B 4C 24 28 mov rcx, [rsp+38h+var_10]
48 03 C8 add rcx, rax
48 8B C1 mov rax, rcx
48 89 44 24 28 mov [rsp+38h+var_10], rax
48 8B 44 24 28 mov rax, [rsp+38h+var_10]
81 38 50 45 00 00 cmp dword ptr [rax], 4550h
75 02 jnz short loc_369
*/
$core_sig = {
33 C0
83 F8 01
74 63
48 8B 44 24 20
0F B7 00
3D 4D 5A 00 00
75 45
48 8B 44 24 20
48 63 40 3C
48 89 44 24 28
48 83 7C 24 28 40
72 2F
48 81 7C 24 28 00 04 00 00
73 24
48 8B 44 24 20
48 8B 4C 24 28
48 03 C8
48 8B C1
48 89 44 24 28
48 8B 44 24 28
81 38 50 45 00 00
75 02
}
/*
8B 04 24 mov eax, [rsp+18h+var_18]
FF C0 inc eax
89 04 24 mov [rsp+18h+var_18], eax
8B 44 24 28 mov eax, [rsp+18h+arg_8]
39 04 24 cmp [rsp+18h+var_18], eax
73 20 jnb short loc_2E7
8B 04 24 mov eax, [rsp+18h+var_18]
0F B6 4C 24 30 movzx ecx, [rsp+18h+arg_10]
48 8B 54 24 20 mov rdx, [rsp+18h+arg_0]
0F BE 04 02 movsx eax, byte ptr [rdx+rax]
33 C1 xor eax, ecx
8B 0C 24 mov ecx, [rsp+18h+var_18]
48 8B 54 24 20 mov rdx, [rsp+18h+arg_0]
88 04 0A mov [rdx+rcx], al
*/
$deobfuscator = {
8B 04 24
FF C0
89 04 24
8B 44 24 28
39 04 24
73 20
8B 04 24
0F B6 4C 24 30
48 8B 54 24 20
0F BE 04 02
33 C1
8B 0C 24
48 8B 54 24 20
88 04 0A
}
condition:
$core_sig and not $deobfuscator