-
-
[原创]Cobalt Strike4.0远控木马分析
-
发表于:
2020-12-21 23:22
20984
-
[原创]Cobalt Strike4.0远控木马分析
1. 概述
Cobalt Strike是渗透测试神器,其功能简介就不用多说了,其4.0版本更新已有一段时间了,这里分析一下,若有错误的地方望大伙指出,谢谢。
2. 样本信息
样本名 artifact4.exe
样本大小 14,336 字节
MD5 9ff9170e001f5619a0be11516051f538
SHA1 b824ed85d7dbe14f193f70d328d061e90c760736
3. 实验环境
服务端:kali 2020 ip:192.168.202.131
客户端:windows 7 ip:192.168.202.139
受控端:windows 7 ip:192.168.202.132
4. 简单查壳

5. 具体分析
5.1后门主体部分:
进入主函数,主要看sub_401840里面的主要功能

进入sub_401840函数,先获取系统时间戳,然后拼接字符串和创建线程通过管道读取shellcode,最后执行shellcode。

拼接的管道名\.\pipe\MSSE-5296-server:

跟进创建线程执行的函数:

继续跟进函数WriteShellcodeInPipe_401648,其主逻辑首先创建命名管道,再把加密过的大小为0x320h的shellcode写入管道:

其shellcode内容如下:

写入shellcode:

跟进接收shellcode函数RevShellcode_4017e2:其主体逻辑是先申请内存存放读取出来的shellcode,然后解密并执行。

从管道读取shellcode到内存中:


将读取出来的Shellcode在DecyptAndrRunShellcode_40158E函数执行解密,该函数的主体逻辑,申请内存存放解密后shellcode,然后修改内存属性并跳转执行:

其解密算法如下,解密算法比价简单,首先遍历shellcode,遍历次数与4求模,得到的值作为403008数组的下标得到一字节,用该字节与shellcode对应遍历时的字节异或,最终得到解密后的字节:

解密所需的数组:

解密后的数据:

[注意]看雪招聘,专注安全领域的专业人才平台!