
C2 redirector base on caddy
Redirector de C2 basado en caddy
Genera caddyfile con perfiles maleables de C2
set trust_x_forwarded_for "true"; ya esté habilitado en el perfil maleable de C21. Genera certificados autofirmados con "self-signed-cert.py" :
python3 self-signed-cert.py -t [Https Server]
Como puedes ver, se generan localhost.* en core/cert-out

2. Habilita set trust_x_forwarded_for "true"; en el perfil maleable de C2

3. Es necesario definir las cabeceras Host y Referer en cada bloque de cliente del perfil maleable de C2
⚠️ Nota: el subdominio falso debe existir en el atributo SAN (subject alternative name) de los certificados autofirmados

4. Copia el perfil de C2 en RedCaddy
Uso el jquery-c2.4.3.profile de threatexpress como demostración

5. Edita las reglas de redirección en "chains.list"
443:https:192.168.128.64:10001 significa que el tráfico entrante desde el puerto *:443 se redirige a localhost (backend de 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 qué no usar el formato json o yaml?
R: Lo siento, no sé cómo escribir un caddyfile en formato json/yaml.
P: ¿Se puede responder con un 404 en rutas que no coinciden?
R: Bueno, caddy no puede hacer esto ¯\(ツ)/¯.
https://192.168.128.64:10001
P: ¿Qué es "warden"?
R: Warden es una función de lista blanca para proteger el puerto de tu teamserver; genera un enlace aleatorio con cadenas seguras aleatorias. El usuario no puede conectarse al teamserver antes de activarlo ("warden" detrás de 443 significa manejar el enlace en el puerto 443).
6. Pasa los argumentos que generator.py necesita y pulsa enter.
python3 generator.py -f geacon_jd_pro.profile -r forward-chains.list -c CN -vps-ip 1.1.1.1

7. Por último, ejecuta caddy con el caddyfile recién generado :)
sudo ./run.sh

8. Opcional: Compila el caddy personalizado con módulos específicos