首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cobalt Strike 4.0 Updates You Should Know

Cobalt Strike 4.0 Updates You Should Know

作者头像
Gcow安全团队
发布2020-03-24 16:08:45
1.8K0
发布2020-03-24 16:08:45
举报

你应该知道的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:

图1 Stageless payload improved

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

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

图2 Removed Windows-Dropper attack

3.新增jump横向移动命令

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

图3 Added Jump command

4.No Powershell 偏好

图4 More inject was no powershell

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

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

图5 Svc-exe added in elevate kit

图6 Runasadmin also is elevate tool

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

图7:Remove ms14-058

图8:Remove uac-dll

7.重大更新:Listener

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

a.https/http listener:

图9:Https Beacon info

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

图10 Dns Beacon info

c.External C2 Listener:

图11 External C2 listener

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

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

图12 Create a listener by using Beacon https payload

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

1.生成木马并执行

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

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

2.上线

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

图13 Beacon in ipv6

图14 Beacon in ipv4

3.界面变化

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

图15 Cobalt Strike 4.0 table view

4.提权变化

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

图16 Elevate module

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

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

图17 Author's words

图18 Create a listener for privilege escalation

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

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

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

UAC框框

图19 UAC

failed,but the password was logged in memory

图20 Failed when users was domain user

b.svc-exe

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

使用例如下情况:

图21 A administrator privilege Beacon

svc-exe priv esc:

图22 Use Svc-exe to privilege escalation

图23 Connected to system privilege beacon

c.EXP 本地提权

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

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

图24 Imported elevate kit for privilege escalation

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

图25 Runasadmin module

5.Recon 部分更新

a.Net模块新增俩参数
(a).net domain

图26 net domain command

(b).net domain_controllers

图27 net domain_controllers command

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

b.横向移动改进

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

图28 Logonpassword after privilege escalation

(a).SMB Beacon改进

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

图29 SMB Beacon now support custom pipename

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

图30 Create a listener for Lateral Movement

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

(b).jump命令

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

How to use

图31 Help of jump command

Lateral Movement kits in jump command

图32 Lateral Movement tookit in jump command

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

make_token de1ay.com\Administrator 1qaz@WSX

图33 Use make_token command to impersonal credential

使用jump命令进行横向

jump psexec DC LM

图34 Use jump command lateral movement to DC

DC Beacon Online

图35 Connected to DC through smb beacon

(c).remote-exec 命令

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

图36 Remote-exec module

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

图37 Use remote-exec to disable firewall on DC

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

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

图38 You can use powershell-import command to import module

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

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

图39 Use Invoke-Command module to remote disable firewall on DC

c.One-liner

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

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

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

图40 Show current user groups

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

抓密码提示权限不足

图41 Privilege less when logonpasswords

so,we can do like this

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

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

(我当前的beacon是x86的)

图42 Generate powershell oneliner

图43 Generated Success!

runasadmin uac-wscript + oneliner

图44 Use runasadmin to privilege escalation

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

connect 127.0.0.1

图45 Connect to beacon

图46 Connected!

重新logonpassword

图47 Re logonpasswords

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

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

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

图48 Runas with oneliner

connect 127.0.0.1

图49 Connect to beacon

图50 Connected!

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

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

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

图51 Runu command with oneliner

connect 127.0.0.1

图52 Connect to beacon

图53 Connected!

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

图54 Created a child session base on PPID 460

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

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

图55 Choose a process for target

psinject 2784 x64 + oneliner

图56 Inject powershell payload with psinject

connect 127.0.0.1

图57 Connect to beacon

connected

图58 Connected!

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

d.Link / Connect and unlink

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

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

图60 Link to a beacon through assign pipename

connect ip port

图61 Connect to tcp beacon through assign port

unlink ip pid

图62 Unlink beacon through assign process

四.总结

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

(对,没错,认准这只熊)提供的破解版,以及Yansu大大提供的二次元版

图63 cs二次元版作者大大

问答环节:

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:后台回复cobaltstrike即可获取下载链接

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Gcow安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 你应该知道的Cobalt Strike 4.0的更新!
    • 一.准备
      • 试验环境:
    • 二.更新的内容
      • 首先,先看看有什么主要更新
    • 三.看完了cs4.0的新特性,接下来开始实践一下吧
      • 1.生成木马并执行
      • 2.上线
      • 3.界面变化
      • 4.提权变化
      • 5.Recon 部分更新
    • 四.总结
      • 作为一名有职业道德的伸手党,要时刻记得吃水不忘挖井人的道理,所以在这里要非常感谢WBGlIl大大
      • (对,没错,认准这只熊)提供的破解版,以及Yansu大大提供的二次元版
相关产品与服务
弹性公网 IP
弹性公网 IP(Elastic IP,EIP)是可以独立购买和持有,且在某个地域下固定不变的公网 IP 地址,可以与 CVM、NAT 网关、弹性网卡和高可用虚拟 IP 等云资源绑定,提供访问公网和被公网访问能力;还可与云资源的生命周期解耦合,单独进行操作;同时提供多种计费模式,您可以根据业务特点灵活选择,以降低公网成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档