
Caddy 기반 C2 리다이렉터
caddy 기반 C2 리다이렉터
C2 malleable profile로 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(주체 대체 이름) 속성에 가짜 하위 도메인이 존재해야 합니다.

4. C2 profile을 RedCaddy로 복사
예시로 threatexpress의 jquery-c2.4.3.profile을 사용합니다.

5. "chains.list"에서 리다이렉션 규칙 편집
443:https:192.168.128.64:10001은 포트 *:443으로 들어오는 요청을 localhost https://192.168.128.64:10001(C2 백엔드)로 리다이렉트함을 의미합니다.

Q: "warden"이란 무엇인가요?
A: Warden은 팀서버 포트를 보호하는 화이트리스트 기능입니다. 임의의 보안 문자열로 임의의 링크를 생성합니다. 사용자는 이를 트리거하기 전에는 팀서버에 연결할 수 없습니다 (443 뒤의 "warden"은 443 포트에서 해당 링크를 처리함을 의미합니다).
6. generator.py에 필요한 인자를 전달하고 Enter를 누릅니다.
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 빌드
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
Q: 왜 json이나 yaml 형식을 사용하지 않나요?
A: 죄송합니다. json/yaml 형식으로 caddyfile을 작성하는 방법을 모릅니다.
Q: 일치하지 않는 경로에 대해 404로 응답할 수 있나요?
A: 음, caddy는 이 작업을 할 수 없습니다 ¯\(ツ)/¯.