基于 Caddy 的 C2 重定向器

作者:Sec-Labs | 发布时间:

项目地址

https://github.com/XiaoliChan/RedCaddy

RedCaddy

基于 Caddy 的 C2 重定向器

目录

概述

使用 C2 可塑配置文件生成 Caddyfile

功能

  • 根据地理位置阻止 IP

  • 根据请求头匹配器允许请求

  • 用户代理和 IP 黑名单

  • 支持多重重定向

  • 团队服务器端口监护人

注意事项

快速开始

  • 生成自签名证书

  • 构建具有特定模块的自定义 Caddy(可选)

  • 确保在 C2 可塑配置文件中已启用 set trust_x_forwarded_for "true";

  • 将 C2 可塑配置文件复制到 RedCaddy

  • 将重定向规则添加到文件中(例如 chains.list

  • 最后,使用该 Python 脚本生成 Caddyfile。

 

 

逐步说明

  • 1. 使用 "self-signed-cert.py" 生成自签名证书 python3 self-signed-cert.py -t [Https Server]

    ad1a1b7183153014

     

    如图所示,在 core/cert-out 目录下生成了 localhost.* 的证书

    ad1a1b7183153113

     

  • 2. 在 C2 可塑配置文件中启用 set trust_x_forwarded_for "true";

    ad1a1b7183153537

     

  • 3. 在 C2 可塑配置文件的每个客户端块中定义 Host 和 Referer 标头 ⚠️ 注意:伪子域名必须存在于自签名证书的 SAN(主题备用名称)属性中

    ad1a1b7183153607

     

  • 4. 将 C2 配置文件复制到 RedCaddy 中 我以 threatexpress 的 jquery-c2.4.3.profile 作为示例

    ad1a1b7183153824

  • 5. 在 "chains.list" 中编辑重定向规则 443:https:192.168.128.64:10001 表示从端口 *:443 收到的请求将被重定向到本地 https://192.168.128.64:10001(C2 后端)

    ad1a1b7183153836

     

    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

    ad1a1b7183153845

     

  • 7. 最后,使用刚刚生成的 Caddyfile 运行 caddy :) sudo ./run.sh

    ad1a1b7183153855

     

  • 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 无法做到这一点 ¯*(ツ)*/¯。

 

参考文献

标签:工具分享, 思路分享