内网安全系列-004-CobaltStrike安装

CobaltStrike

CobaltStrike是一款渗透测试神器,被业界人称为CS神器。CobaltStrike分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协同操作。

CobaltStrike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,windows exe 木马生成,windows dll木马生成,java 木马生成,office 宏病毒生成,木马捆绑。钓鱼攻击包括:站点克隆,目标信息获取,java 执行,浏览器自动攻击等等强大的功能!

CobaltStrike的安装

在Kali上安装

我这里以Kali安装为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
上传到Kali中,解压:tar -xzvf jdk-8u191-linux-x64.tar.gz
移动到opt目录下: mv jdk1.8.0_191/ /opt/
进入jdk目录:cd /opt/jdk1.8.0_191
执行 vim ~/.bashrc , 并添加下列内容
# install JAVA JDK
export JAVA_HOME=/opt/jdk1.8.0_191
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存退出
执行: source ~/.bashrc
执行:
update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_191/bin/java 1
update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_191/bin/javac 1
update-alternatives --set java /opt/jdk1.8.0_191/bin/java
update-alternatives --set javac /opt/jdk1.8.0_191/bin/javac
查看结果:
update-alternatives --config java
update-alternatives --config javac

ubuntu20.04上安装

在一台ubuntu20.04上的安装:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 下载并解压:
tar -zxvf jdk-11.0.23_linux-x64_bin.tar.gz
tar -zxvf jdk-8u421-linux-x64.tar.gz
tar -zxvf jdk-16.0.2_linux-x64_bin.tar.gz

# 创建目录
mkdir /usr/lib/jvm

# 移动目录
mv jdk-11.0.23 /usr/lib/jvm/oracle-jdk-11
mv jdk1.8.0_421 /usr/lib/jvm/oracle-jdk-8
mv jdk-16.0.2 /usr/lib/jvm/oracle-jdk-16

# 使用update-alternatives命令做java版本管理

update-alternatives --install /usr/bin/java java /usr/lib/jvm/oracle-jdk-8/bin/java 1
update-alternatives --install /usr/bin/java java /usr/lib/jvm/oracle-jdk-11/bin/java 2
update-alternatives --install /usr/bin/java java /usr/lib/jvm/oracle-jdk-16/bin/java 3

update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/oracle-jdk-8/bin/javac 1
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/oracle-jdk-11/bin/javac 2
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/oracle-jdk-16/bin/javac 3

# 在~/.bashrc最后添加如下内容
export PATH=/usr/lib/jvm/oracle-jdk-8/jre/bin/:$PATH
export PATH=/usr/lib/jvm/oracle-jdk-8/bin/:$PATH
export PATH=/usr/lib/jvm/oracle-jdk-11/bin/:$PATH
export PATH=/usr/lib/jvm/oracle-jdk-16/bin/:$PATH

# 初始化~/.bashrc文件
source ~/.bashrc

# 选择对应的java版本
update-alternatives --config java
update-alternatives --config javac

image-20240905231402939

image-20240905230949867

安装好了java之后,我们就去安装CobalStrike了!

1
2
上传到Kali中,解压:unzip cobaltstrike-linux.zip
进入cobalstrike中:cd cobaltstrike-linux/

启动服务端

CobaltStrike一些主要文件功能如下:

  • agscript:扩展应用的脚本
  • c2lint:用于检查profile的错误和异常
  • teamserver:服务器端启动程序
  • cobaltstrike.jar:CobaltStrike核心程序
  • cobaltstrike.auth:用于客户端和服务器端认证的文件,客户端和服务端有一个一模一样的
  • cobaltstrike.store:秘钥证书存放文件

当需要团队协作时,将cobaltstrike.jar、cobaltstrike.auth、cobaltstrike.store这三个文件共享即可。

一些目录作用如下:

  • data:用于保存当前TeamServer的一些数据
  • download:用于存放在目标机器下载的数据
  • upload:上传文件的目录
  • logs:日志文件,包括Web日志、Beacon日志、截图日志、下载日志、键盘记录日志等
  • third-party:第三方工具目录

image-20240905232418196

1
2
3
4
5
启动服务端: ./teamserver 192.168.0.104 123@qwe #192.168.0.104是kali的ip地址,123@qwe是密码

后台运行,关闭当前终端依然运行:nohup ./teamserver 192.168.0.104 123@qwe &

这里CobaltStrike默认监听的是50050端口,如果我们想修改这个默认端口的话,可以打开teamserver文件,将其中的50050修改成任意一个端口号

image-20240905232735289

启动客户端

1
./cobaltstrike

启动客户端的文件名可以是任意的,重点是文件的内容:

1
java -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -javaagent:uHook.jar -jar cobaltstrike-client.jar $*

如果不是第一次启动客户端,之前有创建过连接teamserver的连接,则会产生一个名为.aggressor.prop的缓存文件,这个文件一般是在运行cobaltstrike客户端的用户的家目录下:

image-20240906114010129

我们把这个文件删除,然后重新启动客户端连接:

image-20240906114330879

输入teamserver对应的IP地址、端口和密码:

image-20240906114524572

image-20240906115355562

第一次连接,会提示指纹信息。

image-20240906113028572

我们也可以打开windows下的cobaltstrike客户端,然后把ip设置为我们的启动时候的ip即可。