
C2 redirector base on caddy
基于 Caddy 的 C2 重定向器
使用 C2 malleable profiles 生成 Caddyfile
set trust_x_forwarded_for "true";1. 使用 "self-signed-cert.py" 生成自签名证书 :
python3 self-signed-cert.py -t [Https Server]
如你所见,localhost.* 已生成在 core/cert-out 目录中

2. 在 C2 malleable profile 中启用 set trust_x_forwarded_for "true";

3. 在 C2 malleable profile 的每个 client 块中需要定义 Host 和 Referer 头
⚠️ 注意:伪造的子域名必须存在于自签名证书的 SAN(subject alternative name)属性中

4. 将 C2 profile 复制到 RedCaddy
我使用 threatexpress 的 jquery-c2.4.3.profile 作为演示

5. 编辑 "chains.list" 中的重定向规则
443:https:192.168.128.64:10001 表示来自端口 *:443 的入站流量重定向到 localhost 的 (C2 后端)
git clone https://github.com/XiaoliChan/RedCaddy-core.git
cd cmd/caddy
go get github.com/aksdb/caddy-cgi/v2
go get github.com/XiaoliChan/caddy-maxmind-geolocation@self
CGO_ENABLED=0 go build
upx --best --lzma caddy
问:为什么不用 json 或 yaml 格式?
答:抱歉,我不知道如何用 json/yaml 格式编写 Caddyfile。
问:不匹配的路由能否响应 404?
答:嗯,caddy 做不到这一点 ¯\(ツ)/¯.
https://192.168.128.64:10001
问:什么是 "warden"?
答:Warden 是一个白名单功能特性,用于保护你的 teamserver 端口;它会生成一个带有随机安全字符串的随机链接。在触发它之前,用户无法连接到 teamserver("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