
C2 redirector base on caddy
Redirecionador C2 baseado em caddy
Gera caddyfile com perfis maleáveis de C2
set trust_x_forwarded_for "true"; já esteja habilitado no perfil maleável de C21. Gere certificados autoassinados com "self-signed-cert.py" :
python3 self-signed-cert.py -t [Https Server]
Como você pode ver, localhost.* são gerados em core/cert-out

2. Habilite set trust_x_forwarded_for "true"; no perfil maleável de C2

3. Os cabeçalhos Host & Referer precisam ser definidos em cada bloco de cliente do perfil maleável de C2
⚠️ Nota: o subdomínio falso deve existir no atributo SAN (subject alternative name) dos certificados autoassinados

4. Copie o perfil C2 para o RedCaddy
Eu uso threatexpress‘s jquery-c2.4.3.profile como demonstração

5. Edite as regras de redirecionamento em "chains.list"
443:https:192.168.128.64:10001 significa que o tráfego de entrada da porta *:443 é redirecionado para o localhost (backend 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
P: Por que não usar formato json ou yaml?
R: Desculpe, não sei como escrever caddyfile em formato json/yaml.
P: É possível responder 404 para rotas sem correspondência?
R: Bem, o caddy não consegue fazer isso ¯\(ツ)/¯.
https://192.168.128.64:10001
P: O que é "warden"?
R: O warden é um recurso de lista de permissões (whitelist) para proteger a porta do seu teamserver; ele gera um link aleatório com strings seguras aleatórias. O usuário não consegue se conectar ao teamserver antes de ele ser acionado ("warden" atrás de 443 significa lidar com o link na porta 443).
6. Passe os argumentos necessários ao generator.py e pressione Enter.
python3 generator.py -f geacon_jd_pro.profile -r forward-chains.list -c CN -vps-ip 1.1.1.1

7. Por fim, execute o caddy com o caddyfile recém-gerado :)
sudo ./run.sh

8. Opcional: Compile o caddy personalizado com módulos específicos