工具
Metasploit Framework
Nmap
SQLMap
Dirb
Gobuster
Netcat
反弹shell
Hydra
wfuzz
wpscan
searchsploit
字典
arp-scan
hashcat
Netdiscover
Cobalt Strike
Goby
Nessus
Xray
Nuclei
-
+
首页
Cobalt Strike
Cobalt Strike 是一款企业级渗透测试与红队评估工具,核心定位是模拟高级持续性威胁(APT)攻击行为。 最初基于 Metasploit 框架开发,后由美国 Strategic Cyber LLC 公司独立迭代。 使用 Cobalt Strike 协调分布式红队的工作:在一台或多台远程主机上进行 Cobalt Strike,启动您的团队服务器并让您的团队进行连接。 用户手册:https://hstechdocs.helpsystems.com/manuals/cobaltstrike/current/userguide/content/topics/welcome_main.htm ## 核心架构 Cobalt Strike 采用 Client-Server(客户端 - 服务器)架构,核心组件包括 Team Server(团队服务器)、Cobalt Strike Client(客户端) 与 Beacon(代理 payload),三者协同实现攻击与控制流程。 | 组件名称 | 功能定位 | 部署场景 | | -------------------- | ------------------------------------------------------------ | ----------------------------------------------- | | Team Server | 核心控制节点,负责管理 Beacon 会话、处理 C2 通信、存储攻击日志、支持多用户协作 | 需部署在公网 / 内网可访问的服务器(红队控制端) | | Cobalt Strike Client | 图形化操作界面(Windows/macOS/Linux 跨平台),用于配置攻击、管理会话、执行命令 | 测试人员本地设备 | | Beacon | 植入目标主机的 “代理 payload”,负责与 Team Server 通信、执行命令、反馈结果 | 目标主机(Windows/macOS/Linux) | > Beacon Beacon 是 Cobalt Strike 的 “核心武器”,其设计高度贴合隐蔽性需求,主要特点包括: 分阶段加载:支持 “Stager(小型加载器)+ Staged(完整功能体)” 模式,Stager 体积极小(仅数百字节),可规避传统杀毒软件的静态检测,后续通过 C2 下载 Staged 功能体。 通信灵活性:支持多种 C2 通信协议,覆盖不同网络环境: - 常规协议:HTTP/HTTPS(伪装成正常网页流量)、DNS(利用 DNS 查询隧道通信,适合防火墙严格的环境); - 内网协议:SMB(通过 Windows 共享协议通信,适合内网横向移动,无额外网络流量)、TCP(原始 TCP 连接,适合简单环境)。 Sleep 模式:默认采用 “间歇性通信”(如每 60 秒连接一次 Team Server),可自定义 Sleep 时间,减少网络流量特征,躲避流量分析工具检测。 功能扩展性:支持通过 “Aggressor Script( aggressor 脚本)” 扩展功能,例如自定义命令、自动化攻击流程、集成第三方漏洞利用工具(如 Mimikatz、CVE-2021-44228 Log4j 漏洞利用工具)。 ## 核心功能 Cobalt Strike 的功能设计围绕 “APT 攻击流程” 展开,从初始入侵到权限维持、横向移动、数据窃取,形成完整闭环,核心功能可分为 6 大类: > 初始入侵:获取目标权限 初始入侵的核心是 “将 Beacon 植入目标主机”,支持多种入侵方式。 钓鱼攻击: - 鱼叉式钓鱼邮件:生成伪装的邮件模板(支持自定义发件人、附件),附件可伪装为文档(如带宏的 Word、Excel)、可执行文件(EXE/DLL)、快捷方式(LNK),目标打开后触发 Beacon 加载; - 网页钓鱼:生成伪装网页(如登录页、内部系统页面),通过漏洞(如 XSS)或社会工程学诱导目标访问,利用浏览器漏洞(如 CVE-2021-41773 Apache 漏洞)执行 Beacon。 漏洞利用: - 集成常用漏洞利用模块(如 EternalBlue 永恒之蓝、Log4j、ProxyShell 等),可直接针对目标系统 / 应用的漏洞植入 Beacon; - 支持自定义 Payload:通过 “Payload Generator” 生成不同格式的 Beacon(EXE、DLL、PowerShell 脚本、Python 脚本、Shellcode 等),适配不同植入场景(如进程注入、注册表启动项)。 > 权限维持:长期驻留目标 获取初始权限后,需避免被目标发现并保持长期控制。 persistence 脚本 :内置多种权限维持模块,例如: - 注册表启动项:将 Beacon 写入 HKCU\Software\Microsoft\Windows\CurrentVersion\Run 等位置,实现开机自启; - 计划任务:创建隐藏的 Windows 计划任务,定期执行 Beacon; - 服务植入:将 Beacon 伪装为系统服务(如 “Windows Update Service”),通过服务启动维持权限。 凭证窃取与复用: - 集成 Mimikatz(密码抓取工具),可抓取目标主机的本地管理员密码、域管理员凭证(NTLM Hash、Kerberos 票据); - 支持 “黄金票据(Golden Ticket)”“白银票据(Silver Ticket)” 生成:通过窃取的域控制器凭证,生成伪造的 Kerberos 票据,实现 “无密码登录域内其他主机”,且难以被检测。 > 横向移动:扩大控制范围 从 “单台目标主机” 扩散到 “整个内网”,是红队评估的核心环节,Cobalt Strike 提供多种横向移动手段: SMB Beacon:利用 Windows SMB 协议(445 端口)进行横向移动,无需额外网络连接,直接通过内网共享协议在主机间传递 Beacon,隐蔽性极高; WMI 横向移动:通过 Windows Management Instrumentation(WMI)远程执行命令,在目标主机上加载 Beacon(如 wmic /node:192.168.1.100 process call create "cmd /c beacon.exe"); 工具集成:支持调用外部横向移动工具,如 PsExec(通过 SMB 执行程序)、RDP 远程桌面(利用窃取的凭证登录后植入 Beacon)、WinRM(Windows 远程管理协议)。 > 数据窃取:获取敏感信息 控制目标网络后,需提取敏感数据,核心功能包括: 文件操作:支持远程下载目标主机文件(如 download 财务数据.xlsx)、上传恶意文件(如勒索软件、挖矿程序)、删除日志文件(清理痕迹); 信息收集: - 系统信息:获取目标主机的操作系统版本、硬件配置、进程列表(systeminfo、ps); - 网络信息:获取内网 IP 段、路由表、开放端口(ipconfig、portscan); - 凭证信息:抓取浏览器保存的密码(如 Chrome、Edge)、VPN 凭证、数据库账号密码; 行为监控:支持键盘记录(keylogger)、屏幕截图(screenshot),实时监控目标用户的操作行为。 > C2 通信伪装:躲避检测 C2(Command and Control,命令与控制)通信是攻击者与目标主机的 “连接通道”,也是防御方的核心检测点。 Cobalt Strike 通过 Malleable C2(可塑 C2) 技术实现通信伪装: 流量自定义:通过编辑 “Malleable C2 配置文件”,自定义 HTTP/HTTPS 流量的特征,例如: - 伪装 User-Agent(如 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36); - 伪装 HTTP 头(如添加 Referer: `https://www.baidu.com`、Cookie: JSESSIONID=xxx); - 伪装请求路径(如将 C2 通信路径伪装为 /wp-admin/、/api/update 等正常网页路径)。 加密通信:HTTPS/DNS 通信均采用加密传输,避免流量内容被监控;SMB/TCP 通信支持自定义加密算法,进一步提升隐蔽性。 域名轮转:支持多个 C2 域名轮换使用,若某个域名被封禁,自动切换至其他域名,确保通信不中断。 > 团队协作:支持多红队成员协同 作为企业级工具,Cobalt Strike 内置团队协作功能,满足多测试人员共同执行红队评估: 会话共享:多个 Client 可连接同一 Team Server,共享所有 Beacon 会话,支持权限分配(如 “只读权限”“命令执行权限”); 操作日志:自动记录所有成员的操作(如 “用户 A 执行了 keylogger 命令”“用户 B 下载了文件 xxx”),便于事后审计与报告生成; 备注与标签:支持对 Beacon 会话添加标签(如 “域控制器”“财务服务器”)、备注(如 “已抓取管理员密码”),提升协作效率。 ## 工作流程 > 部署 Team Server 在公网或内网可访问的服务器上启动 Team Server,配置 C2 通信参数(如 HTTP 端口、DNS 域名、Malleable C2 配置文件),设置团队成员账号密码。 > 生成并植入 Beacon 通过 Client 生成适合的 Beacon(如带宏的 Word 文档),结合钓鱼邮件或漏洞利用,将 Beacon 植入目标主机。 目标执行后,Beacon 会主动连接 Team Server,建立 “会话”。 > 初始权限提升 若 Beacon 权限较低(如普通用户),通过内置提权模块(如利用 CVE-2020-0787 漏洞)或窃取本地管理员凭证,提升至 SYSTEM 权限。 > 内网信息收集 执行 ipconfig、netstat、domain_query 等命令,收集内网拓扑、域内主机列表、敏感账号信息,确定下一步横向移动目标。 > 横向移动与权限扩张 利用 SMB Beacon、WMI、PsExec 等工具,从已控制主机扩散至其他主机(如域控制器、数据库服务器),逐步控制整个内网。 > 数据窃取与痕迹清理 下载敏感文件(如财务数据、商业机密),执行 keylogger 或 screenshot 监控用户行为;最后删除日志文件(如 wevtutil cl Security)、卸载 Beacon,清除攻击痕迹。 > 生成评估报告 基于 Team Server 记录的操作日志,整理发现的漏洞(如内网权限配置不当、未修复高危漏洞)、防御盲区(如安全设备未检测到 C2 通信),提供修复建议。 ## 启动 > 服务端启动 1、进行配置。 ```bash ┌──(kali㉿kali)-[~/Desktop] └─$ cd CobaltStrike4.8_www.ddosi.org ┌──(kali㉿kali)-[~/Desktop/CobaltStrike4.8_www.ddosi.org] └─$ ls Client Server ┌──(kali㉿kali)-[~/Desktop/CobaltStrike4.8_www.ddosi.org] └─$ cd Server ┌──(kali㉿kali)-[~/Desktop/CobaltStrike4.8_www.ddosi.org/Server] └─$ sudo chmod +x ./* ┌──(kali㉿kali)-[~/Desktop/CobaltStrike4.8_www.ddosi.org/Server] └─$ ls -alh total 35M drwxrwxr-x 3 kali kali 4.0K Apr 13 2023 . drwxrwxr-x 4 kali kali 4.0K Apr 14 2023 .. -rwxrwxr-x 1 kali kali 219 Apr 13 2023 cobaltstrike.auth -rwxrwxr-x 1 kali kali 904 Sep 8 2022 source-common.sh -rwxrwxr-x 1 kali kali 1.6K Apr 10 2023 teamserver -rwxrwxr-x 1 kali kali 35M Apr 13 2023 TeamServerImage drwxrwxr-x 2 kali kali 4.0K Apr 14 2023 third-party ┌──(kali㉿kali)-[~/Desktop/CobaltStrike4.8_www.ddosi.org/Server] └─$ ``` 2、以root权限启动服务端,服务端的默认端口为50050 格式: ```bash teamserver 服务器的IP地址 访问的密码 ``` ```bash ┌──(kali㉿kali)-[~/Desktop/CobaltStrike4.8_www.ddosi.org/Server] └─$ sudo bash ./teamserver 192.168.181.129 123456 [*] Generating X509 certificate and keystore (for SSL) Generating 3,072 bit RSA key pair and self-signed certificate (SHA384withRSA) with a validity of 90 days for: CN=Major Cobalt Strike, OU=AdvancedPenTesting, O=cobaltstrike, L=Somewhere, ST=Cyberspace, C=Earth [*] Starting teamserver ``` > 启动客户端 1、进入配置项。 ```bash ┌──(kali㉿kali)-[~/Desktop] └─$ cd CobaltStrike4.8_www.ddosi.org ┌──(kali㉿kali)-[~/Desktop/CobaltStrike4.8_www.ddosi.org] └─$ ls Client Server ┌──(kali㉿kali)-[~/Desktop/CobaltStrike4.8_www.ddosi.org] └─$ cd Client ┌──(kali㉿kali)-[~/Desktop/CobaltStrike4.8_www.ddosi.org/Client] └─$ ls cobaltstrike.auth cobaltstrike-client.cmd cobaltstrike-client.jar uHook.jar ┌──(kali㉿kali)-[~/Desktop/CobaltStrike4.8_www.ddosi.org/Client] └─$ bash cobaltstrike-client.cmd cobaltstrike-client.cmd: line 1: @echo: command not found [+] Starting cobaltstrike client [+] CobaltStrike 4.8 licensed (uCare@Pwn3rs : https://t.me/pwn3rzs_chat) __________ \______ \__ _ ______ ___________ ______ | ___/\ \/ \/ / \_/ __ \_ __ \/ ___/ | | \ / | \ ___/| | \/\___ \ |____| \/\_/|___| /\___ >__| /____ > \/ \/ \/ uCare [!] If you payed for this, you've been scammed, this release is free from Pwn3rs Team ``` 2、弹出登录框。  参数分别是: ```txt Alias:连接服务器的名称邮箱 Host:连接服务器的IP地址 Port:服务器的端口 User:连接者的用户名 Password:连接服务器的密码 ```  提示是否与连接的服务器的hash值匹配   ## 用户界面  > 顶部菜单栏 Cobalt Strike主菜单,主要为客户端的字体颜色配置和脚本管理。  View 视图控制,控制界面显示的面板和布局,适配不同操作场景。  Payloads 载荷管理,专门用于生成、配置和管理攻击载荷(Beacon 核心功能独立菜单)。  Attacks 攻击模块,整合全流程攻击工具,覆盖从初始入侵到权限维持。  Site Management 站点管理,专注于 “钓鱼网站” 和 “C2 站点伪装” 管理。  Reporting 专注于红队评估报告输出。  Help 帮助中心,提供工具使用支持和资源链接。  > 工具栏 | 图标 | 作用 | | ------------------------------------------------------------ | --------------------------------- | |  | 连接到另一个团队服务器 | |  | 断开与当前团队服务器的连接 | |  | 创建和编辑 Cobalt Strike 的监听器 | |  | 在图表视图中显示会话 | |  | 在表视图中显示会话 | |  | 在表视图中显示目标 | |  | 管理网络服务器 | |  | 查看凭证 | |  | 查看下载文件 | |  | 查看键盘记录 | |  | 查看截图 | ## 监听器 监听器(Listener) 是核心组件之一,用于接收目标主机上 Beacon 回连的连接请求,是建立 C2(命令与控制)通信的 “入口”。 所有通过漏洞利用、钓鱼等方式植入目标的 Beacon,都需要通过预先配置的监听器与 Team Server 建立连接,从而实现远程控制。 > 添加监听器 点击图标或者主菜单打开监控器的视图。  点击下方的Add,进行添加,选择选项。  依次为: ```txt name:监听器的名称 Payload:有效载荷的类型,默认为HTTP监听器 以及对于有效载荷类型的可选项 ``` 监听器的 payload的类型有:  > 创建TCP类型的监听器   ## 攻击载荷 生成Payload,也就是Beacon。  > Stager Payload(分阶段载荷) Stager Payload 是一种分阶段执行的载荷,通常由两部分组成: - Stager(加载器):体积极小(通常仅数百字节),负责 “接收指令并下载完整功能体”,无实际攻击功能。。 - Staged(完整功能体):包含 Beacon 的全部功能(如通信、命令执行等),由 Stager 从 Team Server 下载后在目标主机内存中加载执行。 工作流程: 1. 攻击者将 Stager 植入目标(如通过漏洞利用、钓鱼文档); 2. Stager 启动后,通过预设的监听器(HTTP/HTTPS/DNS 等)从 Team Server 下载 Staged; 3. Stager 将 Staged 加载到内存并执行,最终建立 Beacon 会话。 生成Windows exe文件,选择已经创建的监听器。  选择生成的名称和路径。    > Stageless(无阶段载荷) 采用 “单一体积” 设计,完整包含 Beacon 的所有功能,无需后续下载: 生成时直接将完整功能体打包为一个文件(如 EXE/DLL/Shellcode),植入目标后可直接执行并回连 Team Server,无二次网络请求。 生成Windows的无阶段载荷:     ## 目标上线 将生成的exe文件,诱导目标用户点击,即可上线。 在kali机器中启动http服务: ```bash ┌──(kali㉿kali)-[~/Desktop] └─$ sudo python -m http.server Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ... 192.168.181.128 - - [13/Oct/2025 11:32:19] code 404, message File not found 192.168.181.128 - - [13/Oct/2025 11:32:19] "GET /favicon.ico HTTP/1.1" 404 - 192.168.181.128 - - [13/Oct/2025 11:32:19] "GET / HTTP/1.1" 200 - ``` Windows机器使用浏览器进行访问并下载对应的exe恶意文件。  当点击下载时,你的杀毒软件可能会进行识别。  由于在虚拟机中,所以直接将c盘设置为信任区。   上线成功    选中目标,鼠标右键,点击【Inertact】,即可进入Beacon  ## Beacon命令 ```txt argue 命令行参数欺骗 blockdlls 禁止子进程加载非微软签名的dll browserpivot 注入浏览器进程代理用户已认证身份(仅支持IE) cancel 取消正在下载的文件 cd 跳转目录 checkin 强制目标回连并更新状态(用于DNS上线,DNS模式下无新任务时目标不会回连Teamserver) chromedump 提取Chrome保存的账号密码、Cookies等信息 covertvpn 部署Covert VPN客户端 clear 清空beacon任务队列 connect 通过TCP正向连接远程Beacon cp 复制文件 dcsync 从域控提取密码hash desktop 远程VNC控制用户桌面 dllinject 注入一个内存反射加载的dll到目标进程 dllload 使用LoadLibrary方式在目标进程中加载一个dll download 下载文件 downloads 列出所有正在下载的文件 drives 列出所有磁盘盘符 elevate 利用提权漏洞获取一个高权限Beacon execute 在目标上执行程序(无回显) execute-assembly 在目标上内存加载执行本地.NET程序 exit 结束当前Beacon会话 getprivs 在当前进程访问令牌(access token)中启用system特权 getsystem 尝试获取SYSTEM用户权限 getuid 获取当前进程访问令牌(access token)的用户信息 hashdump 获取本地用户hash history 显示历史命令记录 help 帮助信息 inject 在指定进程中注入新的Beacon会话 inline-execute 在当前会话中执行Beacon Object File jobs 列出所有后台任务 jobkill 结束一个后台任务 jump 在远程机器上植入Beacon(横向移动) kerberos_ccache_use 从ccache文件导入kerberos票据到当前会话中 kerberos_ticket_purge 清空当前会话中的所有kerberos票据 kerberos_ticket_use 从ticket文件中导入kerberos票据到当前会话中 keylogger 开启键盘记录 kill 结束指定进程 link 通过命名管道正向连接远程Beacon logonpasswords 使用mimikatz获取密码和hash ls 列出目录文件 make_token 创建进程访问令牌(access token),仅用于访问网络资源 mimikatz 运行mimikatz mkdir 创建目录 mode dns 使用DNS A记录作为数据通道(仅支持DNS上线Beacon) mode dns6 使用DNS AAAA记录作为数据通道(仅支持DNS上线Beacon) mode dns-txt 使用DNS TXT记录作为数据通道(仅支持DNS上线Beacon) mv 移动文件 net 网络和主机探测工具(内置net命令) note 给当前会话添加备注信息 portscan 网络端口扫描 powerpick 内存执行Powershell命令(不调用powershell.exe) powershell 通过powershell.exe执行Powershell命令 powershell-import 导入本地powershell脚本到当前会话中 ppid 为所有新运行的进程设置伪造的父进程PID printscreen 使用PrintScr方式截屏 ps 显示进程列表 psinject 注入到指定进程后在内存中执行Powershell命令(不调用powershell.exe) pth 使用Mimikatz执行Pass-the-hash pwd 显示当前目录 reg 查询注册表 remote-exec 在远程机器上执行命令(横向移动) rev2self 恢复原始进程访问令牌(access token) rm 删除文件或文件夹 rportfwd 反向端口转发(从Cobalt Strike Teamserver发起连接) rportfwd_local 反向端口转发(从Cobalt Strike客户端发起连接) run 在目标上执行程序(有回显) runas 以另一个用户身份执行程序 runasadmin 以高权限执行程序 runu 以另一个进程PID作为父进程PID,并以其用户身份执行程序 screenshot 截屏 screenwatch 屏幕监控,每隔一段时间截屏 setenv 设置环境变量 shell 使用cmd.exe执行命令 shinject 注入shellcode到指定进程中 shspawn 创建傀儡进程并注入shellcode到其中运行 sleep 设置beacon回连间隔时间 socks 启动SOCKS4a代理服务器 socks stop 停止SOCKS4a代理服务器 spawn 创建一个新Beacon会话 spawnas 以另一个用户身份创建一个新Beacon会话 spawnto 设置创建新进程时使用的可执行文件路径(傀儡进程的宿主exe文件路径) spawnu 以另一个进程PID作为父进程PID,并以其用户身份创建一个新Beacon会话 spunnel 运行第三方agent shellcode并将其反向代理到控制端(从Cobalt Strike Teamserver发起连接) spunnel_local 运行第三方agent shellcode并将其反向代理到控制端(从Cobalt Strike客户端发起连接) ssh 通过SSH连接远程主机(使用账号密码认证) ssh-key 通过SSH连接远程主机(使用证书私钥认证) steal_token 从指定进程中窃取访问令牌(access token) timestomp 复制B文件的创建、访问、修改时间戳到A文件(文件时间戳伪造) unlink 断开与beacon的连接(用于通过TCP、命名管道连接的beacon) upload 上传文件 ! 运行历史命令 ```
毛林
2025年11月1日 14:25
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码