1 基于 沙箱JA3指纹库限制 [默认开启]
2 基于 沙箱IP库限制 [默认开启]
3 基于 来源IP白名单限制
4 基于 来源IP归属地限制
5 基于 访问时间段限制
6 基于 C2 配置文件限制
7 基于 样本指纹限制
wikiZ/RedGuard:
https://github.com/wikiZ/RedGuard
1、下载并配置RedGuard
1.1 配置基础拦截动作
1.2 配置监听端口号
1.3 配置被反向代理的端口地址
1.4 其他的自定义限制配置(如白名单、时间段等)
2、修改C2Profile设置获取真实IP
3、云防火墙阻止对被代理端口的访问
4、CS启动与监听配置
# 添加可执行权限
chmod +x RedGuard
# 根据参数生成配置文件
./RedGuard -u
-DropAction reset
-http :80 -https :443
-host "{\"360.net\":\"http://127.0.0.1:9090\",\"360.com\":\"https://127.0.0.1:9443\"}"
# 启动
./RedGuard
# 参数解释:
-DropAction reset 配置拦截动作为重置连接
-http :80 -https :443 在80和443监听HTTP和HTTPS
-host
"{\"360.net\":\"http://127.0.0.1:9090\",
\"360.com\":\"https://127.0.0.1:9443\"}"
# 请求头为360.net 转发到 127.0.0.1:9090端口,
# 请求头为360.com 转发到 127.0.0.1:9443端口,
-http/-https参数 指定的端口 是CS设置的监听端口
-host参数 指定的端口号 是CS设置绑定端口
1、由于RedGuard是使用HOST进行流量转发,所以C2Profile中不建议配置HOST头相关参数,而是在配置监听器时设置[HTTP host Header]
2、由于配置了反向代理,导致所有上线IP都是[127.0.0.1],因此需要在C2Profile中设置 trust_x_forwarded_for
http-config {
set trust_x_forwarded_for "true";
}
不配置trust_x_forwarded_for每次上线都是取127.0.0.1:
注:远程IP显示/127.0.0.1是正常情况。因为InetAddress 对象的 toString() 方法返回的字符串形式通常包含一个斜杠 /,后跟IP地址。
建议直接参考和修改如下C2Profile文件:
wikiZ/CobaltStrike-Malleable-Profile:
https://github.com/wikiZ/CobaltStrike-Malleable-Profile
1:在iptabels下限制外部IP访问端口 [本文是9090,9443端口]
2:在云服务防火墙下限制外部IP访问端口 [本文是9090,9443端口]
3:C2程序支持配置监听器绑定IP
1 去除完整性和javaAgent调试限制
2 CS漏洞和BUG修复
1、修补 CS <= 4.5错误URI信息泄露漏洞
2、未成功修复XSS RCE, 请配置Agent修复
3、修复CS4.5 foreign派生错误
4、修复C2配置读取编码问题
5、修复C2配置set compile_time 服务器和客户端本地时间格式差异问题
修改后支持时间格式:
set compile_time "14 08 2022 11:55:33";
#建议使用,与本地时间无关
set compile_time "14 Apr 2022 11:55:33";
# 英语系统是这个|一般是Linux|
set compile_time "14 八月 2022 11:55:33";
# 中文系统是这个|一般是windows|
6、修复netview UI不可用问题,修改cna里的bnetvie为bnet。
3 CS自身安全增强
1、自定义和或基于host|mac随机化客户端配置文件名
# (cobaltstrike.conf=home|mac|xxx)
2、支持双因子认证
# (cobaltstrike.totp=false|mac|day|any)
3、支持简单XSS过滤(基本没用)
# (cobaltstrike.fix=false|min|max)
4、自定义TeamServer.Prop配置文件名
# (-Dcobaltstrike.sever_prop=TeamServer.prop)
4 修改已知特征
1、自定义 teamserver 认证头
2、自定义 HTTP Server默认返回
3、自定义 URI checksum8值
4、修改默认XOR KEY和bypass BeaconEye等
5、修改默认的NonaHTTP服务器响应内容,增加其他响应头
5 功能增强
1、开启旧功能
2、修改内置UA
3、替换winvnc.dll文件,并内置到jar包中 测试可用
4、回显编码控制功能
#使用 beacon命令 setchar UTF-8或UI内的setchar调用
5、注入行为修改功能
#使用 beacon命令 bypass360true或UI内的bypass360调用
6、增加主题设置UI按钮和UI颜色支持
#(cobaltstrike.color=dark|prime|light)
# 使用原始颜色prime后,跳转其他主题透明度会变高。
7、增加beacons统计
8、自定义CS版本号
# (cobaltstrike.version=4.5)
9、自定义认证服务器监听IP
#(cobaltstrike.server_bindto=0.0.0.0)
10、自定义上线服务器监听IP
#(cobaltstrike.server_listen_ipv4=0.0.0.0)
11、将所有-D命令参数转为配置文件支持
#(cobaltstrike.server_port) # 认证服务监听端口
#(javax.net.ssl.keyStore) # store文件
#(javax.net.ssl.keyStorePassword) # store文件密钥
配置命令注意事项:
1、所有参数支持命令行配置如-Dcobaltstrike.color=dark
2、除cobaltstrike.sever_prop外,都可通过TeamServer.prop配置
3、命令行配置参数优先级高于配置文件
4、TeamServer.prop可通过命令行-Dcobaltstrike.sever_prop修
目前支持的配置参数:
cobaltstrike.version=4.5.14.9 # 版本号
cobaltstrike.color=dark # 默认主题
cobaltstrike.conf=TeamClient.prop # 客户端配置文件名
# cobaltstrike.conf=host # 基于host半随机生成
cobaltstrike.server_bindto=0.0.0.0 #认证服务监听IP
cobaltstrike.server_port=27000 # 认证服务监听端口
cobaltstrike.server_listen_ipv4=0.0.0.0 # web服务监听IP
cobaltstrike.session_num=32 # web服务最大会话数量
cobaltstrike.fix=false # 是否修复XSS漏洞,无效修复
cobaltstrike.totp=false # 是否开始双因子认证
javax.net.ssl.keyStore= # store文件
javax.net.ssl.keyStorePassword=# store文件密钥
cobaltstrike.auth_num_1= #客户端与服务器认证时的第1次密钥
cobaltstrike.auth_num_2= #客户端与服务器认证时的第2次密钥
cobaltstrike.stage_32_sum=432 # 32位URI的checksum
cobaltstrike.stage_64_sum=464 # 64位URI的checksum
cobaltstrike.stage_uri_len=16 # URI的长度要求
cobaltstrike.stage_divisor=1024 # checksum被除底数
cobaltstrike.return_header= # 自定义响应头部, 使用<--> 分割
cobaltstrike.return_400= 自定义web服务器的400响应内容
cobaltstrike.return_403= 自定义web服务器的403响应内容
cobaltstrike.return_404= 自定义web服务器的404响应内容
cobaltstrike.return_500= 自定义web服务器的500响应内容
cobaltstrike.return_502= 自定义web服务器的502响应内容
cobaltstrike.return_503= 自定义web服务器的503响应内容
自定义服务器配置文件名称(命令行):
-Dcobaltstrike.sever_prop=xxx.prop
在学习本文技术或工具使用前,请您务必审慎阅读、充分理解各条款内容。
1、本团队分享的任何类型技术、工具文章等文章仅面向合法授权的企业安全建设行为与个人学习行为,严禁任何组织或个人使用本团队技术或工具进行非法活动。
2、在使用本文相关工具及技术进行测试时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。如您仅需要测试技术或工具的可行性,建议请自行搭建靶机环境,请勿对非授权目标进行扫描。
3、如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。
4、本团队目前未发起任何对外公开培训项目和其他对外收费项目,严禁任何组织或个人使用本团队名义进行非法盈利。
5、本团队所有分享工具及技术文章,严禁不经过授权的公开分享。
如果发现上述禁止行为,我们将保留追究您法律责任的权利,并由您自身承担由禁止行为造成的任何后果。
END
如您有任何投稿、问题、建议、需求、合作、请后台留言NOVASEC公众号!
或添加NOVASEC-酒零(本文作者) 以便于及时回复。
感谢大哥们的对NOVASEC的支持点赞和关注
加入我们与萌新一起成长吧!
本团队任何技术及文件仅用于学习分享,请勿用于任何违法活动,感谢大家的支持!!