介绍
平常使用Cobale Strike的一些记录,一些坑等。目前只是大致记录了下,还未记录实质内容。
还有就是cs文件的问题,在网上下载的cs自己也不会判断是否存在暗桩,也不会弄,而且下载的压缩包内文件也太多,所以我就把没用的文件都删了,留下必要的文件。客户端和服务端运行只需要下述的相关文件即可,即使需要其他的,在cs运行了过后会自动生成。
[root@localhost cs]# ll -h
总用量 27M
-rwxr-xr-x. 1 root root 144 12月 5 2019 c2lint
-rw-r--r--. 1 root root 16 3月 6 2021 cobaltstrike.auth
-rw-r--r--. 1 root root 27M 3月 6 2021 cobaltstrike.jar
-rw-r--r--. 1 root root 2.3K 12月 4 23:22 cobaltstrike.store
-rw-r--r--. 1 root root 5.8K 11月 1 2020 hook.jar
-rw-r--r--. 1 root root 138 4月 27 2021 start.bat
-rwxr-xr-x. 1 root root 1.9K 4月 8 2021 teamserver
关于迁移CS问题
为什么记录这个问题是因为我在迁移CS的时候遇到了问题,导致CS未正常的迁移,旧服务器上的权限没有正常回连到新服务器上,遂记录。
迁移失败
关于如何迁移CS,我首先是在旧CS服务器上面将运行中的所有CS文件进行了打包,然后将打包的内容拷贝到新服务器上。新服务器上解压了拷贝过来的CS文件包,并将域名解析指向到新服务器的IP地址,等待域名解析到了新的IP后,运行CS服务,这样正常情况下原先的权限是能够回连的,但这次,就出现了异常……
因为之前也迁移过CS,但是当时也没有出现任何问题,且这次的操作也是和之前一样,只是中途变了一点点操作,但是按道理来说是不会受到该操作影响的,现在问题应该是初步确定了,留待明日上班解决问题。
确认问题
在和同行请教后,知晓了大概的问题原因,但是还未实际测试。等测试成功后再更新。
问题原因是在CS运行之后,会在本地目录生成一个隐藏文件“.cobaltstrike.beacon_keys”,在正常打包CS的时候,这个隐藏文件偶尔或者直接是没有打包进去的,所以在迁移的时候就会出现问题,导致机器无法上线,并提示解密失败等。
解决问题
虽然该问题当时折磨了我两天(划水)才弄好,但是其实解决起来非常简单,只需要在打包的时候将那个隐藏文件也打包进去即可。
如果隐藏文件打包不进去的话,可以先将文件取消隐藏再打包,等迁移到新服务器上后,再设置为隐藏,因为也没尝试过不将文件设置为隐藏是否能用,所以还是尽量规范设置。
将隐藏文件取消隐藏并将所有文件打包至root目录下的back.tar.gz文件。
mv .cobaltstrike.beacon_keys cobaltstrike.beacon_keys
tar -zcvf /root/back.tar.gz *
关于CS的证书问题
关于CS的证书问题,虽然CS使用的经验也有了大半年,但是还未仔细研究折腾过CS的证书。CS的证书,基本都是为了逃避特征检测,防止检测出服务器为C2的服务器,所以需要进行证书的生成。
而关于CS的证书文件,至今还是有点懵,不知道哪个证书是作用于什么,生成证书时候的各命令参数也是作用于什么,这些也还需要我进一步的思考探索。
CS证书
这个证书若不更改,基本上会被各种IDS入侵检测工具和流量检测工具拦截和发现。所以需要修改,进一步隐藏自己。
若是cs未手动配置证书,在第一次运行cs的时候会建议你重新生成相关证书运行。
[root@localhost cs]# ls
c2lint cobaltstrike.auth cobaltstrike.jar hook.jar start.bat teamserver
[root@localhost cs]# ./teamserver 192.168.20.10 123
[*] Generating X509 certificate and keystore (for SSL)
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore ./cobaltstrike.store -destkeystore ./cobaltstrike.store -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
Hook start
Found desired class: common/Authorization
[+] Team server is up on 0.0.0.0:50050
[*] SHA256 hash of SSL cert is: ef27000a6cfa62a57286f80bea95b15c07579e0ef47e2cb6a5d5bfe243e6562
既然需要手动生成证书,也不能说生成,应该叫修改证书。因为cs自带的证书包含了太多cs的特征,一下子就能看出来这是台C2服务器,所以才需要将证书的信息修改,至于修改成什么的证书,根据个人喜好来修改了,可以是谷歌,微软,百度等。
如何模拟其他网站证书,以我自己网站举例:
点击网站的小锁图标
点击证书选项
找到颁发者
手动生成证书
# 使用keytool模拟生成我自身网站的证书,其他网站同理。
# keytool -keystore ./cobaltstrike.store -storepass stopass -keypass keypass -genkey -keyalg RSA -alias cobaltstrike -dname "CN=TrustAsia TLS RSA CA, OU=Domain Validated SSL , O=TrustAsia Technologies Inc. , L=Somewhere, C=CN"
# 参数介绍
CN=(名字与姓氏),
OU=(组织单位名称),
O=(组织名称),
L=(城市或区域名称)
ST=(州或省份名称),
C=(单位的两字母国家代码)
-alias 指定别名
-storepass pass 和 -keypass pass 指定密钥
-keyalg RSA 指定主体公共密钥算法
-dname 指定所有者信息
# 完成后生成了一个cobaltstrike.store的证书文件。
# -------------------------------------------------------------
[root@localhost cs]# keytool -keystore ./cobaltstrike.store -storepass stopass -keypass keypass -genkey -keyalg RSA -alias cobaltstrike -dname "CN=TrustAsia TLS RSA CA, OU=Domain Validated SSL , O=TrustAsia Technologies Inc. , L=Somewhere, C=CN"
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore ./cobaltstrike.store -destkeystore ./cobaltstrike.store -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
[root@localhost cs]#
[root@localhost cs]# ls
c2lint cobaltstrike.auth cobaltstrike.jar cobaltstrike.store hook.jar start.bat teamserver
# -------------------------------------------------------------
生成证书后还建议我们迁移奥行业标准格式,但是这里也还有一个小问题还未理解。上面生成证书过程中,由于storepass和keypass我使用了不同的密码,所以后面迁移到行业标准格式的时候会出现如下问题。
[root@localhost cs]# keytool -importkeystore -srckeystore cobaltstrike.store -destkeystore cobaltstrike.store -deststoretype pkcs12
输入源密钥库口令: stopass
输入 <cobaltstrike> 的密钥口令 keypass
keytool 错误: java.lang.Exception: 目标 pkcs12 密钥库具有不同的 storepass 和 keypass。请在指定了 -destkeypass 时重试。
[root@localhost cs]#
# 这里我在生成证书的时候也指定了-destkeypass试过,还是不行,所以还是得按照网上的方法来,将storepass和keypass设置成一样的才行了。
最终证书生成步骤
[root@localhost cs]# keytool -keystore ./cobaltstrike.store -storepass a123456 -keypass a123456 -genkey -keyalg RSA -alias cobaltstrike -dname "CN=TrustAsia TLS RSA CA, OU=Domain Validated SSL , O=TrustAsia Technologies Inc. , L=Somewhere, C=CN"
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore ./cobaltstrike.store -destkeystore ./cobaltstrike.store -detstoretype pkcs12" 迁移到行业标准格式 PKCS12。
[root@localhost cs]# keytool -importkeystore -srckeystore cobaltstrike.store -destkeystore cobaltstrike.store -deststoretype pkcs12
输入源密钥库口令: a123456
已成功导入别名 cobaltstrike 的条目。
已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消
Warning:
已将 "cobaltstrike.store" 迁移到 Non JKS/JCEKS。将 JKS 密钥库作为 "cobaltstrike.store.old" 进行了备份。
[root@localhost cs]#
在最后再修改一下teamserver中的端口号以及**keyStorePassword**和上面生成证书的**keyStorePassword**一样就行,密码没修改的话会运行失败。
SSL证书
在CS运行中,我发现目录下面存在了一些ssl*.store证书文件,目前还未具体学习这些证书的作用。
关于CS的使用问题
目前暂无记录必要,若不清楚命令,可以在终端输入 help 获取命令信息。
而某命令的用法,也可直接输入help 某命令就可以直接知道该命令的用法以及作用等。尚无使用技巧。