Bootstrap

CobaltStrike安装使用

 此文章仅作为学习交流之用,切勿用于非法用途,因此造成的后果自行承担!

目录

CobaltStrike简介

环境安装系统:Kali Linux

JDK安装java1.8

CS启动

CobaltStrike菜单

View菜单

Attacks菜单

(1)Packages

(2)Web Drive-by

(3)Spear Phish

HTML Application

MS Office Macro

Payload Generator

Windows Executable

Windows Executable(s)

Beacon右键菜单

Beacon分类

 Beacon Dns

Cobaltstrike上线Beacon

生成木马上线

Beacon使用

Beacon命令


CobaltStrike简介

Cobalt Strike(简称为CS)是一款团队作战渗透测试神器,是一种可以用来进行横向移动、数据窃取、 鱼叉式钓鱼的后渗透工具,分为客户端和服务端,一个客户端可以连接多个服务端,一个服务端也可以对应多个客户端连接。

环境安装
系统:Kali Linux

JDK安装java1.8

CS启动

启动服务端:

添加权限:chmod +x teamsever

./teamsever server_ipaddress password(密码尽量复杂一些)

启动客户端:

./cobaltstrike

Alias:别名,用户名@服务端IP地址
Host :  服务端IP地址,可为域名
Port: 服务端口号,默认50050,可进行修改
User:用户名,可随意填写,只要不冲突即可
Password: 登录密码,启动服务端时设置的密码

登陆成功


CS界面介绍

工具栏介绍

1. Connect to team server :               连接服务端
2. Disonnect from team server :       断开当前服务端连接 3. Configure Listeners :配置监听器
4. Show sessions in graph view :     展示会话列表
5. Show sessions in table view :      展示视图列表
6. Show targets in table view :         展示目标列表
7. Credentials :                                   查看从靶机获取的账户密码
8. Downloaded Files :                       查看从靶机下载的文件
9. Keystrokes :                                   查看键盘记录

10. Screenshots :                              查看屏幕截图
11. Generate Windows Executable (Stageless) :      生成无状态的 EXE 木马
12. Setup java Signed Applet Attack :                       开启Web服务为自签名 Java Applet 提供运行环境

13. MS Office Macro Attack :                                      生成 OFFICE 宏病毒文件
14. Setup Scripted Web Delivery (Stageless) :         开启 Web 服务,供下载和执行 Payload 15. Host a file :开启 Web 服务,供下载文件
16. Manage Web Server :                                             管理 Web 服务

17.Help:                                                帮助文档

18.About:                                             关于cobalt strike

CobaltStrike菜单

1. New Connection :                           进行另外一个连接,支持连接多个服务器端
2. Preferences :                                  设置 Cobal Strike 界面、控制台、以及输出报告样式 TeamServer 连接记录

3. Visualization :                                 主要展示输出结果的形式
4. VPN Interfaces :                             设置VPN接口
5. Listenrs :                                         创建一个 Listener
6. Script Manager :                             脚本管理
7. Close :                                              退出连接

View菜单

1. Applications :        显示受害主机的应用信息,浏览器版本信息
2. Credentials :         显示所有已获取的受害主机的凭证,如使用hashdump、Mimikatz获取到的密码凭  证信息
3. Downloads :         查看已下载文件
4. Event Log :           主机上线记录以及团队协作聊天记录
5. Keystrokes :         查看键盘记录结果
6. Proxy Pivots :       查看代理模块
7. Screenshots :       查看所有屏幕截图
8. Script Console :   脚本控制台,加载第三方脚本以增强功能

9. Targets :               显示所有受害主机

10. Web Log :           所有访问Web服务的日志记录

Attacks菜单

(1)Packages

1. HTML Application          

2.MS Office Macro

3. Payload Generator

4. Windows Executable

5. Windows Executable(s)

(2)Web Drive-by

1.Manage :                              对开启的web服务进行管理
2.Clone Site :                          克隆网站,可以记录受害者提交的数据
3.Host File :                            提供一个文件下载,可以修改Mime信息
4.Scripted Web Delivery :     为payload提供web服务以便下载和执行 类似于 Metasploit 的 web_delivery
5.Signed Applet Attack :       使用java自签名的程序进行钓鱼攻击(该方式已过时)
6.Smart Applet Attack :         自动检测java版本并进行攻击,针对Java 1.6.0_45以下以及Java1.7.0_21以下版本

7.System Profiler :                   用来获取一些系统信息,比如系统版本,Flash版本,浏览器版本等                      

(3)Spear Phish

  用来邮件钓鱼的模块,鱼叉钓鱼攻击

HTML Application

生成一个网页Payload 。三种执行模式:EXE执行、PowerShell、VBA Executable:是以十六进制的方式内嵌一个EXE到HTA里,运行时会把exe释放到磁

盘然后创建进程运行 Powershell:HTA调用powershell.exe执行payload

VBA:通过调用COM组件来执行payload(请确保目标机有Excel.Application组件否则 会运行失败,注:组件源自Office)

MS Office Macro

Attacks -> Packages -> MS Office Macro -> Copy

将代码放到Word宏里面,另存为启用宏的Word文档( *.docm ),受害者点击启用 内容,即可上线。

Payload Generator

生成各类语言的 ShellCode

1.C            2.C#           3.COM Scriptlet
4.Java      5.Perl         6.Powershell
7.Powershell Command           8.Python
9.Raw       10.Ruby     11.Veil    12.VBA

Windows Executable

生成可执行文件

1.Windows EXE         2.Windows Service EXE          3.Windows DLL

Windows Executable(s)

生成可执行文件还有powershell以及动态链接库

1.PowerShell      2.Raw     3.Windows EXE       4.Windows Service EXE                                             5.Windows DLL

Beacon右键菜单

Interact:打开Beacon

Access

1. Dump Hashes      # 获取hash
2. Elevate                 # 提权
3. Golden Ticket     # 生成黄金票据注入当前会话
4. Make token         # 凭证转换
5. Run Mimikatz      # 运行 Mimikatz
6. Spawn As            # 用其他用户生成Cobalt Strike侦听器

Explore

1. Browser Pivot      # 劫持目标浏览器进程

2. Desktop(VNC)    # 桌面交互
3. File Browser        # 文件浏览器
4. Net View             # 命令Net View

5. Port Scan            # 端口扫描

6. Process List        # 进程列表

7. Screenshot          # 截图

Pivoting

1. SOCKS Server      # 代理服务

2. Listener                 # 反向端口转发

3. Deploy VPN          # 部署VPN

Spawn:外部监听器(如指派给MSF,获取meterpreter权限)

Session

1. Note                       # 备注
2. Remove                # 删除
3. Sleep                     # 指定被控端休眠时间,默认60秒一次回传

4. Exit                        # 退出

Beacon分类

根据内置 Listener 的分类可以将Beacon进行分类,Listener 是用来接收 Beacon请求信息的 Cobalt Strike模块。

1.内部beacon

Beacon DNS     Beacon HTTP

Beacon HTTPS    Beacon SMB     Beacon TCP

2.外部beacon

与其他工具联合使用时才会使用到,一般用来派生会话到MSF

Foreign HTTP       Foreign HTTPS

Beacon工作原理

Beacon HTTP/HTTPS

以HTTP或HTTPS协议建立Beacon连接

1. HTTP Beacon payload连接到C2控制器,它会发起一个GET请求,获取来自C2 控制器的执行操作任务

2.如果C2控制器有要执行的任务,那么它会响应一组包含payload执行的所有任务 的加密数据

3.否则HTTP Beacon payload会返回到睡眠状态,我们可以在payload配置中设置 时间周期。

4.当Payload执行任务后产生输出时,HTTP Beacon payload会通过一个包含加密 数据的POST请求发送给C2,这个POST请求中包含任务运行后的输出。如果没有 输出,那么就没有这个POST请求。

通常创建一个简单的监听器,只需要配置以下选项即可:

Name:                        监听器名字
Payload:                    选择Beacon类型
HTTP Hosts:             配置HTTP Beacon回连主机地址
HTTP Host (Stager):配置分阶段payload,Stager的请求地址,仅当Payload明 确需要Stager配合时有效
HTTP Port (C2):       配置HTTP Beacon回连的监听端口

*Host Rotation Strategy:CS4.3新增,在 beacon 通信时,可以选择更多的轮询 方案以逃避检测、阻断, beacon 回连主机策略
*Profile:Malleable C2配置文件,用于自定义通信流量特征
*HTTP Port (Bind):绑定监听端口,实现端口重定向

*HTTP Host Header:设置内层真实域名,在使用域前置技术时使用 HTTP Proxy:为Payload指定代理

 Beacon Dns

以DNS协议流量建立Beacon连接

DNS Hosts:                        Beacon回连的主机,可以添加多个
Host Rotation Strategy:    Beacon回连主机策略
HTTP Host (Stager):         配置Stager主机,仅当Payload明确需要Stager配合时有效
Profile:                                Malleable C2配置文件,用于自定义通信流量特征
DNS Port (Bind):                绑定监听端口,实现端口重定向
DNS Resolver:                    指定NS服务器

Beacon SMB

以SMB协议流量建立Beacon连接,适用于内网横向 windows/beacon_smb/bind_pipe

简介

SMB Beacon 使用命名管道通过父级 Beacon 进行通讯,当两个Beacons链接后,子

Beacon 从父 Beacon 获取到任务并发送。因为链接的 Beacon 使用 Windows 命名 管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时 可能发挥奇效。

前提条件

1.具有 SMB Beacon 的主机必须接受 445 端口上的连接。

2.只能链接由同一个 CobaltStrike 实例管理的 Beacon 。

3.利用这种 Beacon 横移必须有目标主机的管理员权限或者说是拥有具有管理员权

限的凭据。

Beacon TCP

仅与父 Beacon 通信,适用于内网横向移动 windows/beacon_tcp/bind_tcp

命令格式同 smb 相似,不过此处连接目标IP的命令不是 link ,而是 connect 。取 消连接目标机器的话对应的命令与 smb 同为 unlink

Cobaltstrike上线Beacon

远程加载上线

1.生成 HTML 应用程序(HTA)文件

Attacks > Packages > HTML Application

Listener > Method:PowerShell

Generate > 生成evil.hta

2.使用 Host File 提供文件下载服务

File:选择生成的evil.hta文件

Local URI:文件URI路径

Local Host:Web服务IP

Local Port:Web服务端口

Mime Type:Mime类型

Launch > 生成访问evil.hta文件的URL地址

3. 通过命令执行加载 payload

当有目标机以任何方式运行了生成的Payload,则会出现在主机列表

选中要操作的目标主机,右键interact进入交互命令界面,在此使用Beacon Commands对victim主机执行各种操作。

设置睡眠周期(秒):sleep 3

执行命令

查看可用命令:help  

生成木马上线

1. 生成Windows可执行程序木马文件 点击攻击选项,选择生成木马,选择windows无阶段木马选择我们配置好的监听器点击生成即可
2. 上传木马到目标机器通过Webshell上传执行 通过引诱目标下载,钓鱼

3. 执行上线 执行木马文件,等待Beacon回连CS

Beacon使用

在目标上线CS后,右键目标 interact 使用 Beacon

在 Cobalt Strike 中它的心跳默认是60s(即sleep时间为60s,每一分钟目标主机Beacon 与 teamserver 通信一次)

如果sleep时间过长,在下载文件时花费时间明显过长,所以在测试时会把时间降低一点 。

一般拿到 Beacon 后先执行 sleep 修改到合适的睡眠时间,根据实战环境来调节,建议不要太快,不然流量会很明显。

Beacon 中不能直接输入 cmd 命令,比如要让目标机执行 ipconfig 这条cmd命令,对应的beacon命令是 shell ipconfig

其他的beacon命令,可以在beacon中输入help
 

Beacon命令

  1.    argue                           匹配过程的欺骗参数
  2.    blockdlls                     阻止子进程中的非Microsoft DLL
  3.    browserpivot              设置浏览器 pivot 会话
  4.    cancel                         取消正在进行的下载
  5.    cd                                变更目录
  6.    checkin                       Call home and post data 
  7.    clear                            清除 beacon 队列
  8.    connect                       通过TCP连接到Beacon peer
  9.    covertvpn                    部署Covert VPN客户端
  10.    cp                                 复制文件
  11.    dcsync                         从DC提取密码哈希
  12.    desktop                       查看目标桌面并与之交互
  13.    dllinject                        将反射DLL注入到进程中
  14.    dllload                         使用LoadLibrary()将DLL加载到进程中
  15.    download                    下载文件
  16.    downloads                  列出正在进行的文件下载
  17.    drives                          列出目标上的驱动器
  18.    elevate                        在提升权限的环境中生成会话
  19.    execute                       在目标上执行程序(无输出)
  20.    execute-assembly     在目标内存中执行本地 .NET 程序
  21.    exit                               终止beacon会话
  22.    getprivs                       在当前令牌上启用系统特权
  23.    getsystem                   尝试获得SYSTEM
  24.    getuid                          获取用户ID
  25.    hashdump                   转储密码哈希
  26.    help                              帮助菜单
  27.    inject                            在特定进程中产生会话
  28.    inline-execute             在此会话中运行Beacon Object File
  29.    jobkill                           杀死长期运行的后渗透任务
  30.    jobs                              列出长期运行的后渗透任务
  31.    jump                             在远程主机上生成会话
  32.    kerberos_ccache_use                将缓存中的kerberos tickets应用于此会话
  33.    kerberos_ticket_purge               清除本次会议中的kerberos tickets
  34.    kerberos_ticket_use                   将kerberos tickets应用于此会话
  35.    keylogger                     将键盘记录器注入进程
  36.    kill                                 杀死进程
  37.    link                                通过命名管道连接到Beacon peer
  38.    logonpasswords          使用mimikatz转储凭证和哈希
  39.    ls                                   列出文件
  40.    make_token                 创建令牌以传递凭据
  41.    mimikatz                      运行mimikatz命令
  42.    mkdir                            创建目录
  43.    mode dns                     将DNS A记录用作数据通道(仅DNS beacon)
  44.    mode dns-txt               将DNS TXT记录用作数据通道(仅DNS beacon)
  45.    mode dns6                   将DNS AAAA记录用作数据通道(仅DNS beacon)
  46.    mv                                  移动文件
  47.    net                                 网络和主机枚举工具
  48.    note                               给beacon分配一个注释
  49.    portscan                        扫描网络以查找开放服务
  50.    powerpick                     通过 Unmanaged PowerShell执行命令
  51.    powershell                    通过powershell.exe执行命令
  52.    powershell-import       导入Powershell脚本
  53.    ppid                               为产生的post-ex jobs设置父ID
  54.    ps                                   显示进程列表
  55.    psinject                         在特定进程中执行powershell命令
  56.    pth                                 使用Mimikatz进行哈希传递
  57.    pwd                                打印当前目录
  58.    reg                                 查询注册表
  59.    remote-exec                 在远程主机上运行命令
  60.    rev2self                         恢复为原始令牌
  61.    rm                                  删除文件或文件夹
  62.    rportfwd                        设置反向端口转发
  63.    run                                 在目标上执行程序(返回输出)
  64.    runas                             以其他用户身份执行程序
  65.    runasadmin                   在提升权限的环境中执行程序
  66.    runu                               在另一个PID下执行程序
  67.    screenshot                    截屏
  68.    setenv                            设置环境变量
  69.    shell                               通过cmd.exe执行命令
  70.    shinject                          将Shellcode注入进程 
  71.    shspawn                        生成进程并将shellcode注入其中
  72.    sleep                              设置beacon睡眠时间
  73.    socks                             启动SOCKS4a服务器以中继流量
  74.    socks stop                    停止SOCKS4a服务器
  75.    spawn                            产生一个会话
  76.    spawnas                        以其他用户身份发起会话
  77.    spawnto                        设置可执行文件以将进程生成为
  78.    spawnu                          在另一个进程下产生会话
  79.    ssh                                 使用SSH在主机上生成一个SSH会话
  80.    ssh-key                         使用SSH在主机上生成一个SSH会话
  81.    steal_token                   从进程中窃取访问令牌
  82.    timestomp                     将时间戳从一个文件应用到另一个文件
  83.    unlink                             与父Beacon断开连接
  84.    upload                           上传文件   
;