0.参考
参考很多文章,包括不限于下述
https://www.cnblogs.com/xcymn/p/15721400.html
https://github.com/rsmudge/Malleable-C2-Profiles/blob/master/normal/amazon.profile
https://www.cnblogs.com/Xy--1/p/14396744.html
1.修改端口
客户端默认连接端口:50050
在teamserver中修改
2.证书
keytool操作
Keytool是一个java数据证书的管理工具,Keytool将密钥 和 证书 存放在一个称为 keystore 的文件中,即.store后缀的文件中。
查看证书文件:keytool -list -v -keystore cobaltstrike.store 修改证书密码:keytool -storepasswd -keystore test.store 修改keystore的alias别名:keytool -changealias -keystore test.store -alias source_name -destalias new_name 修改alias(别名)的密码:keytool -keypasswd -keystore test.store -alias source_name
Keystore是什么?keystore是java的密钥库,用来进行通信加密,如数字签名。keystore就是用来保存密钥对的,公钥和私钥。Keystore可理解为一个数据库,可以存放很多个组数据。
每组数据主要包含以下两种数据:
- 密钥实体 --- 密钥(secret key)又或者私钥和配对公钥(采用非对称加密)
- 可信任的证书实体 --- 只包含公钥
新建store
而为了掩盖默认SSL证书存在的特征,需要重新创建一个新的不一样的证书 。使用以下命令创建证书:
keytool -keystore cobaltstrike.store -storepass 密码 -keypass 密码 -genkey -keyalg RSA -alias google.com -dname "CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)"
- -alias 指定别名
- -storepass pass 和 -keypass pass 指定密钥
- -keyalg 指定算法
- -dname 指定所有者信息
删除 CobaltStrike 自带的cobaltstrike.store,使用以下命令生成一个新的 cobaltstrike.store即可!然后客户端连接即可。
keytool -keystore cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias baidu.com -dname "CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)" keytool -importkeystore -srckeystore cobaltstrike.store -destkeystore cobaltstrike.store -deststoretype pkcs12
真实证书
先购买一个用于上线的域名,然后用域名申请一个 SSL 证书
使用 FreeSSL首页 - FreeSSL.cn一个提供免费HTTPS证书申请的网站 用我的 spoofdomain.com 域名申请好了证书。
创建一个 keystore
将 ssl 证书上传到 CS 团队服务器,使用以下命令为 CS 生成 keystore:
openssl pkcs12 -export -in fullchain.pem -inkey privkey.key -out spoofdomain.p12 -name spoofdomain.com -passout pass:mypass keytool -importkeystore -deststorepass mypass -destkeypass mypass -destkeystore spoofdomain.store -srckeystore spoofdomain.p12 -srcstoretype PKCS12 -srcstorepass mypass -alias spoofdomain.com
Malleable C2 profile
将 keystore 加入 Malleable C2 profile 中:
https-certificate { set keystore "spoofdomain.store"; set password "mypass"; }
然后在启动 CS 的时候指定此 C2 profile:
nohup ./teamserver 47.x.x.x password c2.profile &
此时当团队服务器启动,其就会使用提供的 keystore 并启用 SSL 文件托管。
reverse_https 监听器
创建一个 reverse_https 的监听器,在 HTTPS Hosts 和 HTTPS Host(stager) 以及 HTTPS Host Header 这里指定域名:
Cobalt Strike HTTPS C2 重定向器
上面已经成功域名上线、正常通信了 。但是有时候我们也会遇到一种情况,就是目标网络的蓝队人员注意到了机器跟域名的通信,然后在浏览器上对此 url 进行访问,响应可能是 404、这样增加了蓝队人员的疑虑,就在防火墙设备上把你这个域名封掉了。导致我们看到的结果可能是短时间内 Beacon shell 全掉了。如何避免这种反查呢?
重定向器是一种 C2 基础架构的设计。这种基础架构设计可能可以帮助缓解这一局面。
如图,通过重定向器:
- 将符合 CS Malleable C2 profile 中设置的流量特征(
User-Agent、
HTTP GET URI、
HTTP POST URI、
`HTTP Stager URI 等)的访问中转到团队服务器,进行正常命令与控制通信。
- 将不符合 CS Malleable C2 profile 中设置的流量特征的访问中转到看上去无害的网站,比如目标网站。
这样的好处主要是避免在引起目标网络的蓝队人员的关注后,尽量打消其疑虑、避免其对真实 C2 后端服务器的进一步分析行为。另一方面,如果我们的上线域名被封,真正的 Cobalt Strike 团队服务器的 IP 仍然可以使用,于是可以换一个重定向器,获取新的 IP 和域名,然后重新投入使用。如果在 beacon payload 中设置了多个回连域名,那甚至不需要重新获得初始访问权限。
重定向器的一种简单实现方案是使用 Apache + mod_rewrite。mod_rewrite 是 Apache 的一个模块。此模块提供了一个基于正则表达式分析器的重写引擎来实时重写 URL 请求。但是一般 mod_rewrite 默认是不启动的,需要我们手动去启用它。
这里要注意:在使用了重定向器之后,上线域名应该解析为重定向器的 IP。
具体的操作在此文:https-payload-and-c2-redirectors 中写的很清楚。
现在已有 cs2modrewrite 这个工具帮助根据 Cobalt Strike 的 Malleable C2 profile 一键生成 mod_rewrite .htaccess。
但是注意:
- mod_rewrite 的规则可以在两个地方配置:一是 apache 配置文件中(如 /etc/apache2/apache.conf),二是网络目录中的 .htaccess 文件中。
- 分阶段 payload 和 stageless payload 的重定向规则集写法不同。参考此文:Cobalt Strike HTTP C2 Redirectors with Apache mod_rewrite,而本文中使用的 Scripted Web Delivery 就会生成 stageless 的 Beacon payload。
3.配置profile文件
这个比较全面,解释了profile语法
1.test.profile
2.bing.profile
root@valuable-text-1:~/coablt_strike_4.5_cracked_www.ddosi.org# ./c2lint bing.profile [-] Error(s) while compiling bing.profile Error: invalid option for <Global> at line 49 steal_token_access_mask Error: invalid option for <Global> at line 52 tasks_max_size Error: invalid option for <Global> at line 53 tasks_proxy_max_size Error: invalid option for <Global> at line 54 tasks_dns_proxy_max_size Error: invalid option for <.process-inject> at line 579 bof_allocator Error: invalid option for <.process-inject> at line 580 bof_reuse_memory [-] Unable to load the Beacon profile bing.profile
jquery-c2.4.3.profile not working · Issue #11 · threatexpress/malleable-c2 · GitHub
看了这篇回答,问题原因可能是使用的4.5cs 而这个profile是4.7的
bing.profile
3.csdn 从零
从0写一个cs的profile文件_cs profile_Shanfenglan7的博客-优快云博客
0_1.profile
4.根据burpsuite生成
这个比较好使,虽然说支持到cs4.3,但是似乎是向上版本兼容的,4.7不兼容4.5;4.3兼容4.5
生成了tool1.profile,可用。