一、Cobalt Strike简单介绍
Cobalt Strike简称CS,这是一款非常成熟的渗透测试框架。Cobalt Strike在3.0版本之前是基于Metasploit框架工作的,可以使用Metasploit的漏洞库。但是在3.0版本之后,Cobalt Strike不再使用Metasploit漏洞库,而是变成了一个独立的渗透测试平台。
Cobalt Strike是使用JAVA语言编写的。其优点在于,可以进行团队协作,Cobalt Strike是以搭载了TeamServer服务的服务器为中转站,使目标系统权限反弹到该TeamServer服务器上,同时,Cobalt Strike也提供了良好的UI界面。Cobalt Strike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,exe、powershell木马生成等功能。
二、Cobalt Strike搭建
0x01 Cobalt Strike环境
Cobalt Strike 分为客户端和服务端,可分布式操作、协同作战。服务器端只能运行在Linux系统中,可搭建在VPS上。
0x02 Cobalt Strike架构
-
客户端(Client GUI)
-团队成员使用的图形化界面
-
服务器(Team Server)
–控制:Team Server是Cobalt Strike中所有payload的主控制器,与受害者主机的所有连接的反弹shell都由Team Server管理。
–日志记录:Cobalt Strike中发生的所有事件都保存在logs文件夹
–信息搜集:收集在后渗透阶段发现的、或攻击者在目标系统上用于登录的所有凭据
0x03 推荐运行环境
注意:Cobalt Strike的服务器Team Server必须运行在配有JAVA环境的Linux系统上。
-
Team Server 推荐运行环境
–Kali Linux 1.0, 2.0 – i386 and AMD64
–Ubuntu Linux 12.04, 14.04 – x86, and x86_64
-
Client GUI 运行环境
–Windows 7 and above
–macOS X 10.10 and above
–Kali Linux 1.0, 2.0 – i386 and AMD64
–Ubuntu Linux 12.04, 14.04 – x86, and x86_64
三、Cobalt Strike下载
0x01 下载链接
下载链接:https://pan.baidu.com/s/17CGo40ZjEbR-G7In1zleSQ
提取码:crg0
四、Cobalt Strike启动
0x01 配置JAVA环境
-
方法一:(比较方便)
保存以下代码为install.sh,然后bash install.sh
wget https://repo.huaweicloud.com/java/jdk/8u171-b11/jdk-8u171-linux-x64.tar.gz
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/lib/
echo "export JAVA_HOME=/usr/lib/jdk1.8.0_171/" >> /etc/profile
echo "export JRE_HOME=/usr/lib/jdk1.8.0_171/jre" >> /etc/profile
echo "export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH" >> /etc/profile
echo "export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib" >> /etc/profile
`source /etc/profile`
rm jdk-8u171-linux-x64.tar.gz
-
方法二:
方法一失败了就使用方法二
(1):查看是否安装的了java环境
java -version
发现默认安装了openjdk。
(2):卸载openjdk
sudo apt-get remove openjdk*
(3):查看是否卸载
java -version
(4):安装Oraclejdk
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
(5):解压
tar xzf jdk-8u141-linux-x64.tar.gz
(6):修改配置文件
leafpad /etc/profile
JAVA_HOME=~/jdk1.8.0_141/
JRE_HOME=~/jdk1.8.0_141/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
(7):使修改生效
source /etc/profile
(8):查看java版本
java -version
0x02 部署TeamServer
注意:Cobalt Strike的服务器端必须搭建在Linux系统上。
(1):安装Cobalt Strike时必须搭建团队服务
(2):查看TeamServer和Cobalt Strike是否有执行权
ls -la
如果没有执行权就使用chmod添加执行权限。
(3):启动Cobalt Strike服务器端
启动参数
./teamserver[/path/to/c2.profile] [YYYY-MM-DD]
① 必填参数host 本服务器外网IP/域名
②必填参数password Client GUI连接时需要输入的密码
③可选参数Malleable C2 communication profile 指定C2通信配置文件,该功能体现了CS的强大扩展性
④可选参数kill date 指定所有payload的终止日期
./teamserver 192.168.223.160 1qaz
五、Cobalt Strike文件夹功能介绍
0x01 Cobalt Strike文件结构
│ agscript 拓展应用的脚本
│ c2lint 检查profile的错误异常
│ cobaltstrike
│ cobaltstrike.jar 客户端程序
│ icon.jpg
│ license.pdf
│ readme.txt
│ releasenotes.txt
│ teamserver 服务端程序
│ update
│ update.jar
│
└─third-party 第三方工具
README.vncdll.txt
vncdll.x64.dll
vncdll.x86.dll
0x02 文件及文件夹功能
(1):agscript:扩展应用的脚本
(2):c2lint:用于检查profile的错误和异常
(3):teamserver:团队服务器程序
(4):cobaltstrike和cobaltstrike.jar:客户端程序。因为teamserver文件是通过JAVA来调用Cobalt Strike的,所以在文件中输入第一个文件的内容也能启动Cobalt Strike客户端。
(5):logs:日志,包括WEB日志、Beacon日志、截图日志、下载日志、键盘记录日志等。
(6):update和update.jar:主要是用来更新Cobalt Strike。
(7):data:用于保存当前TeamServer的一些数据。
六、启动客户端
0x01 老版本启动Cobalt Strike
./cobaltstrike
0x02 新版本启动Cobalt Strike
-
Windows系统
start.bat
-
Linux系统
./start.bat
./start.sh
0x03 修改端口
nano teamserver
0x04 修改指纹
CS的默认ssl证书信息也很重要,不然指纹信息也很明显,如果放在公网的VPS上很容易被识别出。
nano teamserver
修改成如下内容
CN=it, OU=it, O=it, L=it, S=it, C=it
0x05 清除客户端记录
清除上面这些记录的方法如下:
七、客户端功能点介绍
0x01 客户端界面
主要有主机IP、端口、用户名和密码。主机IP就是团队服务器的IP,端口默认是50050,用户名可以随意输入,但是注意一点是不能和团队里面的其他成员用户名重复,密码就是启动服务器时设置的密码。
0x02 连接服务器
(1):进行连接
(2):进行指纹校验
每次进行连接都会出现指纹校验,指纹校验的注意作用是防篡改,因此每次创建Cobalt Strike团队服务器时所生成的指纹都不一样。
(3):连接成功
0x03 功能点介绍
(1):菜单栏:集成了Cobalt Strike的所有功能
(2):快捷功能区:列出常用的功能
(3):目标列表:根据不同的显示模式,显示已获取权限的主机及目标主机
(4):控制台命令输出区:输出命令的执行结果
(5):控制台命令输入区:输入命令
八、快捷功能区介绍
0x01 功能区参数
1.新建连接
2.断开当前连接
3.建立监听器
4.改变视图为Pivot Graph(可以以图形方式显示各个目标的关系)
5.改变视图为Session Table(以会话列表的方式显示)
6.改变视图为Target Table(以目标列表的方式显示,主要突出目标系统)
7.查看凭据信息
8.查看文件下载
9.查看键盘记录
10.查看屏幕截图
11.生成无状态Beacon后门
12.java自签名程序攻击
13.生成office宏后门
14.生成脚本通过web传递(利用powershell,bitsadmin,regsvr32生成会话)
15.在Cobalt Strike的web服务上托管一个文件(提供一个文件下载)
16.管理Cobalt Strike上运行的web服务
17.帮助
18.关于
0x02 Pivot Graph展示
九、参数介绍
0x01 Cobalt Strike参数
New Connection #新的连接(支持连接多个服务器端)
Preferences #偏好设置(设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录等)
Visualization #窗口视图模式(展示输出结果的形式)
VPN Interfaces #VPN接入
Listenrs #监听器(创建Listener)
Script Manager #脚本管理
Close #关闭
0x02 View参数
Applications #应用(显示受害者机器的应用信息)
Credentials #凭证(通过hashdump或Mimikatz抓取过的密码都会储存在这里)
Downloads #下载文件
Event Log #事件日志(主机上线记录以及团队协作聊天记录)
Keystrokes #键盘记录
Proxy Pivots #代理模块
Screenshots #截图
Script Console #脚本控制台(可以加载各种脚本,增强功能https://github.com/rsmudge/cortana-cripts)
Targets #显示目标主机
Web Log #Web日志
0x03 Attacks参数
(1):Packages参数
HTML Application #生成恶意的HTA木马文件
MS Office Macro #生成office宏病毒文件
Payload Generator #生成各种语言版本的payload
USB/CD AutoPlay #生成利用自动播放运行的木马文件
Windows Dropper #捆绑器,能够对文档类进行捆绑
Windows Executable #生成可执行Payload
Windows Executable(S) #把包含payload,Stageless生成可执行文件(包含多数功能)
(2):Web Drive-by
Manage #对开启的web服务进行管理
Clone Site #克隆网站(可记录受害者提交的数据)
Host File #提供Web以供下载某文件
Scripted Web Delivery #提供Web服务,便于下载和执行PowerShell Payload,类似于Metasploit的Web_delivery
Signed Applet Attack #启动一个Web服务以提供自签名Java Applet的运行环境
Smart Applet Attack #自动检测Java版本并利用已知的exploits绕过security
System Profiler #用来获取一些系统信息,比如系统版本,Flash版本,浏览器版本等
(3):Spear Phish
Spear Phish #鱼叉式钓鱼
0x04 Reporting参数
0. Activity report #活动报告
1. Hosts report #主机报告
2. Indicators of Compromise #威胁报告
3. Sessions report #会话报告
4. Social engineering report #社会工程学报告
5. Tactics, Techniques, and Procedures #策略、技巧和程序
Reset Data #重置数据
Export Data #导出数据
0x05 Help参数
Homepage #官方主页
Support #技术支持
Arsenal #开发者
System information #版本信息
About #关于
原文始发于微信公众号(想走安全的小白):Cobalt Strike系列一----Cobalt Strike介绍
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论