CobaltSrike Shellcode分析

首先我们来看一张流程图

image-20211123201045600

首先打开IDA进行查看

进入主函数,主要看sub_401840()函数进行查看

image-20211112185819017

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

image-20211114141830161

拼接的管道名

004053F0=artifact.004053F0 (ASCII "\\.\pipe\MSSE-5866-server")

image-20211114142512415

跟进线程创建线程执行的函数,首先创建命名管道,再把加密过的shellcode写入管道

image-20211114143133792

Shellcode内容

image-20211114143858237

写入shellcode

image-20211114150018919

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

image-20211114150317625

从管道中读取shellcode到内存中

image-20211114150501720

image-20211114150714414

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

image-20211114151059974

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

image-20211114151532706

解密所需的数组

image-20211114151904493

解密后的数据

image-20211114152353437

之后跳转并执行

image-20211114152614378

Shellcode部分

先加载wininet.dll

image-20211114161929815

之后调用InternetOpen函数

image-20211114162309532

连接控制端192.168.202.131

image-20211114162334075

请求Beacon URL: /FXhV

image-20211114162518977

发送HTTP请求

image-20211114174801303

获取桌面窗口句柄

image-20211114174830200

处理前面对话窗口遇到的错误

image-20211114175616822

申请内存

image-20211114174903855

多次调用InternetReadFile读取文件

image-20211114174923492

读取完成后跳转执行到所申请的内存

image-20211114175016024

这里需要解密出一个dll,具体的解密算法如下:

image-20211115122512735

解密后的数据:

image-20211115163932049

反射注入DLL:

查看解密出来的DLL

image-20211115172616776

0x36c0032 -> 0x36c0041 也就是DLL的Dos头部分,下面ebx+0x8150,也是导出函数ReflectiveLoader函数的偏移

image-20211115172820956

在导出函数ReflectiveLoader函数中解析DLL,ReflectiveLoader中会调用virtualalloc()函数,申请大小为0x30000的内存,用于存放DLL:

image-20211115173716075

在内存中反射注入dll,存放在eax中0x3D15DA8

image-20211115173811388

然后开始执行dll,此时也可以到自己的c2还没有主机上线

image-20211115173929114

执行dll中

image-20211116103030220

获取对应的系统信息拼接

image-20211116103131000

获取cookie

image-20211116103241470

获取配置信息

image-20211116103319764

调用,wininet.HttpSendRequestA请求上线

image-20211116103445022

上线回连

image-20211116103628751

image-20211116103533769

对默认生成的shellcode分析发现存在大量的特征信息,导入配置文件后再次对shellcode进行分析,发现对应的关键信息已经修改

image-20211116115524286

image-20211116115534263

image-20211116115540028

Author

ol4three

Posted on

2021-11-12

Updated on

2021-11-23

Licensed under


Comments