
현대적인 사이버 레인지로, 웹, API, 클라우드, AI 및 블루팀 보안 트랙에 걸친 50개의 실습형 챌린지를 제공합니다. 안내된 공격 체인, 투명한 AI 시뮬레이터 및 침투 테스트와 방어 기술 학습을 위한 GRC 증거 보고 기능을 특징으로 합니다.
취약한 웹 애플리케이션과 사이버 레인지를 하나로 결합한 현대적인 교육 도구로, 웹, API, 클라우드, AI 및 블루팀 보안을 실습형 공격 체인을 통해 학습할 수 있습니다.
╔═══════════════════════════════════════════════════════════════╗
║ ██████╗ ███████╗███╗ ██╗████████╗███████╗███████╗████████╗ ║
║ ██╔══██╗██╔════╝████╗ ██║╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝ ║
║ ██████╔╝█████╗ ██╔██╗ ██║ ██║ █████╗ ███████╗ ██║ ║
║ ██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║ ██╔══╝ ╚════██║ ██║ ║
║ ██║ ███████╗██║ ╚████║ ██║ ███████╗███████║ ██║ ║
║ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚══════╝ ╚═╝ ║
║ MODERN CYBER RANGE · 50 CHALLENGES · 8 TRACKS ║
╚═══════════════════════════════════════════════════════════════╝
★ 이 저장소가 도움이 되셨다면 별표를 눌러주세요 - 무료이며 다른 사람들이 무료 보안 교육을 발견하는 데 도움이 됩니다.
PENTEST-LAB은 단순한 단일 취약점 박스가 아닙니다. 공격자와 방어자 관점을 GRC 스타일 증거 출력과 결합한 완전한 사이버 레인지입니다.
[SYSTEM][USER][RETRIEVED][HISTORY] 컨텍스트, 생성된 출력, 탐지된 인젝션 기법 및 각 완화 조치에 대한 토글을 모두 볼 수 있습니다.127.0.0.1에 바인딩, 0.0.0.0에서 큰 경고 표시, 모든 비밀은 가짜이며 명확히 표시됨, SSRF 대상은 로컬 인프로세스 모의(실제 이그레스 없음), 외부 대상 없음.make verify-registry는 챌린지 레지스트리(고유 ID/플래그, 필수 필드, 리소스, 힌트 수)를 검증하여 카탈로그가 일관되게 유지되도록 합니다.# 1. One-liner (installs deps, seeds the DB, starts the server)
python start_lab.py
# or: make start
브라우저에서 **http://localhost:3000**을 엽니다.
# Backend only
cd backend && npm install && npm start
# Docker (published to 127.0.0.1 only)
docker compose up --build
# Reset captured flags / events / chain progress
make reset
# Refresh demo seed data
make seed
# Smoke test core routes (start the lab first)
make test
# Validate the challenge registry (unique ids/flags, fields, resources)
make verify-registry
# Safe local-only exploit demo (5 challenges)
python demo_exploit.py
각 챌린지는 다음을 포함합니다: ID, 제목, 트랙, 카테고리, 난이도, 목표, 취약한 엔드포인트, 익스플로잇 개념, 3개의 점진적 힌트(모호함 → 구체적 → 정답), 플래그, 수정, 탐지/증거 노트, 매핑된 통제 도메인 및 풀기 전 학습 리소스 목록.
아무 챌린지 카드를 클릭하면 모달이 열립니다. 제공되는 정보:
6단계로 탐지되는 현실적이고 완전히 로컬인 체인:
Recon → Information Disclosure → Credential/Token Abuse →
Privilege Escalation → Sensitive Data Access → Evidence Report
B=http://127.0.0.1:3000
curl -s $B/api/attack-chain/recon # 1. debug endpoint discloses routes
curl -s $B/api/attack-chain/leak # 2. leaked fake JWT secret (weak123)
# 3. forge admin token -> 4. escalate -> 5. read fake customer records -> 6. report
curl -s $B/api/attack-chain/progress
Attack Chain 탭에서 진행 상황을 실시간으로 추적하세요.
Defender 탭은 공격자가 방금 수행한 동일한 활동을 보여줍니다: 최근 이벤트, 로그인 실패, 의심스러운 API 접근, 파일 업로드, SSRF 시도, 권한 상승 시도, 캡처된 플래그 및 공격 체인 진행 상황 - 각 이벤트는 심각도별 색상으로 표시되며, 플래그 캡처는 🚩로 표시됩니다.
curl -s http://localhost:3000/api/blue-team/dashboard
캡처한 플래그에서 각각을 심각도, 영향을 받은 엔드포인트, 증거, 비즈니스 영향, 수정, 통제 도메인 및 탐지 기회가 있는 발견 사항에 매핑하는 보고서를 생성합니다.
# Markdown (default)
curl -s -X POST http://localhost:3000/api/evidence/report \
-H 'Content-Type: application/json' -d '{"format":"markdown"}'
# JSON or CSV
curl -s -X POST http://localhost:3000/api/evidence/report -d '{"format":"csv"}'
# Control domains mapped: Access Control, Logging & Monitoring,
# Secure Development, Secrets Management, Change Management,
# Configuration Management, Data Protection, Incident Response.
⚠️ 이는 탐지/GRC 학습을 위한 광범위한 통제 도메인 매핑입니다. 어떤 표준에 대한 준수를 주장하지 않습니다.
| 트랙 대시보드 | 공격 체인 |
| 방어자 보기 | 증거 보고서 |
🎬 데모 GIF: docs/demo.gif - 약 6분 분량의 발표자 스크립트는 docs/DEMO_WALKTHROUGH.md를 참조하세요. (자신의 캡처를 docs/screenshots/ 및 docs/demo.gif에 넣어 placeholder를 교체하세요.)
이 랩은 의도적으로 취약하게 만들어졌습니다. 격리된 환경에서만 실행하고 절대 인터넷에 노출하지 마십시오.
127.0.0.1에 바인딩됩니다(backend/.env의 HOST=127.0.0.1).HOST=0.0.0.0으로 설정하면 큰 경고가 출력되며 UI에 위험 배너가 표시됩니다.├── start_lab.py # one-command launcher (deps + seed + run)
├── demo_exploit.py # safe local-only exploit demo (5 challenges)
├── docker-compose.yml # localhost-only publish
├── Makefile # install / start / reset / test / demo / docker
├── CHALLENGES.md # full challenge catalog
├── frontend/ # dashboard UI (tracks, chain, defender, evidence)
├── backend/
│ ├── server.js # Express app, localhost bind, route wiring
│ ├── challenges/registry.js # CENTRAL challenge registry (50 challenges)
│ ├── ai/ # TRANSPARENT AI simulator + RAG store (no external LLM)
│ ├── utils/events.js # CENTRAL event store + Blue Team feed
│ ├── routes/ # vulnerable + mode routes (api, cloud, ai, shop, ...)
│ ├── scripts/ # init-db, seed, reset, test_routes
│ └── middleware/ # auth (safe), auth.vulnerable, waf, security
├── solutions/ # Python exploit writeups
└── docs/ # SECURITY_REPORT, SETUP, DEMO_WALKTHROUGH
버그를 찾았거나 챌린지를 추가하고 싶으신가요? PR을 환영합니다.
backend/challenges/registry.js에 추가하세요(단일 진실 공급원).events.captureFlag({ flag, req })를 통해 플래그를 발생시키세요.make test와 make verify-registry를 실행하세요.교육용으로만 사용하세요. LICENSE 파일이 있으면 참조하세요. 소유하거나 명시적으로 테스트 권한이 있는 시스템에만 사용하십시오 - 여기서는 이 로컬 랩을 의미합니다.
이 랩이 새로운 것을 배우는 데 도움이 되었다면:
| 트랙 | 학습 내용 | # |
|---|
| ◆ 웹 애플리케이션 침투 테스트 | SQL 인젝션, IDOR, 파일 업로드, 경로 탐색, WAF 우회 | 14 |
| ◆ API 보안 | BOLA, 대량 할당, 속도 제한 우회, 웹훅, GraphQL, CORS 리플렉션, NoSQL 인젝션 | 7 |
| ◆ 인증 및 세션 | JWT kid/alg 혼동, 리프레시 토큰 재사용, 재설정 토큰, 고정, MFA, 호스트 헤더 재설정 중독 | 9 |
| ◆ 클라우드 / DevOps | .env 유출, SSRF 메타데이터, Docker 디버그, 공용 스토리지, CI/CD 토큰 | 5 |
| ◆ AI 보안 | 프롬프트 인젝션, 간접 인젝션, RAG 유출/중독, 도구 호출, 다중 턴 탈옥, 출력 필터 우회 | 7 |
| ◆ 비즈니스 로직 | 쿠폰 중첩, 음수 수량, 경쟁 조건, 결제 우회 | 5 |
| ◆ 공격 체인 | 가이드 종단 간 경로 + 레거시 전체 체인 RCE, 증거 포함 | 2 |
| ◆ 블루팀 증거 | 공격 탐지 및 GRC 보고서 생성 | 1 |
| 50 |