
AI 안내 CTF - Claude Code를 트레이너로 삼아 실제 서버에 침투하세요
AI를 사용하여 플래그를 탈취하는 CTF입니다.
침투 테스트 경험이 없으신가요? 문제 없습니다. Claude Code가 개인 트레이너 역할을 합니다 — 환경을 설정하고, 도구 사용법을 알려주며, 실제 공격 기술을 단계별로 안내합니다. 모든 명령어는 직접 입력합니다.
SNet은 실제 운영 중이던 서버를 기반으로 구축된 취약한 가상 머신입니다. 교과서적인 연습 문제가 아닙니다 — 실제 시스템 관리자들이 남긴 설정 파일, 잊혀진 스크립트, 방치된 자격 증명, 그리고 잘못된 결정들이 겹겹이 쌓여 있는 상황을 발견하게 됩니다.
발견할 수 있는 10가지 공격 경로가 있습니다. 플레이할 때마다 다른 경로를 선택하고 힌트는 줄어듭니다. 모든 경로를 찾을 때쯤이면 공격자와 방어자 모두의 사고방식을 갖게 될 것입니다.
터미널을 열 수 있다면 SNet을 플레이할 수 있습니다.
git clone https://github.com/hrmtz/SNet.git
cd SNet
vagrant up
모든 VM(AI 트레이너, Kali, 대상), 네트워킹 및 포트 포워딩 — 하나의 명령어로 처리됩니다.
WSL2 사용자: Windows 버전이 아닌 WSL 내부에 Linux 버전의 Vagrant를 설치하세요. 다음 환경 변수를 설정했는지 확인하세요 (
~/.bashrc또는~/.zshrc에 추가):export VAGRANT_WSL_ENABLE_WINDOWS_ACCESS="1" export PATH="$PATH:/mnt/c/Program Files/Oracle/VirtualBox"
참고: 대상 VM은
vagrant up중 SSH 인증 시간 초과를 표시합니다 — 이는 정상적인 동작입니다. 대상은 CTF 머신이며 Vagrant SSH 접근을 허용하지 않습니다.vagrant status가running으로 표시되면 정상입니다.
| VM | 명령어 | 비고 |
|---|---|---|
| AI Trainer |
첫 로그인 시 Claude Code가 자동으로 시작되며 인증 방법을 선택하라고 요청합니다:
"Please set up SNet"이라고 말하면 트레이너가 나머지를 처리합니다.
Recon → Exploit → Capture the flag
↑ ↓
← Fix it as a sysadmin ←
(repeat × 10)
이 저장소는 여러 CTF 시나리오를 지원합니다. 기본적으로 vagrant up은 SNet1(초급)을 시작합니다.
| 시나리오 | 명령어 | 설명 |
|---|---|---|
| SNet1 | vagrant up | 잠금 해제된 집에 침입하기 (초급) |
| SNet2 | SNET=2 vagrant up | 경비원에게 숨기 (중급) |
SNet2는 Zabbix 모니터링 서버를 추가합니다 — 능동적인 감시 하에 작동해야 합니다. 자세한 내용은 SNet2 README를 참조하세요.
To start a specific scenario when VMs are already running:
SNET=2 vagrant up snet2-target snet2-zabbix # add SNet2 VMs
SNET=2 vagrant provision claude # configure trainer for SNet2
Kali VM에는 리버스 셸을 더 편리하게 사용할 수 있도록 rlwrap과 tmux가 사전 설치되어 있습니다.
권장 워크플로:
# 1. Start a tmux session
tmux new-session -s attack
# 2. Use rlwrap with nc for line editing and history
rlwrap nc -lvnp 4444
# 3. Scroll up/down in tmux: Ctrl+B, then [
# Exit scroll mode: q
이유는? 원시 리버스 셸에는 화살표 키, 탭 완성, 스크롤백이 없습니다. rlwrap은 readline 지원(히스토리, 편집)을 추가하고, tmux는 스크롤백과 창 관리를 추가합니다.
새 시나리오는 프로비저닝 중에 자동으로 가져옵니다. 최신 버전을 받으려면:
vagrant provision claude
이 명령은 전체 VM을 다시 다운로드하지 않고 사용 가능한 모든 시나리오의 최신 버전을 가져옵니다.
이 프로젝트는 교육 목적으로만 제공됩니다. 책임감 있게 사용하세요.
vagrant ssh claude or ssh -p 2222 snet@localhost |
| Kali | vagrant ssh kali |
| 대상 | 호스트에서 SSH 불가 — Kali (10.0.10.20)에서 공격 |