현대적인 사이버 레인지로, 웹, API, 클라우드, AI 및 블루팀 보안 트랙에 걸친 50개의 실습형 챌린지를 제공합니다. 안내된 공격 체인, 투명한 AI 시뮬레이터 및 침투 테스트와 방어 기술 학습을 위한 GRC 증거 보고 기능을 특징으로 합니다.
웹, API, 클라우드, AI, 블루팀 보안을 실습형 공격 체인을 통해 학습할 수 있는 현대적인 취약 애플리케이션 및 사이버 레인지입니다.
╔═══════════════════════════════════════════════════════════════╗
║ ██████╗ ███████╗███╗ ██╗████████╗███████╗███████╗████████╗ ║
║ ██╔══██╗██╔════╝████╗ ██║╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝ ║
║ ██████╔╝█████╗ ██╔██╗ ██║ ██║ █████╗ ███████╗ ██║ ║
║ ██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║ ██╔══╝ ╚════██║ ██║ ║
║ ██║ ███████╗██║ ╚████║ ██║ ███████╗███████║ ██║ ║
║ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚══════╝ ╚═╝ ║
║ MODERN CYBER RANGE · 53 CHALLENGES · 8 TRACKS ║
╚═══════════════════════════════════════════════════════════════╝
★ 이 저장소가 도움이 되었다면 Star를 눌러주세요 - 무료이며, 다른 사람들이 무료 보안 교육을 발견하는 데 도움이 됩니다.
PENTEST-LAB은 단순한 단일 취약점 박스가 아닙니다. 공격자와 방어자 관점을 GRC 스타일의 증거 출력과 결합한 완전한 사이버 레인지입니다:
[SYSTEM][USER][RETRIEVED][HISTORY]127.0.0.1에 바인딩, 0.0.0.0에서 큰 경고 표시, 모든 시크릿은 가짜이며 명확히 표시, SSRF 대상은 로컬 프로세스 내 목(실제 외부 통신 없음), 외부 대상 없음.make verify-registry는 챌린지 레지스트리를 검증합니다(고유 ID/플래그, 필수 필드, 리소스, 힌트 수) - 카탈로그의 일관성 유지.# 1. 원라인 실행 (의존성 설치, DB 시드, 서버 시작)
python start_lab.py
# 또는: make start
브라우저에서 **http://localhost:3000**을 엽니다.
# 백엔드만
cd backend && npm install && npm start
# Docker (127.0.0.1에만 게시)
docker compose up --build
# 캡처된 플래그 / 이벤트 / 체인 진행 상황 초기화
make reset
# 데모 시드 데이터 새로고침
make seed
# 핵심 라우트 스모크 테스트 (랩 먼저 시작)
make test
# 챌린지 레지스트리 검증 (고유 ID/플래그, 필드, 리소스)
make verify-registry
# 안전한 로컬 전용 익스플로잇 데모 (5개 챌린지)
python demo_exploit.py
| 트랙 | 학습 내용 | # |
|---|---|---|
| ◆ 웹 앱 침투 테스트 | SQLi, IDOR, 파일 업로드, 경로 탐색, WAF 우회 | 14 |
| ◆ API 보안 | BOLA, 대량 할당, 속도 제한 우회, 웹훅, GraphQL, CORS 반사, NoSQL 인젝션 | 7 |
| ◆ 인증 및 세션 | JWT kid/alg 혼동, 리프레시 토큰 재사용, 리셋 토큰, 고정, MFA, 호스트 헤더 리셋 중독 | 9 |
| ◆ 클라우드 / DevOps | .env 유출, SSRF 메타데이터, docker 디버그, 공개 스토리지, CI/CD 토큰 | 5 |
| ◆ AI 보안 | 프롬프트 인젝션, 간접 인젝션, RAG 유출/중독, 도구 호출, 다중 턴 탈옥, 출력 필터 우회, 3단계 감사 드릴 | 10 |
| ◆ 비즈니스 로직 | 쿠폰 중첩, 음수 수량, 경쟁 조건, 결제 우회 | 5 |
| ◆ 공격 체인 | 가이드 종단 간 경로 + 레거시 전체 체인 RCE, 증거 포함 | 2 |
| ◆ 블루팀 증거 | 공격 탐지 및 GRC 보고서 생성 | 1 |
| 53 |
각 챌린지에는 다음이 포함됩니다: ID, 제목, 트랙, 카테고리, 난이도, 목표, 취약 엔드포인트, 익스플로잇 개념, 3단계 점진적 힌트(모호함 → 구체적 → 정답), 플래그, 수정 조치, 탐지/증거 노트, 매핑된 통제 영역, 풀기 전 학습 리소스 목록.
챌린지 카드를 클릭하면 모달이 열립니다. 다음을 제공합니다:
6단계로 감지되는 현실적이고 완전히 로컬인 체인:
정찰 → 정보 노출 → 자격 증명/토큰 남용 →
권한 상승 → 민감 데이터 접근 → 증거 보고서
B=http://127.0.0.1:3000
curl -s $B/api/attack-chain/recon # 1. 디버그 엔드포인트가 라우트 노출
curl -s $B/api/attack-chain/leak # 2. 유출된 가짜 JWT 시크릿 (weak123)
# 3. 관리자 토큰 위조 -> 4. 권한 상승 -> 5. 가짜 고객 레코드 읽기 -> 6. 보고서
curl -s $B/api/attack-chain/progress
공격 체인 탭에서 진행 상황을 실시간으로 추적하세요.
방어자 탭은 공격자가 방금 수행한 것과 동일한 활동을 보여줍니다: 최근 이벤트, 실패한 로그인, 의심스러운 API 접근, 파일 업로드, SSRF 시도, 권한 상승 시도, 캡처된 플래그, 공격 체인 진행 상황 - 각 이벤트는 심각도별 색상으로 표시되며, 플래그 캡처는 🚩로 표시됩니다.
curl -s http://localhost:3000/api/blue-team/dashboard
캡처한 플래그에서 보고서를 생성하여 각각을 심각도, 영향받은 엔드포인트, 증거, 비즈니스 영향, 수정 조치, 통제 영역, 탐지 기회가 포함된 발견 사항에 매핑합니다.
# Markdown (기본값)
curl -s -X POST http://localhost:3000/api/evidence/report \
-H 'Content-Type: application/json' -d '{"format":"markdown"}'
# JSON 또는 CSV
curl -s -X POST http://localhost:3000/api/evidence/report \
-H 'Content-Type: application/json' -d '{"format":"csv"}'
# 매핑된 통제 영역: 접근 통제, 로깅 및 모니터링,
# 보안 개발, 시크릿 관리, 변경 관리,
# 구성 관리, 데이터 보호, 사고 대응.
⚠️ 이는 탐지/GRC 학습을 위한 광범위한 통제 영역 매핑입니다. 어떤 표준에 대한 준수를 주장하지 않습니다.
저장소에는 스크린샷이나 녹화 GIF가 포함되어 있지 않습니다. 로컬 데모 자산을 만드는 경우 docs/screenshots/ 아래에 배치하고 캡처 프로세스를 함께 문서화하세요. 발표 준비가 된
docs/DEMO_WALKTHROUGH.md가 유지 관리되는 데모 스크립트입니다.
이 랩은 의도적으로 취약합니다. 격리된 환경에서만 실행하고 인터넷에 절대 노출하지 마세요.
127.0.0.1에 바인딩됩니다(backend/.env의 HOST=127.0.0.1).HOST=0.0.0.0으로 설정하면 큰 경고가 출력됩니다. UI에 위험 배너가 표시됩니다.├── start_lab.py # 원커맨드 런처 (의존성 + 시드 + 실행)
├── demo_exploit.py # 안전한 로컬 전용 익스플로잇 데모 (5개 챌린지)
├── docker-compose.yml # localhost 전용 게시
├── Makefile # install / start / reset / test / demo / docker
├── CHALLENGES.md # 전체 챌린지 카탈로그
├── frontend/ # 대시보드 UI (트랙, 체인, 방어자, 증거)
├── backend/
│ ├── server.js # Express 앱, localhost 바인딩, 라우트 연결
│ ├── challenges/registry.js # 중앙 챌린지 레지스트리 (53개 챌린지)
│ ├── ai/ # 투명한 AI 시뮬레이터 + RAG 저장소 (외부 LLM 없음)
│ ├── utils/events.js # 중앙 이벤트 저장소 + 블루팀 피드
│ ├── routes/ # 취약 + 모드 라우트 (api, cloud, ai, shop, ...)
│ ├── scripts/ # init-db, seed, reset, test_routes
│ └── middleware/ # auth (안전), auth.vulnerable, waf, security
├── solutions/ # Python 익스플로잇 라이트업
└── docs/ # 설정, 도구, 데모, 공격 체인 가이드
버그를 발견했거나 챌린지를 추가하고 싶으신가요? PR을 환영합니다.
backend/challenges/registry.js에 새 챌린지 추가(단일 진실 소스).events.captureFlag({ flag, req })를 통해 플래그를 발행.make test 및 make verify-registry 실행.교육용으로만 사용하세요. LICENSE가 있으면 참조하세요. 소유한 시스템 또는 명시적으로 테스트 권한이 부여된 시스템에만 사용하세요 - 여기서는 이 로컬 랩을 의미합니다.
이 랩이 새로운 것을 배우는 데 도움이 되었다면: