type
Post
status
Published
date
May 18, 2022
slug
cobaltstrike
summary
tags
学习
category
学习思考
icon
password
java环境安装
windows安装java
JDK的下载与安装
jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
选择与电脑系统匹配的版本进行下载(Windows系统如果是32位下载Windows x86,64位下载Windows x64)
Java安装步骤很简单,如跟你不想改变安装路径,就直接点击下一步即可,安装时要记住自己安装路径,因为后面需要用到
默认路径是:C:\Program Files\Java\jdk1.8.0_333和C:\Program Files\Java\jre1.8.0_333,第一个是jdk(开发)的路径,第二个是jre(运行)路径,如果你不想安装在默认路径,安装在其他路径建议将这两个安装在同一个目录下。

JAVA环境变量配置
打开此电脑右击鼠标,选择属性打开系统设置,点击高级程序设置

打开环境变量以后点击系统变量的新建(不要使用用户变量)

我这里提前配置好了,所以变量都在这里面.
JAVA_HOME变量
下一步就是开始新建JAVA_HOME变量(单词大写,符合是英文),如果你是用默认安装路径可以直接复制使用。我的版本是jdk1.8.0_333,不同版本后面的不一样。

JAVA_HOME
C:\\Program Files\\Java\\jdk1.8.0_333
Path变量
找到系统变量中的Path变量,选中然后点击编辑

然后点击新建,这里都一样,可以直接复制使用
%JAVA_HOME%\\bin
继续点击新建,为了确保jre在运行时不会出现问题
%JAVA_HOME%\\jre\\bin

ClassPath环境变量
点击系统变量新建然后在新建系统变量框里面输入下面内容即可
Classpath
.;%JAVA_HOME%\\lib\\dt.jar;%JAVA_HOME%\\lib\\tools.jar;
注意前面有“.”和“;”一定是英文状态下的符号

最后点击确定,然后关闭,环境变量到此就设置完成了
JAVA运行环境验证
打开cmd,输入java -version,点击回车

这样就证明你环境变量设置成功。
Linux安装java
下面是几种常见的 Linux 发行版的安装命令
# Debian/Ubuntu sudo apt-get install -y default-jre-headless
#CentOS 8.0+ sudo dnf install -y java-1.8.0-openjdk #对于 CentOS 8.0 以下的服务器,请输入下面的命令 #sudo yum install -y java-1.8.0-openjdk
#Arch Linux sudo pacman -S --noconfirm jdk8-openjdk
CS下载、破解与汉化
官方包下载
官方hash验证地址:
https://verify.cobaltstrike.com/

windows 验证命令
certutil -hashfile cobaltstrike.jar SHA256

sha256校验码一致,说明文件为官网版本(原版)
破解与汉化
下载CobaltStrike 4.x通用白嫖及汉化加载器CSAgent
采用javaagent+javassist的方式动态修改jar包,可直接加载原版cobaltstrike.jar,理论上支持到目前为止的所有4.x版本
CSAgent.zip 下载地址:
https://github.com/Twi1ight/CSAgent/releases/download/v1.2/CSAgent.zip
把文件放在一起
解压CSAgent.zip,将原版cobaltstrike.jar放到解压目录中,确保CSAgent.jar、resources文件夹、scripts文件夹和cobaltstrike.jar处于同级目录
CS启动与连接
服务端启动
linux
启动参数 ./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD] 必填参数host 本服务器外网IP/域名 必填参数password Client GUI连接时需要输入的密码 可选参数Malleable C2 communication profile 指定C2通信配置文件 该功能体现了CS的强大扩展性 可选参数kill date 指定所有payload的终止日期 这里用 ./teamserver 192.168.0.120(本机ip) 123456(登入密码)
windows
windows启动服务端
命令行启动teamserver.bat,参数与linux一致
新建 teamserver.bat 文件 内容如下:
@echo off :check_java java -version >nul 2>&1 if %errorLevel% == 0 ( goto:check_permissions ) else ( echo [-] is Java installed? goto:eof ) :check_permissions echo [+] Administrative permissions required. Detecting permissions... set TempFile_Name=%SystemRoot%\System32\BatTestUACin_SysRt%Random%.batemp (echo "BAT Test UAC in Temp" >%TempFile_Name% ) 1>nul 2>nul if exist %TempFile_Name% ( echo [+] Success: Administrative permissions confirmed. del %TempFile_Name% 1>nul 2>nul goto:check_certificate ) else ( echo [-] Failure: Current permissions inadequate. goto:eof ) :check_certificate set certificate=".\cobaltstrike.store" if exist %certificate% ( goto:test_arguments ) else ( echo [!] cobaltstrike.store not fond! echo [!] generating the cobaltstrike.store! echo [!] Command: keytool -keystore ./cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias cobaltstrike -dname "CN=Major Cobalt Strike, OU=AdvancedPenTesting, O=cobaltstrike, L=Somewhere, S=Cyberspace, C=Earth" keytool -keystore ./cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias cobaltstrike -dname "CN=Major Cobalt Strike, OU=AdvancedPenTesting, O=cobaltstrike, L=Somewhere, S=Cyberspace, C=Earth ) :test_arguments set argC=0 for %%x in (%*) do Set /A argC+=1 if %argC% LSS 2 ( echo [-] teamserver ^<host^> ^<password^> [/path/to/c2.profile] [YYYY-MM-DD] echo ^<host^> is the default IP address of this Cobalt Strike team server echo ^<password^> is the shared password to connect to this server echo [/path/to/c2.profile] is your Malleable C2 profile echo [YYYY-MM-DD] is a kill date for Beacon payloads run from this server goto:eof ) else ( goto:run_cobal ) :run_cobal java -XX:ParallelGCThreads=4 -Dcobaltstrike.server_port=50050 -Dcobaltstrike.server_bindto=0.0.0.0 -Djavax.net.ssl.keyStore=./cobaltstrike.store -Djavax.net.ssl.keyStorePassword=123456 -server -XX:+AggressiveHeap -XX:+UseParallelGC --add-opens=java.base/java.lang.reflect=ALL-UNNAMED -classpath ./cobaltstrike.jar -javaagent:CSAgent.jar=5e98194a01c6b48fa582a6a9fcbb92d6 server.TeamServer %*
客户端连接
windows
cobalstrike.bat 直接双击启动
java -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -javaagent:CSAgent.jar=5e98194a01c6b48fa582a6a9fcbb92d6 -Duser.language=en -jar cobaltstrike.jar
无窗口启动
@echo off if "%1" == "h" goto begin mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit :begin REM java -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -javaagent:CSAgent.jar=5e98194a01c6b48fa582a6a9fcbb92d6 -Duser.language=en -jar cobaltstrike.jar
linux
start.sh
java -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -javaagent:CSAgent.jar=5e98194a01c6b48fa582a6a9fcbb92d6 -jar cobaltstrike.jar $*
C2隐藏
无论是权限维持还是增加溯源成本, C2 隐藏 、流量加密,在实际的攻防对抗中还是很有必要的
1.修改默认端口
cobalt strike 服务端 默认50050端口,修改也很简单。只需要编辑teamserver文件,将50050修改为想要更改的端口即可。
vim your_cs_path/teamserver
2.流量特征混淆
我们cs的客户端/服务端的流量通信,大部分流量审计软件,都能检测到cs默认的通信流量。
- Author:Sora
- URL:https://sorax.top/article/cobaltstrike
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts