基于 Caddy 的 C2 重定向器
作者:Sec-Labs | 发布时间:
项目地址
https://github.com/XiaoliChan/RedCaddy
基于 Caddy 的 C2 重定向器
目录
概述
使用 C2 可塑配置文件生成 Caddyfile
功能
-
根据地理位置阻止 IP
-
根据请求头匹配器允许请求
-
用户代理和 IP 黑名单
-
支持多重重定向
-
团队服务器端口监护人
注意事项
-
"modules" 文件夹下的 "redwarden_parser.py" 是由 的 提供的
-
参考了这篇文章:
-
IP 黑名单来自
-
用户代理黑名单来自
-
self-signed-cert.py 修改自
快速开始
-
生成自签名证书
-
构建具有特定模块的自定义 Caddy(可选)
-
确保在 C2 可塑配置文件中已启用
set trust_x_forwarded_for "true"; -
将 C2 可塑配置文件复制到 RedCaddy
-
将重定向规则添加到文件中(例如 )
-
-
1. 使用 "self-signed-cert.py" 生成自签名证书:
python3 self-signed-cert.py -t [Https Server]
如图所示,在
core/cert-out目录下生成了localhost.*的证书
-
2. 在 C2 可塑配置文件中启用
set trust_x_forwarded_for "true";
-
3. 在 C2 可塑配置文件的每个客户端块中定义 Host 和 Referer 标头 ⚠️ 注意:伪子域名必须存在于自签名证书的 SAN(主题备用名称)属性中

-
4. 将 C2 配置文件复制到 RedCaddy 中 我以 作为示例

-
5. 在 "chains.list" 中编辑重定向规则
443:https:192.168.128.64:10001表示从端口 *:443 收到的请求将被重定向到本地https://192.168.128.64:10001(C2 后端)
Q: "warden" 是什么? A: Warden 是一个白名单功能,用于保护您的团队服务器端口,它将生成一个带有随机安全字符串的随机链接。只有在触发它之前有能力连接到团队服务器的用户("warden" 在 443 后面表示在 443 端口处理该链接)。
-
6. 传递 generator.py 所需的参数,然后按回车键。
python3 generator.py -f geacon_jd_pro.profile -r forward-chains.list -c CN -vps-ip 1.1.1.1
-
7. 最后,使用刚刚生成的 Caddyfile 运行 caddy :)
sudo ./run.sh
-
8. 可选:使用特定模块构建自定义的 caddy
bashCopy codegit clone https://github.com/XiaoliChan/RedCaddy-core.git
cd cmd/caddy
go get github.com/aksdb/caddy-cgi/v2
go get github.com/porech/caddy-maxmind-geolocation
CGO_ENABLED=0 go build
upx --best --lzma caddy
-
Q: 为什么不使用 JSON 或 YAML 格式? A: 很抱歉,我不知道如何以 JSON 或 YAML 格式编写 caddyfile。
-
Q: 是否可以使用未匹配路由返回 404 响应? A: 嗯,caddy 无法做到这一点 ¯*