Cobalt Strike 4.0 Updates You Should Know

admin 2021年5月6日04:19:50评论80 views字数 4591阅读15分18秒阅读模式

你应该知道的Cobalt Strike 4.0的更新!

本文由Gcow安全团队绝影小组小离师傅原创,属于教程类文章
全文字数2348字 图片63张 预计10分钟阅读完毕
文中有一个小推荐 请各位看官不要在意

我相信大家都被一条信息给炸了锅“cobaltstrike4.0破解版出来了”,这对于我们这些穷逼来说是一件好事,今天我就带大家看看cs4.0更新了啥

在这里先声明,cobaltstrike的本意是用于教育目的,并非提供给非法渗透

一.准备

试验环境:

```
Kali ipv4:192.168.1.119
ipv6:出于隐私考虑,没写

靶场win2008 ipv4:192.168.1.162
10.10.10.80
ipv6:处于隐私考虑,没写

靶场DC Win2012 ipv4:10.10.10.10

```

本文只是演示cs4.0的新特性,并非真正渗透

二.更新的内容

首先,先看看有什么主要更新

1.Stageless:

Cobalt Strike 4.0 Updates You Should Know

可以看到,更新日志提到Web Delivery攻击方式,在使用64位的payload的时候,使用的是stageless攻击方式,而regsvr32攻击方式同时被去掉了,因为不能注入完整的payload,同时,作者在视频中提到,在cs4.0中将会大大使用stageless,很少会使用stager.

2.移除媒介自动播放攻击

Cobalt Strike 4.0 Updates You Should Know

3.新增jump横向移动命令

其实就是把以前psexecwmi等的整合到一个模块里,并且,当使用psexec_psh进行横向的时候会使用stager,其他方式均为stageless

Cobalt Strike 4.0 Updates You Should Know

4.No Powershell 偏好

Cobalt Strike 4.0 Updates You Should Know

5.提权新成员:SVC-exe和runasadmin

svc-exe其实就是在本地执行psexec(作者吐槽)

Cobalt Strike 4.0 Updates You Should Know

Cobalt Strike 4.0 Updates You Should Know

6.同时移除了ms14-058 exp 和uac-dll提权方式

Cobalt Strike 4.0 Updates You Should Know

Cobalt Strike 4.0 Updates You Should Know

7.重大更新:Listener

http/https/dns均支持一个payload填写多个ip或者域名,相当于把多个相同payloadlistener整合到一起,并且支持填入C2参数以及代理参数

a.https/http listener:

Cobalt Strike 4.0 Updates You Should Know

细心的同学可能发现,下面新的选项是用来干啥的,因为在cs4.0中,对C2攻击方式进行了优化,你可以在profile选择你在外部导入进去的c2 profile,然后修改HTTPS Port(bind)的端口为你C2 服务器的端口(我也不是很懂,如果有误的话,大佬们请指正,以免误人子弟)

b.Dns listener:

Cobalt Strike 4.0 Updates You Should Know

c.External C2 Listener:

Cobalt Strike 4.0 Updates You Should Know

三.看完了cs4.0的新特性,接下来开始实践一下吧

首先,先新建一个listener,在这里,你可以填写你cs服务器的公网IPv4内网IPv4IPv6(IPv6要用中括号,例[240c::6666])以及你CS服务器的域名,我在这里填入了我kaliipv4ipv6

Cobalt Strike 4.0 Updates You Should Know

这里的HTTPS Port (C2)就是上线端口

1.生成木马并执行

我这边直接生成了一个stageless的木马(不熟悉的话可以去看啊离上一篇文章)

生成的木马丢上去靶机执行然后等一小会(顺带一提:不知道是不是出于某种原因,cs直接生成的马,免杀并没有效果)

2.上线

因为我靶机有ipv6,所以beaconip也会显示ipv6,同时,因为也有ipv4,所以也会显示ipv4(意思为使用不同的协议的ip进行同时交互)

Cobalt Strike 4.0 Updates You Should Know

Cobalt Strike 4.0 Updates You Should Know

3.界面变化

同时CS4.0改了界面,可以显示当前的beacon进程,PID,系统位数

Cobalt Strike 4.0 Updates You Should Know

4.提权变化

正如我上面提到,CS4.0版本已经移除了uac-dllms14-058提权方式,同时bypassuac命令被移除

Cobalt Strike 4.0 Updates You Should Know

为了做实验,我生成了一个名为Priv Esclistenerpayload:tcp beacon)(建议勾选Bind to localhost only

为什么要勾选呢?作者的话:(反正就是勾选就对了)

Cobalt Strike 4.0 Updates You Should Know

Cobalt Strike 4.0 Updates You Should Know

a.UAC-token-duplication(UAC口令复制提权)

会在主机弹出一个UAC框去欺骗管理员输入密码,可能是因为域的原因,即使输入了也会提权失败,但是没关系,因为已经密码记录在内存中了,我们只需要本地提权并使用mimikatz读取密码

【按照实际情况来说,其实输入本地管理员口令的更多,这里我为了演示,在UAC弹窗中输入了域管理员口令】

UAC框框

Cobalt Strike 4.0 Updates You Should Know

failed,but the password was logged in memory

Cobalt Strike 4.0 Updates You Should Know

b.svc-exe

svc-exe这个参数,并不是和exp提权那样,帮你从普通用户 ”pwn!!“ 一下子拿下系统,而是当管理员权限满足不了你的时候,可以用svc-exe进行提升(类似getsystem命令,但是getsystem不太好使)

使用例如下情况:

Cobalt Strike 4.0 Updates You Should Know

svc-exe priv esc:

Cobalt Strike 4.0 Updates You Should Know

Cobalt Strike 4.0 Updates You Should Know

c.EXP 本地提权

因为现在是域用户,又又又又只能用exp本地提权了,因为作者已经在cs4.0中删除了exp,但是你可以通过GitHubclone作者的【Elevate Kit】项目,然后在cs加载模块

cs作者的项目:https://github.com/rsmudge/ElevateKit

Cobalt Strike 4.0 Updates You Should Know

d.runasadmin 提权模块(后面会用到)

Cobalt Strike 4.0 Updates You Should Know

5.Recon 部分更新

a.Net模块新增俩参数

(a).net domain

Cobalt Strike 4.0 Updates You Should Know

(b).net domain_controllers

Cobalt Strike 4.0 Updates You Should Know

可以看到,计算机名为DC的就是域控,接下来可以鞭挞它了

b.横向移动改进

exp提权,然后抓密码(此处密码为刚刚UAC钓到的域管理员明文密码)

Cobalt Strike 4.0 Updates You Should Know

(a).SMB Beacon改进

生成一个用于横向移动的listener,取名为LM,并使用SMB Beacon payload,可以看到,SMB Beacon支持自定义pipe name了

Cobalt Strike 4.0 Updates You Should Know

有点小伙伴要问了,为什么在旧版的cs中没有这个呢?其实,旧版cs中的pipe name是[status_端口号]

Cobalt Strike 4.0 Updates You Should Know

如图,旧版cs的pipe name则为status_6001

(b).jump命令

jump命令本质上就是把原来零散的psexec,psexec64,psexec_psh,winrm,winrm64整合到一个套件里(wmi已经移除)

How to use

Cobalt Strike 4.0 Updates You Should Know

Lateral Movement kits in jump command

Cobalt Strike 4.0 Updates You Should Know

老样子,调用刚刚抓到的域凭据

make_token de1ay.com\Administrator 1qaz@WSX

Cobalt Strike 4.0 Updates You Should Know

使用jump命令进行横向

jump psexec DC LM

Cobalt Strike 4.0 Updates You Should Know

DC Beacon Online

Cobalt Strike 4.0 Updates You Should Know

(c).remote-exec 命令

可以选择以下三个套件进行远程命令执行

Cobalt Strike 4.0 Updates You Should Know

remote-exec wmi DC netsh advfirewall set allprofiles state off (当然,和上面一样,也要先调用凭据)

Cobalt Strike 4.0 Updates You Should Know

(d).Invoke-Command(个人补充)

补充:在CS中,可以使用powershell-import导入ps1脚本,然后使用powerpick去执行脚本的模块

Cobalt Strike 4.0 Updates You Should Know

其实可以使用系统自带的Invoke-Command模块进行远程命令执行(当然,也需要调用凭据

powerpick Invoke-Command -ComputerName DC -ScriptBlock { netsh advfirewall set allprofiles state off }

Cobalt Strike 4.0 Updates You Should Know

c.One-liner

oneliner其实就是生成一段在目标beacon本地运行的payload,你可以用它在目标beacon中进行花样玩耍,配合的方式有很多种,如:runas,runu,runasadmin,psinject

(a).oneliner配合runasadmin进行提权

cs中,只有当前用户名为administrator的管理员用户,cs才会自动提权,当用户名为别的管理员,cs并不会自动提权,例如以下情况:

Cobalt Strike 4.0 Updates You Should Know

可以看到,xiaoli这个用户是本地管理员,可是cs没有帮我们提权

抓密码提示权限不足

Cobalt Strike 4.0 Updates You Should Know

so,we can do like this

①.生成oneliner,右击beacon-Access-oneliner

在这里的话,是看beacon的arch生成oneliner,我当前的beacon是64位,所以x86和x64的payload都可以,x86 beacon只能执行x86的payload

(我当前的beacon是x86的)

Cobalt Strike 4.0 Updates You Should Know

Cobalt Strike 4.0 Updates You Should Know

runasadmin uac-wscript + oneliner

Cobalt Strike 4.0 Updates You Should Know

执行完它并不会自动连接,需要去手动连接

connect 127.0.0.1

Cobalt Strike 4.0 Updates You Should Know

Cobalt Strike 4.0 Updates You Should Know

重新logonpassword

Cobalt Strike 4.0 Updates You Should Know

(b).One-liner 配合runas生成一个指定用户的权限

在这里的话,也是看beacon的arch生成oneliner,同上

runas DE1AY\Administrator 1qaz@WSX + oneliner 注:runas在system权限的beacon运行会失败

Cobalt Strike 4.0 Updates You Should Know

connect 127.0.0.1

Cobalt Strike 4.0 Updates You Should Know

Cobalt Strike 4.0 Updates You Should Know

(c).One-liner 配合runu在指定进程执行命令

在这里的话,是看目标进程的arch生成oneliner,我的目标进程是64位,所以生成x64和x86的payload都可以,x86进程则只能生成x86 payload

runu 460 + oneliner 这边选择了一个pid为460的进程

Cobalt Strike 4.0 Updates You Should Know

connect 127.0.0.1

Cobalt Strike 4.0 Updates You Should Know

Cobalt Strike 4.0 Updates You Should Know

同时看到该beacon的父进程就是我们刚刚所指定的

Cobalt Strike 4.0 Updates You Should Know

(d).Psinject使用one-liner payload注入进程

在psinject这里,x64进程可以注入x86/x64的payload,x86进程只能注入x86

Cobalt Strike 4.0 Updates You Should Know

psinject 2784 x64 + oneliner

Cobalt Strike 4.0 Updates You Should Know

connect 127.0.0.1

Cobalt Strike 4.0 Updates You Should Know

connected

Cobalt Strike 4.0 Updates You Should Know

当然,还有更多的姿势等你来解锁~

d.Link / Connect and unlink

link支持指定pipe nameconnect支持指定端口unlink支持指定pid号,其目的是为了可以更好管理多个smb beacon listenertcp beacon listener

link ip pipe_name(图中因为没有111这个pipe name,连不上就报错了)

Cobalt Strike 4.0 Updates You Should Know

connect ip port

Cobalt Strike 4.0 Updates You Should Know

unlink ip pid

Cobalt Strike 4.0 Updates You Should Know

四.总结

作为一名有职业道德的伸手党,要时刻记得吃水不忘挖井人的道理,所以在这里要非常感谢WBGlIl大大

Cobalt Strike 4.0 Updates You Should Know
(对,没错,认准这只熊)提供的破解版,以及Yansu大大提供的二次元版

Cobalt Strike 4.0 Updates You Should Know

问答环节:

```
Q&A

问:为什么x64的beacon和session可以同时兼容x86和x64的payload?

答:CS特性,作者超级偏爱x86,link:https://blog.cobaltstrike.com/2016/03/10/cobalt-strike-3-2-the-inevitable-x64-beacon/

问:为什么作者强推Stageless?

答:因为stager不安全,更脆弱,容易被检测

```
文末惊喜!

两天过去了,我知道,大家都在等CS完美破解版
CS4.0去暗桩,windows teamserver支持,vnc修复,x64 payload修复,汉化支持 终极版本今天发布!!Gcow安全团队核心成员 J0o1ey’参考先知某牛和国外某牛的修复方法,目前已无x64 payload和暗桩问题

小声BB:关注Gcow安全团队公众号后台回复cobaltstrike即可获取下载链接

Cobalt Strike 4.0 Updates You Should Know

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年5月6日04:19:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Cobalt Strike 4.0 Updates You Should Knowhttps://cn-sec.com/archives/246343.html