CobaltStrike笔记(1)

渗透技巧 2年前 (2022) admin
1,238 0 0

一、    基础用法

首先要下载一个cs,现在基本是4.x以上的版本了,我觉得小版本都差不多,太高的版本没有太大必要,这里用的t00ls的狗版(4.4)。
https://www.t00ls.com/viewthread.php?tid=66233

CobaltStrike笔记(1)

自带jdk环境,dogcs.jar为本体,rundogcs.vbs为客户端启动脚本,teamserver为服务端启动脚本。如果你是其他版本的cs,也会有这几个文件。
一般服务端我们部署在linux上,客户端在windows上。
现在来部署服务端,很简单,全部复制到linux上执行。
sudo chmod 777 teamserver
sudo ./teamserver 192.168.29.135 123456

CobaltStrike笔记(1)

密码123456,端口默认4488(原版默认50050),端口可以在teamserver修改。

CobaltStrike笔记(1)

然后打开客户端连接之。

CobaltStrike笔记(1)

只需要host,port,password三个参数,客户端的配置文件位于C:Usersxxx.aggressor.prop。
以下为正常登录页面。

CobaltStrike笔记(1)

其中最重要的是配置Listeners,这里不要进Attacks,直接Cobalt Strike——Listeners。

CobaltStrike笔记(1)

常用的是Beacon HTTPS和External C2,我们都添加进去。

CobaltStrike笔记(1)

CobaltStrike笔记(1)

外部C2相当于一个第三方中转信道,支持自定义扩展,最著名的C2扩展如下,它可以用来解决原版cs无法上线linux/macOS问题。
https://github.com/gloxec/CrossC2
然后就是生成载荷,常用Attacks——Packages

CobaltStrike笔记(1)

HTML Application为hta。
MS Office Macro为office宏。
Payload Generator为各种语言的shellcode。
Windows Executable直接生成exe/dll。
Windows Executable (S)多了powershell和raw二进制文件。
其中C#的shellcode可能有BUG是直接给的二进制文件。

CobaltStrike笔记(1)

可简单用python读出shellcode。

f = open("payload.cs","r")print(f.read())

CobaltStrike笔记(1)

这里Listener只能选HTTPS,简单生成一个64位的exe然后进行上线。

CobaltStrike笔记(1)

CobaltStrike笔记(1)

默认sleep 60,因此要sleep 1之后再执行命令比较方便。

CobaltStrike笔记(1)

至此完成基本功能,但我们的木马还非常脆弱,稍微有杀毒的环境就是直接暴毙。

CobaltStrike笔记(1)

二、    静态免杀

静态免杀指的是,杀毒软件直接对文件扫描,发现有病毒特征,查杀之。一般发生在文件落地阶段,下载,解压即杀。
因此规避静态查杀的方法有很多。

1,文件不落地。详情见之前的文章《一个文件一条命令一个游戏》,不过这种方法由于命令特征明显,比直接的运行木马更加易被拦截。

2,分离加载。shellcodeloader,从url,txt,图片里面加载shellcode,是非常好用的静态免杀处理方案。而且很多时候通过加密,shellcode内置在exe中也没关系。

3,变动md5。有时候你的exe本身就短时间免杀,只不过因为云查杀等原因被入库了,这种时候只需要简单的修改文件md5即可再次免杀。修改md5的办法通常是即时编译一个新木马,或者修改木马图标或者备注。

4,白加黑。通过劫持正常exe的dll,免杀效果较好。

5,签名。通过某些渠道给exe做正规签名,免杀效果较好。以及存在一些泄露的签名,但往往会被加入黑名单,签名了反而直接杀。

6,加壳/其他语言编译,其目的是混淆杀毒软件,但由于被滥用反而导致反效果,比如go编译和python编译的exe可能更容易被杀。而且还会增加体积。

这里以最常用的2举例,github搜shellcodeLoader,找个star最多的。
https://github.com/knownsec/shellcodeloader
cs客户端生成raw文件(beacon.bin),拖进去,随便选一个加载方式。

CobaltStrike笔记(1)

桌面上生成loader.exe,去看看免杀效果。

CobaltStrike笔记(1)

非常的差,毕竟是个2020年的赞数最多的项目。
但实机还是可以过360,无法过火绒和defender

CobaltStrike笔记(1)

请自行去github或者其他论坛寻找冷门shellcodeloader项目。

三、    动态免杀

我们找到了一个还算合格的项目。

CobaltStrike笔记(1)

CobaltStrike笔记(1)

CobaltStrike笔记(1)

然而实际加载shellcode的一瞬间,还是被发现并且精准检测出是CS,这就是面临的第二重防护,双击时的动态查杀。

CobaltStrike笔记(1)

此时如果开启defender的云查杀会迅速入库,至此以后这个加载器都会报毒。而在如果关闭云查杀,就会出现以下情况——如果不加载shellcode,无论怎么双击,defender并不会管这个加载器,如果加载shellcode,就会报毒。
这就很明显静态查杀已被绕过,首次双击被动态查杀,第二次双击被云查杀。
Meterpreter的shellcode当然也会被敏锐的找到,混淆多次也没用。

CobaltStrike笔记(1)

但如果是一些简单且冷门的shell,defender就毫无反应。
msfvenom -l payloads | grep ‘windows’

CobaltStrike笔记(1)

很显然,这是因为Meterpreter和CobaltStike的内存特征被完全抓住了,我们需要更好的方法来绕过,而cs恰好支持这种扩展,就是之前提到的外部C2。

四、    外部C2

外部C2实际上就是Listener扩展,支持以各种语言来专门写一个和2222端口通信并且上线的第三方Beacon。由于其高度扩展性,大大的改变了cs的内存特征,正好用来过动态免杀。
https://github.com/threatexpress/malleable-c2
这个C2通过伪装成jquery,利用header来通信,而且用起来很简单,下载对应的版本,服务端执行。

sudo ./teamserver 192.168.29.135 123456 C2profile/jquery-c2.4.4.profile

如果要自己修改特征,需要用c2lint去校验。

./c2lint C2profile/jquery-c2.4.4.profile

同样的Loader,同样的HTTPS,defender一下子就安静了。

CobaltStrike笔记(1)

还有CrossC2,一般只用linux,所以只需要下载两个文件。
https://github.com/gloxec/CrossC2/releases/
CrossC2-GithubBot-2022-06-07.cna 和genCrossC2.Linux
genCrossC2.Linux放服务端,记住该文件路径,CrossC2-GithubBot-2022-06-07.cna放客户端,填入该文件路径。

CobaltStrike笔记(1)

然后打开cs客户端,Cobalt Strike——Scripts Manager加载cna脚本。

CobaltStrike笔记(1)

Create CrossC2 Listener——Create reverse HTTPS Listener可生成一条命令,在服务端根目录执行这条命令即可(key在这个目录)。

CobaltStrike笔记(1)

CobaltStrike笔记(1)

随后在linux系统上运行t_cc2.out即可上线linux机器。

CobaltStrike笔记(1)


更多C2请自行搜索。


原文始发于微信公众号(珂技知识分享):CobaltStrike笔记(1)

版权声明:admin 发表于 2022年7月6日 上午11:39。
转载请注明:CobaltStrike笔记(1) | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...