CobaltStrike特征修改

0.参考

参考很多文章,包括不限于下述

CobaltStrike特征修改-安全客 - 安全资讯平台

https://www.cnblogs.com/xcymn/p/15721400.html

Cobalt Strike 的特征与隐藏 - 简书

https://github.com/rsmudge/Malleable-C2-Profiles/blob/master/normal/amazon.profile

https://www.cnblogs.com/Xy--1/p/14396744.html

一些malleable-c2-profile模板

GitHub - rsmudge/Malleable-C2-Profiles: Malleable C2 is a domain specific language to redefine indicators in Beacon's communication. This repository is a collection of Malleable C2 profiles that you may use. These profiles work with Cobalt Strike 3.x.

Malleable C2 - Cobalt Strike

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

真实证书

参考这个CS 合法证书 + Powershell 上线

关于合法证书+ps上线手把手示范

先购买一个用于上线的域名,然后用域名申请一个 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文件

Malleable C2 - Cobalt Strike

这个比较全面,解释了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的博客-CSDN博客

0_1.profile

4.根据burpsuite生成

GitHub - Peithon/JustC2file: Burp插件,Malleable C2 Profiles生成器;可以通过Burp代理选中请求,生成Cobalt Strike的profile文件(CSprofile)

这个比较好使,虽然说支持到cs4.3,但是似乎是向上版本兼容的,4.7不兼容4.5;4.3兼容4.5

生成了tool1.profile,可用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值