Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Owasp-top-10-k8s-2025 — OWASP Kubernetes Top 10 (2025)을 위한 실습형 CTF 랩입니다. 11가지 실제 클러스터 취약점을 익스플로잇하고 플래그를 획득한 후, 수정 사항을 적용하고 자동 점검기로 확인합니다. kind에서 로컬로 실행됩니다. | Kitploit
도구/GitHubGitHub/hac01/owasp-top-10-k8s-2025
Privilege EscalationContainer SecurityVulnerability AnalysisCTFPenetration TestingCloud SecuritySupply Chain SecurityMisconfigurationLearning & EducationRed TeamingLabs & Practice
4581개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
hac01/owasp-top-10-k8s-2025

Owasp-top-10-k8s-2025

OWASP Kubernetes Top 10 (2025)을 위한 실습형 CTF 랩입니다. 11가지 실제 클러스터 취약점을 익스플로잇하고 플래그를 획득한 후, 수정 사항을 적용하고 자동 점검기로 확인합니다. kind에서 로컬로 실행됩니다.

저장소 보기

OWASP Kubernetes Top 10 (2025), 실습

캡처 더 플래그 프로젝트로, OWASP Kubernetes Top 10 — 2025를 기반으로 구성되었습니다. 당신은 가상의 전자상거래 회사 NimbusMart의 레드팀으로 고용되었습니다. 이 회사의 클러스터는 보안보다 빠르게 성장했습니다. 10개의 도전 과제는 각 OWASP 위험 요소당 하나씩 (보너스 포함) 제공됩니다. 각 취약점을 악용하여 깃발을 획득한 다음, 수정 사항을 적용하고 체커로 입증하세요.

Screenshot 2026-07-03 at 3 02 12 AM

전체 배경 이야기(회사, 서비스, 네임스페이스, 깃발 체계)는 labs/NIMBUSMART.md에 있습니다.

모든 것은 로컬 kind 위에서 실행됩니다. 실제 클러스터에 취약한 매니페스트를 절대 실행하지 마세요.

@hac01이 구축했습니다.


다루는 내용

이것은 슬라이드 덱이 아닙니다. 의도적으로 취약하게 설계된 쿠버네티스 클러스터와 이를 공격하고, 수정하고, 수정을 확인하는 도구가 함께 제공됩니다. 11개의 도전 과제를 통해 다음과 같은 실습을 수행합니다:

  • 컨테이너 및 노드 보안 — 권한 있는 파드, hostPath 마운트, 노드 탈옥 (K01)
  • RBAC 및 권한 부여 — 와일드카드 ClusterRole, 과도한 범위의 ServiceAccount, 하나의 탈취된 토큰이 모든 시크릿에 접근하는 방법 (K02, K09)
  • 시크릿 관리 — 환경 변수/ConfigMap에 하드코딩된 API 키와 더 안전한 대안 (K03)
  • 어드미션 제어 및 정책 — 클러스터 전체에 규칙이 적용되지 않을 때 누락되는 것, Pod Security Admission / 정책 엔진이 이를 막는 방법 (K04)
  • 네트워크 분할 — 플랫 파드 네트워크 대 NetworkPolicy 잠금 (K05)
  • 노출된 구성 요소 — NodePort를 통해 공개된 내부 대시보드 및 API (K06)
  • 클러스터 구성 요소 위생 — 기본 토큰, 누락된 할당량, 오래된/취약한 버전 (K07)
  • 클러스터-클라우드 측면 이동 — 노드 메타데이터(IMDS) 엔드포인트에 접근하여 클라우드 자격 증명을 탈취하는 파드 (K08)
  • 인증 — 익명 API 접근 및 과도하게 마운트된 기본 토큰 (K09)
  • 로깅 및 모니터링 — 무음 데이터 유출 탐지(또는 탐지 실패)와 감사 추적의 중요성 (K10)
  • 공급망 — 신뢰할 수 없고 변경 가능한 :latest 이미지를 프로덕션에 배포 (보너스)

각 도전 과제마다 다음을 제공합니다:

  • 임무 브리핑 — NimbusMart 시나리오, 진입점, 목표
  • 획득할 깃발 — 취약점을 악용해야만 도달 가능 (노드, 다른 네임스페이스, 네트워크를 통해). 웹 앱에 제출하면 점수판이 진행 상황과 점수를 추적합니다 (브라우저 localStorage).
  • 점진적 힌트 및 스포일러 워크스루 — 먼저 약간의 힌트, 원할 때 전체 해결책
  • 심층 개요 — 취약점이 무엇인지, 공격자가 어떻게 악용하는지, 영향, 근본 원인
  • 방어 가이드 — 구체적인 패치 및 모범 사례 체크리스트
  • 자동화된 체커 — Go 바이너리로, 클러스터를 스캔하여 각 위험에 대해 수정 사항이 적용되었는지 확인합니다.

사전 요구 사항

시작하기 전에 설치하세요. 설정 스크립트는 처음 네 가지를 확인하고 누락 시 명확한 메시지와 함께 빠르게 실패합니다.

brew 명령어는 macOS용입니다. Linux에서는 패키지 관리자나 위에 링크된 공식 설치 방법을 사용하세요.


빠른 시작 (권장) — 모든 것을 하나의 클러스터 안에서

웹 앱, 브라우저 내 터미널, 체커를 모두 kind 클러스터 내에서 실행할 수 있습니다. 한 명령으로 모든 것을 실행하고 URL을 출력합니다:

root@kitploit:~
./setup.sh          # 또는: make up
#   - kind 클러스터 생성, 이미지 빌드 및 로드, 배포, 준비될 때까지 대기
#   - 웹 앱:  http://localhost:30090
#   - 터미널: 웹 앱의 'Terminal' 버튼

./setup.sh는 올바른 포트 매핑으로 클러스터를 (재)생성하고, 두 이미지(nimbusmart-ctf-web, nimbusmart-ctf-terminal)를 빌드하여 kind에 로드하고, deploy/를 적용합니다. 첫 실행 시 기본 이미지를 가져오며 약 1-2분이 소요됩니다.

root@kitploit:~
./setup.sh            # 새 클러스터 + 전체 플랫폼 (기존 'owasp-labs' 클러스터는 삭제)
./setup.sh --keep     # 기존 'owasp-labs' 클러스터가 있으면 재사용

그런 다음 **http://localhost:30090**을 열고, 도전 과제를 선택한 후, 브라우저에서 Terminal 버튼을 사용하여 클러스터를 조작하세요.

터미널 파드는 cluster-admin ServiceAccount로 실행되므로 브라우저의 터미널이 이 클러스터를 직접 조작합니다 — kubectl apply -f labs/... 및 owasp-k8s-checker --check kNN을 그곳에서 실행하세요.

경고: 브라우저 내 터미널은 사실상 WebSocket을 통한 cluster-admin입니다. localhost에 바인딩된 로컬의 일회용 kind 클러스터이기 때문에 안전합니다. 포트 30080/30090/30091을 신뢰할 수 없는 네트워크에 절대 노출하지 마세요.

종료

root@kitploit:~
kind delete cluster --name owasp-labs      # 또는: make cluster-down

저장소 구조

root@kitploit:~
.
├── setup.sh         원클릭 부트스트랩 (클러스터 + 이미지 + 배포)
├── Makefile         편의 타겟 — `make help`로 목록 보기
├── web/             Next.js + React 앱 (흰색/보라색 테마) — UI
├── labs/            위험별 실제 K8s 매니페스트 (vulnerable.yaml + fixed.yaml + README)
│   ├── NIMBUSMART.md        전체 배경: 회사, 네임스페이스, 깃발 체계
│   └── kind-cluster.yaml    공유 로컬 클러스터 설정 (포트 매핑)
├── deploy/          인클러스터 플랫폼 매니페스트 (web + terminal + RBAC) + build.sh
├── terminal-server/ 브라우저 내 터미널용 WebSocket 백엔드
└── checker/         Top 10에 대해 클러스터를 검증하는 Go 바이너리

유용한 make 타겟 (make help로 모두 보기):


OWASP Kubernetes Top 10 — 2025

각 도전 과제는 NimbusMart 클러스터의 실제 취약점입니다 — 목표를 선택하고, 악용하고, 깃발을 획득한 다음, 패치하고 체커로 수정을 입증하세요.

Screenshot 2026-07-03 at 3 03 34 AM

2022년에서 변경된 사항: 권한 부여(RBAC였던 부분) 확대; 시크릿, 네트워크, 인증, 로깅 순서 변경; 과도하게 노출된 구성 요소(K06) 및 클러스터-클라우드 측면 이동(K08) 추가; 잘못 구성 + 오래된 구성 요소를 K07로 통합; 공급망을 보너스 도전 과제로 이동. 전체 도전-서비스-취약점 맵, 난이도, 점수(10개 도전 과제에 2000점, 보너스 +300점)는 labs/NIMBUSMART.md 참조.


수동 / 개발 워크플로우 (인클러스터 플랫폼 없이)

UI를 로컬에서 실행하고 실습을 직접 셸에서 하고 싶다면, 각 부분을 수동으로 연결할 수 있습니다.

1. 웹 앱 로컬 실행

root@kitploit:~
cd web
npm install
npm run dev
# http://localhost:3000 열기       (또는: make web)

터미널 백엔드는 :30091에서 별도로 실행되며 ~/.kube/config를 사용합니다:

root@kitploit:~
make terminal-local

2. 연구소 클러스터 생성

root@kitploit:~
kind create cluster --config labs/kind-cluster.yaml    # 또는: make cluster
kubectl config use-context kind-owasp-labs

3. 도전 과제 플레이

각 도전 과제에는 자체 README가 있지만, 패턴은 동일합니다:

root@kitploit:~
# 일부 도전 과제는 먼저 대상(노드 파일, 운영 시크릿 등)을 설정합니다
kubectl apply -f labs/k01-insecure-workload/setup.yaml       # 존재하는 경우에만

# 취약한 리소스를 배포하고 악용하여 깃발 획득
kubectl apply -f labs/k01-insecure-workload/vulnerable.yaml
# ...웹 앱의 임무 브리핑/힌트를 따라 FLAG{...}를 획득한 후 제출...

# 강화된 버전을 적용하고 깃발 경로가 차단되었는지 확인
kubectl delete -f labs/k01-insecure-workload/vulnerable.yaml
kubectl apply  -f labs/k01-insecure-workload/fixed.yaml

make clean-labs로 도전 과제 사이에 모든 것을 재설정하세요.

4. 체커로 확인

root@kitploit:~
cd checker
go run . --list            # 모든 체크 표시
go run . --check k01       # 단일 체크 실행
go run . --all             # 전체 클러스터 스캔
go run . --all --json      # 기계 판독 가능 (CI용)
go run . --all -n apps     # 특정 네임스페이스로 범위 지정

체커는 체크 실패 시 0이 아닌 종료 코드를 반환하므로 CI에서 게이트 역할을 할 수 있습니다.

독립 실행형 바이너리 빌드:

root@kitploit:~
cd checker
go build -o owasp-k8s-checker .    # 또는: make checker
./owasp-k8s-checker --all

체커가 연구소와 매핑되는 방식

각 checker/checks/kNN.go는 해당 연구소에서 가르치는 동일한 제어를 검증합니다. fixed.yaml을 배포하고 go run . --check kNN을 실행하면 PASS가 표시됩니다. vulnerable.yaml을 배포하면 동일한 체크가 구체적인 발견 사항을 보고합니다.

안전: 취약한 매니페스트는 의도적으로 악용 가능하게 설계되었습니다. 로컬의 일회용 kind/minikube 클러스터만 사용하세요. 작업이 끝나면 삭제하세요: kind delete cluster --name owasp-labs.

도구 다운로드
도구이유설치 방법
Dockerkind 클러스터 실행 및 이미지 빌드. 실행 중이어야 합니다.Docker Desktop / Engine
kindDocker 내 로컬 Kubernetes 클러스터.brew install kind
kubectl클러스터와 통신.brew install kubectl
Go 1.21+체커 바이너리 빌드 및 실행.brew install go
Node.js 18+웹 앱을 로컬에서 실행할 때만 필요 (make web). 원클릭 인클러스터 설정에는 필요하지 않습니다.brew install node
타겟설명
make up한 번에: 클러스터 + 이미지 + 배포 (setup.sh 실행)
make web웹 앱을 :3000에서 개발 모드로 실행
make cluster / make cluster-down로컬 kind 클러스터 생성 / 삭제
make scan현재 클러스터에 대해 모든 체커 실행
make check ID=k01단일 체크 실행
make clean-labs모든 연구소 리소스 삭제 (도전 과제 간 재설정)
ID위험연구소 폴더
K01안전하지 않은 워크로드 설정labs/k01-insecure-workload
K02과도하게 허용적인 권한 부여 설정labs/k02-authorization
K03시크릿 관리 실패labs/k03-secrets
K04클러스터 수준 정책 적용 부재labs/k04-policy-enforcement
K05네트워크 분할 제어 누락labs/k05-network-segmentation
K06과도하게 노출된 Kubernetes 구성 요소labs/k06-exposed-components
K07잘못 구성되고 취약한 클러스터 구성 요소labs/k07-cluster-components
K08클러스터-클라우드 측면 이동labs/k08-cluster-to-cloud
K09손상된 인증 메커니즘labs/k09-authentication
K10부적절한 로깅 및 모니터링labs/k10-logging-monitoring
Bonus공급망 취약점labs/kbonus-supply-chain