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
|
安装好了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:第三方工具目录
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修改成任意一个端口号
|
启动客户端
启动客户端的文件名可以是任意的,重点是文件的内容:
1
| java -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -javaagent:uHook.jar -jar cobaltstrike-client.jar $*
|
如果不是第一次启动客户端,之前有创建过连接teamserver的连接,则会产生一个名为.aggressor.prop的缓存文件,这个文件一般是在运行cobaltstrike客户端的用户的家目录下:
我们把这个文件删除,然后重新启动客户端连接:
输入teamserver对应的IP地址、端口和密码:
第一次连接,会提示指纹信息。
我们也可以打开windows下的cobaltstrike客户端,然后把ip设置为我们的启动时候的ip即可。