目录
CS服务搭建
Cobalt Strike 分为客户端和服务端,可分布式操作、协同作战。服务器端只能运行在 Linux 系统中,可搭建在 VPS 上,团队成员使用的图形化客户都安界面(Client GUI) 连接服务端。
服务端搭建
将下载后的 Cobaltstrike 4.1 安装包上传到 VPS 服务器上并解压缩,服务端关键的文件是 teamserver,先将其修改位可执行文件,再执行./teamserver可以看到如下说明:
解释下启动参数含义:
./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD]
<host> 必需参数 团队服务器IP
<password> 必需参数 连接服务器的密码
[/path/to/c2.profile] 可选参数 指定C2通信配置文件,体现其强大的扩展性
[YYYY-MM-DD] 可选参数 所有payload的终止时间
那么执行以下命令启动 CS 服务:
以上就成功搭建好 Cobaltstrike 服务端了,请注意两点:
Team server 必须以 root 权限运行,以便于监听端口号为 0–1023 的 Listener;
同时服务端默认使用 50050 端口监听来自团队成员 CS Client 的连接请求。
客户端连接
Cobaltstrike 客户端在 Windows、Linux、Mac下都可以运行 (需要配置好 Java 环境)。启动 Cobalt Strike 客户端,输入服务端的IP以及端口、连接密码,用户名可以任意设置:
如图已成功连接到 CS 服务端:
CS功能概览
|Cobalt Strike
|<-------New Connection #建立新的连接,允许连接多个服务器端
|<-------Preferences #偏好设置(界面、控制台样式设置等)
|<-------Visualization #窗口视图模式(结果输出模式)
|<-------Pivot Graph #透视图模式
|<-------Session Table #Session表模式
|<-------Target Table #目标表模式
|<-------VPN Interfaces #VPN接入
|<-------Listeners #监听器(创建Listener)
|<-------Script Manager #脚本管理功能
|View
|<-------Applications #显示目标机的应用信息
|<-------Credentials #凭证(所有通过Mimikatz抓取的密码都存储在这里)
|<-------Downloads #下载文件
|<-------Event Log #事件日志,主机上线记录及团队交流记录
|<-------Keystrokes #键盘记录
|<-------Proxy Pivots #代理模块
|<-------Screenshots #查看目标机截图
|<-------Script Console #脚本控制台
|<-------Targets #显示目标主机
|<-------Web Log #Web日志
|Attacks
|<-------Packages
|<-------HTML Application #生成恶意的HTA木马
|<-------MS Office Macro #生成Office宏病毒文件
|<-------Payload Generator #生成各种语言版本的payload
|<-------USB/CD AutoPlay #生成自动播放执行的木马文件
|<-------Windows Dropper #捆绑器、实现对文档类进行捆绑
|<-------Windows Executable #生成EXE的payload
|<-------Windows Executable(S) #把包含payload,Stageless生成EXE
|<-------Web Drive-by #钓鱼攻击
|<-------Manage #对开启的Web服务进行管理
|<-------Clone Site #克隆网站
|<-------Host File #提供Web以供下载某文件
|<-------Scripted Web Delivery #提供Web以供下载powershell
|<-------Signed Applet Attack #使用java自签名的程序进行钓鱼
|<-------Smart Applet Attack #自动检测java版本进行攻击
|<-------System Profiler #用来获取系统信息
|<-------Spear Phish #邮件钓鱼
权限获取
了解了 Cobalt Strike 界面上所提供的功能后,接下来演示下 Cobalt Strike 的使用方法。使用 Cobalt Strike 最主要的目的是为了让团队的其他成员也能够对我们控制的内网肉鸡进行操作,所以我们第一步肯定是让我们的内网受控机成功上线。
配监听器&生成Payload
1、访问监听器功能:
2、创建新的监听器:
监听器的各类参数如下:
参数 释义
name 为监听器名字,可任意
payload payload类型
HTTP Hosts shell反弹的主机,也就是我们 CS 服务器的 IP
HTTP Hosts(Stager) Stager的马请求下载payload的地址
HTTP Port(C2) C2监听的端口
Cobaltstrike 4.1 版本提供了 8 种监听器,
beacon_xx 系列为 Cobalt Strike 自身内置的监听器,即在目标主机执行相应的payload,获取 shell 到 CS 上,包括 dns、http、https、smb 四种方式的监听器;
foreign 系列为外部监听器,通常与 MSF 或者 Armitage 联动,例如获取 meterpreter 到 MSF上。
生成 Payload
假设我们控制了一台 WIN7 的内网主机,想要生成一个 EXE 类型的 Payload 文件,可使用 Cobalt Strike 自带的 Attacks 模块生成我们所需要的Payload 文件:
在实际的渗透测试过程中,我们可以借助已经拿到 Shell 的外网靶机(此处的 Win7) 当跳板机,访问靶机所在的内网的主机和 Web 服务,使用 Socks4 代理即可在自己的物理机中访问到目标内网的服务;
虽然上述直接在物理机的浏览器设置 CS 服务器 IP 的代理可以达到访问目标内网的目的,但是这样子我们没法使用 BurpSuite 开展进一步的渗透测试,因此还可以用另一种流量代理方案——在浏览器设置 Burp 代理,然后在 Burp 中设置 CS 服务器的 Socks4 代理。