1. CobaltStrike的服务端隐藏

因为部分安全公司会不定时做全网的CobaltStrike服务端的识别,从而将IP标记为恶意服务器
因为一些网络测绘平台会检测CobaltStrike服务端的指纹,从而对服务器进行标记
为避免以上情况,所以需要对服务端的特征进行隐藏,与威胁情报相对抗

1.1 修改默认端口

  • 打开teamserver,最后一行修改端口50050为其他端口
image-20210309102126766

1.2 修改证书

  • 删除cobaltstrike.store
  • keytool -keystore ./cobaltstrike.store -storepass 设定一个密码 -keypass 刚才设定的密码 -genkey -keyalg RSA -alias baidu -dname "CN=baidu.com, OU=service operation department, O=Beijing Baidu Netcom Science Technology Co., Ltd, L=beijing, S=beijing, C=CN"
  • 这样扫描这台的CS的server端占用端口的证书便无法确定运行的是CS
image-20210310163655780

2. CobaltStrike的C2隐藏

在攻防演练中,某种情况下导致攻击被目标发现,目标会顺着线索继续溯源追踪到具体执行人,而我们的服务器也就变成溯源方的攻击目标之一,遂需要对我们使用的有关上线使用的线索进行隐藏,同样也是为了与威胁情况相对抗

2.1 申请免费域名

原因是免费域名无需备案,即使域名泄露也不会跟踪到注册人
  • 通过freenom.com申请免费域名,无需实名

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

  • 将申请的域名转入dnspod下面进行管理(不转也行,dnspod为腾讯云计算公司全资控股)

教程: https://blog.csdn.net/weixin_46021924/article/details/104859155

image-20210310221853295
  • 创建一个A记录指向cs服务器
image-20210310230721958

2.2 隐藏C2的具体IP

原因是隐藏后即使域名泄露,目标也不会知道具体C2的IP地址,无法发起对我们C2服务器的溯源攻击

2.2.1 方法1一利用heruko隐藏

- 暴露信息:
	1.固定域名(heroku的)
	2.随机IP(heroku的)
- 优点:
	1.服务端的域名隐藏
	2.服务端的IP隐藏
	3.布置简单
	4.自带可信的SSL证书
	5.免费
- 缺点:
	1.上线速度慢
image-20210310234240398
  • 新建监听器1,域名填申请的域名,端口填heroku设置的target的端口
image-20210311005227408
  • 新建监听器2,端口设置443,域名为heroku的应用域名,点击open app查看域名
image-20210311005558295
image-20210311005401376

测试上线,随便生成个exe,监听器选择监听器2,运行上线,显示的上线监听器为监听器1

image-20210311010409501

2.2.2 方法2—利用微林隐藏

- 暴露信息:
	1.固定IP(微林的)
- 优点:
	1.服务端的域名隐藏
	2.服务端的IP隐藏
	3.上线速度快,只比用服务器IP慢2s左右
	4.布置简单
- 缺点:
	1.一点点钱
	2.只能使用微林服务器固定IP上线(尝试用过域名解析指向,但是总被拦,内容显示非法阻断)
  • 注册微林账号,https://www.vx.link,其他提供类似服务的平台也是可以使用的
  • 购买包月套餐,最便宜的即可
  • 配置微林
    • 流量优化-为服务器添加授权(就是C2服务器)
    • 流量优化-创建新的 vxTrans 链接点(配置转发)
  • 设置域名解析(其实微林只是他有几台服务器然后转发你设置的端口的流量而已,他的IP也是固定的)
    • 示例中我用的中国2这台,ping他的域名得知IP为182.118.xx.xx
image-20210313212542442 image-20210313213025988 image-20210313213243813 image-20210313213743438 image-20210313214205286
  • 新建监听器1,端口为微林转发到服务器设置的10000端口,域名为c2服务器自身IP
image-20210313215352221
  • 新建监听器2,域名填微林服务器IP 182.118.xx.xx,端口填微林转发到服务器设置的3xxxx端口
image-20210313224734746
  • 测试上线,随便生成个exe,监听器选择监听器2,运行上线,显示的上线监听器为监听器1
image-20210313225051771

2.2.3 方法3—利用国外CDN隐藏

- 暴露信息:
	1.固定域名(自己的免费域名)
	2.随机IP(CDN厂商的)
- 优点:
	1.服务端的IP隐藏
	2.免费
- 缺点:
	1.上线速度慢
  • 注册https://www.cloudflare.com/,按照网站教程为免费域名部署CDN
  • 开启 缓存—开发者模式,否则无法执行命令,以后使用的时候也要检查是否开启,此项会不定时自动关闭
image-20210314000041694
image-20210314000054829
  • 免费套餐限制了使用的端口, cloudflare可访问的端口](https://support.cloudflare.com/hc/zh-cn/articles/200169156-Identifying-network-ports-compatible-with-Cloudflare-s-proxy)
image-20210315161418765
  • 注意生成的信息手动复制保存一下,xxx.pem,xxx.key
image-20210315161745446
  • 生成xxxxxx.p12

    openssl pkcs12 -export -in xxx.pem -inkey xxx.key -out domain.p12 -name 免费域名 -passout pass:设定一个密码
    
  • 生成新的cobaltstrike.store文件,我命名为new.store

    keytool -importkeystore -deststorepass 密码 -destkeypass 密码 -destkeystore new.store -srckeystore spoofdomain.p12 -srcstoretype PKCS12 -srcstorepass 密码 -alias 免费域名
    
  • 配置C2.profile,附copy的一个配置文件,自行修改,填好后用c2lint c2.profile验证一下

    git clone https://github.com/FortyNorthSecurity/C2concealer.git
    cd C2concealer
    ./install.sh
    C2concealer --variant 1 --hostname 免费域名
    3
    new.store的路径
    new.store的密码
    成功生成xxxx.profile
    c2lint  xxxx.profile    确定这个配置文件是否能正常工作
    
    image-20210316214536129
    image-20210316214656038
    image-20210315171619817
  • 修改teamserver配置

    vim teamserver
    最后一行找对应的改一下
    -Djavax.net.ssl.keyStore=./new.store (证书生成的new.store文件地址)
    -Djavax.net.ssl.keyStorePassword=xxxxxx(上面store文件的密码)
    
  • 创建监听器

image-20210316215008348
  • 测试上线,随便生成个exe,选择创建的监听器,运行上线,大概11秒主机上线

2.2.4 方法4—利用国内CDN隐藏

- 暴露信息:
	1.固定域名
	2.随机IP(CDN厂商的)
- 优点:
	1.高信域名
	2.IP也是CDN的IP
	3.上线速度快
- 缺点:
	1.一点点钱
	2.不能被CDN所属公司的溯源队伍碰到

使用腾讯云的全站加速举例

image-20210414221746977

点击提交后,本地ping或者用站长之家的ping功能对腾讯云提供的CNAME那个域名进行ping,获得目标IP,这样就可以利用cdn使用host来识别请求域名来进行通信了

可以使用命令进行检查是否可以正常通信
curl -v  -H "Host: test1.baidu.com" http://目标IP/test
image-20210318130101028

然后新建一个监听,profile文件可以在网上找一个,把里面的host都改成cdn的域名

image-20210414224012427

3. CobaltStrike的上线端隐藏

因为目标的安全建设多有一些流量监测设备和其他安全设备,会对CobaltStrike的上线流量进行指纹识别,从而进行报警拦截,根据暴露的域名或者主机,还会导致被溯源的几率大大增加。
故需要对上线端->服务端的特征进行隐藏,与溯源、威胁情报、IP封禁进行对抗

利用Profile配置文件对目标到C2之间的流量和证书进行自定义配置,达到尽量减少特征的目的,具体内容,鸽了鸽了。。毕竟是以前的笔记0.0