吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 21474|回复: 74
收起左侧

[PC样本分析] CobaltStrike4.0 远控分析

  [复制链接]
mai1zhi2 发表于 2020-12-22 08:04
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 mai1zhi2 于 2020-12-22 08:08 编辑

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.    简单查壳

0.png

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

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

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

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

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

Shellcode内容:
5.png

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

从管道读取shellcode到内存中:
01.png
8.png

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

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

解密后的数据:
07.png

紧接着跳转到shellcode并执行:
08.png


5.2 Shellcode部分:
先加载wininet.dll:
11.png

再调用函数InternetOpen函数创建一个HINTERNET根句柄:
12.png

连接控制端192.168.202.131:8081
13.png

创建请求句柄,并把数据发送到服务器:
14.png

15.png

申请0x400000大小的内存:
16.png

17.png

不断调用InternetReadFile读0x2000大小的数据到申请的内存中:
18.png

读入数据后:
19.png

然后跳转执行到所申请的内存:
20.png

这里在内存0x026a0037c处需要解密出一个dll,具体的解密算法如下:
21.png

解密后的数据:
22.png

5.3 反射注入DLL:
先查看解密出来的DLL,0x026A0030jmp ebp 跳转到0x026A003F,也就是DLL的Dos头部分,这个Dos是被修改过的,0x026A003Fdec ebp和 0x026A00A0 pop edx 没特殊含义,接下来call 026A0046 和pop ebx 主要用作保存当前eip到ebx,然后ebx加上0x7cb2,也就是导出函数ReflectiveLoader函数的偏移量 :
23.png


ReflectiveLoader中会调用virtualalloc()函数,申请大小为0x3D000的内存,用于存放DLL:
24.png

在内存中反射注入dll,存放在0x0690000,
25.png


然后压入3个参数执行dll的dllmain函数:
27.png
28.png
谢谢观看。

CS分析.7z

94.5 KB, 下载次数: 201, 下载积分: 吾爱币 -1 CB

点评

请楼主将样本压缩包加密码后再上传!以防被杀软删除及小白误点样本程序发生意外!  发表于 2021-1-9 20:53

免费评分

参与人数 25吾爱币 +22 热心值 +24 收起 理由
HideMyEye + 1 谢谢@Thanks!
APOTOXIN + 1 + 1 我很赞同!
wanleya + 1 + 1 我很赞同!
重子塌陷 + 1 + 1 我很赞同!
yujun。 + 1 + 1 技术帖子,就应该被支持。
d3d + 1 + 1 谢谢@Thanks!
qaqpop + 1 + 1 我很赞同!
绝地飞鸿 + 1 大佬666666666666
lookerJ + 1 + 1 我很赞同!
youncyb + 1 + 1 我很赞同!
azcolf + 1 + 1 用心讨论,共获提升!
kgd74 + 1 + 1 谢谢@Thanks!
Max陳大發 + 1 谢谢@Thanks!
0-n-3 + 1 + 1 热心回复!
gaosld + 1 + 1 热心回复!
Bizhi-1024 + 1 谢谢@Thanks!
fengbolee + 1 + 1 用心讨论,共获提升!
fin618 + 1 + 1 热心回复!
塞活 + 1 + 1 热心回复!
麻辣书生 + 1 + 1 厉害~大佬~
Cherish丶Z + 1 + 1 热心回复!
antiol + 3 + 1 热心回复!
habhab + 1 大佬厉害的
没毛的小白兔 + 1 + 1 我很赞同!
jxgz10310 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| mai1zhi2 发表于 2020-12-23 10:38
Yennfer_ 发表于 2020-12-22 15:15
反射加载的DLL后续呢

该dll后面有约100个case的功能,当时也分析了一些,不过功能实在有点多,再加上作者有msf-payload这个开源dll项目,就作罢了。
M00yy 发表于 2021-4-26 11:13
mai1zhi2 发表于 2020-12-23 10:38
该dll后面有约100个case的功能,当时也分析了一些,不过功能实在有点多,再加上作者有msf-payload这个开 ...

请问这个"msf-payload这个开源dll项目" 有地址吗?谢谢
jxgz10310 发表于 2020-12-22 10:23
mllaopang 发表于 2020-12-22 11:02

厉害,大神
indexengine 发表于 2020-12-22 11:18
底层的东西,果然好难啊
Dlan 发表于 2020-12-22 11:27
CS4.0 好多人都在用,可以分析下特征和免杀骚扰做
Yennfer_ 发表于 2020-12-22 15:15
反射加载的DLL后续呢
Parkourr 发表于 2020-12-22 16:56
大佬分析的好全,我再仔细瞅瞅
wengwengshan 发表于 2020-12-22 19:05
有点难哦,
Chost 发表于 2020-12-22 22:06
请教CS 生成PowerShell后门,怎么让目标自动上线?
sasigai 发表于 2020-12-22 23:58
小白只能是惊叹

免费评分

参与人数 1吾爱币 +1 收起 理由
古画成灰 + 1 谢谢@Thanks!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 05:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表