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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
kube-hunter — Kubernetes 클러스터의 보안 취약점을 찾아보세요 | Kitploit
도구/GitHubGitHub/aquasecurity/kube-hunter
Cloud Infrastructure SecurityVulnerability ScannersContainer SecurityVulnerability AnalysisPenetration TestingCloud SecurityMisconfigurationContainer EscapeCloud Infrastructure Security #17위Cloud Security #16위
5.1k61172년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Container Escape #4위
Container Security #7위
Vulnerability Analysis #15위
Vulnerability Scanners #15위
GitHubaquasecurity/kube-hunter

kube-hunter

Kubernetes 클러스터의 보안 취약점을 찾아보세요

저장소 보기

공지

kube-hunter는 더 이상 활발히 개발되지 않습니다. Kubernetes 클러스터의 알려진 취약점을 스캔하는 데 관심이 있다면 Trivy를 권장합니다. 특히 Trivy의 Kubernetes 잘못된 구성 스캔 및 KBOM 취약점 스캔을 참조하세요. 자세한 내용은 Trivy 문서에서 확인하세요.


kube-hunter는 Kubernetes 클러스터의 보안 취약점을 찾습니다. 이 도구는 Kubernetes 환경의 보안 문제에 대한 인식과 가시성을 높이기 위해 개발되었습니다. 소유하지 않은 Kubernetes 클러스터에서는 kube-hunter를 실행해서는 안 됩니다!

kube-hunter 실행: kube-hunter는 컨테이너(aquasec/kube-hunter)로 제공되며, kube-hunter.aquasec.com에서 온라인으로 등록하여 결과를 온라인으로 보고 공유할 수 있는 토큰을 받을 수 있는 웹사이트도 제공합니다. 아래 설명된 대로 Python 코드를 직접 실행할 수도 있습니다.

취약점 탐색: kube-hunter 지식 베이스는 발견 가능한 취약점 및 문제에 대한 문서를 포함합니다. kube-hunter가 문제를 보고하면 VID(취약점 ID)를 표시하므로 https://aquasecurity.github.io/kube-hunter/ 의 KB에서 조회할 수 있습니다.
kube-hunter의 Kubernetes ATT&CK Matrix 통합에 관심이 있다면 계속 읽기

kube-hunter 데모 동영상

목차

  • 목차
    • Kubernetes ATT&CK Matrix
    • 헌팅
      • kube-hunter를 어디서 실행해야 하나요?
      • 스캔 옵션
      • 인증
      • 능동적 헌팅
      • 테스트 목록
      • 노드 매핑
      • 출력
      • 전송
    • 고급 사용법
      • Azure 빠른 스캔
      • 사용자 정의 헌팅
    • 배포
      • 머신에서
        • 전제 조건
          • pip로 설치
          • 소스에서 실행
      • 컨테이너
      • Pod
    • 기여
    • 라이선스

Kubernetes ATT&CK Matrix

kube-hunter는 이제 Kubernetes ATT&CK Matrix의 새로운 형식을 지원합니다. kube-hunter의 취약점은 클러스터 내부(또는 외부)의 공격자를 모방하도록 설계된 창의적인 기술 모음인 반면, Mitre의 ATT&CK은 이를 수행하기 위한 보다 일반적인 표준화된 기술 범주를 정의합니다.

kube-hunter 취약점을 공격자의 작은 단계로 생각할 수 있으며, 이는 그가 목표로 하는 보다 일반적인 기술의 궤적을 따릅니다. 대부분의 kube-hunter 헌터와 취약점은 이러한 기술에 밀접하게 속할 수 있으므로 Matrix 표준을 따르기로 결정했습니다.

Mitre 기술에 매핑할 수 없는 일부 kube-hunter 취약점은 General 키워드가 접두사로 붙습니다. kube-hunter

헌팅

kube-hunter를 어디서 실행해야 하나요?

kube-hunter를 실행하는 세 가지 방법이 있으며, 각각은 클러스터의 약점을 감지하는 다른 접근 방식을 제공합니다.

모든 머신(노트북 포함)에서 kube-hunter를 실행하고 원격 스캔을 선택한 다음 Kubernetes 클러스터의 IP 주소 또는 도메인 이름을 제공합니다. 이렇게 하면 Kubernetes 설정에 대한 공격자의 시각을 얻을 수 있습니다.

클러스터 내의 머신에서 kube-hunter를 직접 실행하고 모든 로컬 네트워크 인터페이스를 프로브하는 옵션을 선택할 수 있습니다.

또한 클러스터 내의 Pod에서 kube-hunter를 실행할 수 있습니다. 이는 예를 들어 애플리케이션 Pod가 (소프트웨어 취약점을 통해) 손상된 경우 클러스터가 얼마나 노출될 수 있는지를 나타냅니다. (--pod 플래그)

스캔 옵션

먼저 **전제 조건**을 확인하세요.

기본적으로 kube-hunter는 대화형 세션을 열며, 다음 스캔 옵션 중 하나를 선택할 수 있습니다. 명령줄에서 스캔 옵션을 수동으로 지정할 수도 있습니다. 옵션은 다음과 같습니다.

  1. 원격 스캔

원격 머신을 헌팅하려면 옵션 1을 선택하거나 --remote 옵션을 사용하세요. 예: kube-hunter --remote some.node.com

  1. 인터페이스 스캔

인터페이스 스캔을 지정하려면 --interface 옵션을 사용할 수 있습니다 (이렇게 하면 머신의 모든 네트워크 인터페이스를 스캔합니다). 예: kube-hunter --interface

  1. 네트워크 스캔

특정 CIDR을 스캔하려면 --cidr 옵션을 사용하세요. 예: kube-hunter --cidr 192.168.0.0/24

  1. Kubernetes 노드 자동 검색

--k8s-auto-discover-nodes 플래그를 설정하여 Kubernetes에 클러스터의 모든 노드를 쿼리한 다음 모두 스캔합니다. 기본적으로 클러스터 내 구성을 사용하여 Kubernetes API에 연결합니다. 명시적인 kubeconfig 파일을 사용하려면 --kubeconfig /location/of/kubeconfig/file을 설정하세요.

또한 이는 --pod 모드를 사용할 때 항상 수행됩니다.

인증

초기 단계의 공격자를 모방하기 위해 kube-hunter는 헌팅에 인증이 필요하지 않습니다.

  • 가장(Impersonate) - 헌팅 중에 사용할 특정 서비스 계정 토큰을 --service-account-token 플래그로 서비스 계정 시크릿의 JWT Bearer 토큰을 수동으로 전달하여 kube-hunter에 제공할 수 있습니다.

    예:

    root@kitploit:~
    $ kube-hunter --active --service-account-token eyJhbGciOiJSUzI1Ni...
    
  • --pod 플래그로 실행할 때 kube-hunter는 헌팅 중 발견한 서비스에 인증하기 위해 Pod 내부에 마운트된 서비스 계정 토큰을 사용합니다.

    • 지정된 경우 --service-account-token 플래그는 Pod로 실행할 때 우선순위를 가집니다.

능동적 헌팅

능동적 헌팅은 kube-hunter가 찾은 취약점을 악용하여 추가 취약점을 탐색하는 옵션입니다. 일반 헌팅과 능동적 헌팅의 주요 차이점은 일반 헌팅은 클러스터의 상태를 절대 변경하지 않는 반면, 능동적 헌팅은 클러스터에 상태 변경 작업을 수행할 수 있으며 위험할 수 있습니다.

기본적으로 kube-hunter는 능동적 헌팅을 수행하지 않습니다. 클러스터를 능동적으로 헌팅하려면 --active 플래그를 사용하세요. 예: kube-hunter --remote some.domain.com --active

테스트 목록

--list 옵션으로 테스트 목록을 볼 수 있습니다. 예: kube-hunter --list

능동적 헌팅 테스트와 수동적 테스트를 모두 보려면: kube-hunter --list --active

노드 매핑

노드 네트워크 매핑만 보려면 --mapping 옵션으로 실행하세요. 예: kube-hunter --cidr 192.168.0.0/24 --mapping 이렇게 하면 kube-hunter가 찾은 모든 Kubernetes 노드가 출력됩니다.

출력

로깅을 제어하려면 --log 옵션을 사용하여 로그 수준을 지정할 수 있습니다. 예: kube-hunter --active --log WARNING 사용 가능한 로그 수준:

  • DEBUG
  • INFO (기본값)
  • WARNING

전송

기본적으로 보고서는 stdout으로 전송되지만 --dispatch 옵션을 사용하여 다른 방법을 지정할 수 있습니다. 예: kube-hunter --report json --dispatch http 사용 가능한 전송 방법:

  • stdout (기본값)
  • http (구성하려면 다음 환경 변수를 설정하세요:)
    • KUBEHUNTER_HTTP_DISPATCH_URL (기본값: https://localhost)
    • KUBEHUNTER_HTTP_DISPATCH_METHOD (기본값: POST)

고급 사용법

Azure 빠른 스캔

Azure 또는 AWS 환경에서 Pod로 실행할 때 kube-hunter는 인스턴스 메타데이터 서비스에서 서브넷을 가져옵니다. 당연히 이로 인해 검색 과정이 더 오래 걸립니다. 서브넷 스캔을 /24 CIDR로 제한하려면 --quick 옵션을 사용하세요.

사용자 정의 헌팅

사용자 정의 헌팅을 사용하면 고급 사용자가 헌팅 시작 시 등록되는 헌터를 제어할 수 있습니다. 무엇을 하고 있는지 알고 있다면 필요에 따라 kube-hunter의 헌팅 및 검색 프로세스를 조정하는 데 도움이 될 수 있습니다.

예:

root@kitploit:~
kube-hunter --custom <HunterName1> <HunterName2>

사용자 정의 헌팅을 활성화하면 주어진 허용 목록의 헌터를 제외한 모든 헌터가 헌팅 프로세스에서 제거됩니다.

--custom 플래그는 헌터 클래스 이름 목록을 읽습니다. kube-hunter의 모든 클래스 이름을 보려면 --raw-hunter-names 플래그를 --list 플래그와 함께 사용할 수 있습니다.

예:

root@kitploit:~
kube-hunter --active --list --raw-hunter-names

참고: kube-hunter의 아키텍처 설계상 다음 "핵심 헌터/클래스"는 (사용자 정의 헌팅을 사용할 때도) 항상 등록됩니다.

  • HostDiscovery
    • 주어진 구성에 따라 헌팅을 위한 IP 주소 생성
    • 클라우드 메타데이터 API를 사용하여 서브넷 자동 검색
  • FromPodHostDiscovery
    • Pod 기반 환경 기술을 사용하여 헌팅을 위한 공격 표면 IP 주소 자동 검색
    • 클라우드 메타데이터 API를 사용하여 서브넷 자동 검색
  • PortDiscovery
    • 알려진 Kubernetes 서비스 포트에 대한 IP 주소 포트 스캔
  • Collector
    • 발견된 취약점 및 열린 서비스를 수집하여 향후 보고서에 사용
  • StartedInfo
    • 시작 메시지 출력
  • SendFullReport
    • 주어진 구성에 따라 보고서 전송

배포

kube-hunter를 배포하는 세 가지 방법이 있습니다.

머신에서

머신에서 직접 kube-hunter를 실행할 수 있습니다.

전제 조건

다음이 설치되어 있어야 합니다.

  • python 3.x
  • pip
pip로 설치

설치:

root@kitploit:~
pip install kube-hunter

실행:

root@kitploit:~
kube-hunter
소스에서 실행

저장소 복제:

root@kitploit:~
git clone https://github.com/aquasecurity/kube-hunter.git

모듈 종속성 설치. (가상 환경 내에서 수행하는 것이 좋습니다.)

root@kitploit:~
cd ./kube-hunter
pip install -r requirements.txt

실행:

root@kitploit:~
python3 kube_hunter

pyinstaller/py2exe를 사용하려면 먼저 install_imports.py 스크립트를 실행해야 합니다.

컨테이너

Aqua Security는 aquasec/kube-hunter:aqua에서 kube-hunter의 컨테이너화된 버전을 유지 관리합니다. 이 컨테이너에는 이 소스 코드와 함께 kube-hunter.aquasec.com에서 볼 수 있는 보고서에 결과를 업로드하기 위한 추가 (클로즈드 소스) 보고 플러그인이 포함되어 있습니다. aquasec/kube-hunter 컨테이너를 실행하고 보고서 데이터를 업로드하는 것은 추가 이용약관이 적용됩니다.

이 저장소의 Dockerfile을 사용하면 보고 플러그인 없이 컨테이너화된 버전을 빌드할 수 있습니다.

호스트 네트워크로 kube-hunter 컨테이너를 실행하면 호스트의 모든 인터페이스를 프로브할 수 있습니다.

docker run -it --rm --network host aquasec/kube-hunter

Docker for Mac/Windows 참고: Docker for Mac 또는 Windows의 "호스트"는 Docker가 컨테이너를 실행하는 VM입니다. 따라서 --network host를 지정하면 kube-hunter가 해당 VM의 네트워크 인터페이스에 액세스할 수 있으며, 사용자 머신의 인터페이스에는 액세스할 수 없습니다. 기본적으로 kube-hunter는 대화형 모드로 실행됩니다. 위에서 설명한 매개변수로 스캔 옵션을 지정할 수도 있습니다. 예:

docker run --rm aquasec/kube-hunter --cidr 192.168.0.0/24

Pod

이 옵션을 사용하면 악성 컨테이너를 실행하면 클러스터에서 무엇을 할 수 있고 발견할 수 있는지 확인할 수 있습니다. 이는 공격자가 소프트웨어 취약점을 통해 Pod를 손상시킬 수 있는 경우 수행할 수 있는 작업에 대한 관점을 제공합니다. 이는 훨씬 더 많은 취약점을 드러낼 수 있습니다.

예제 job.yaml 파일은 기본 Kubernetes Pod 액세스 설정을 사용하여 Pod에서 kube-hunter를 실행하는 Job을 정의합니다. (예를 들어, 루트가 아닌 사용자로 실행하거나 다른 네임스페이스에서 실행하는 등 이 정의를 수정할 수 있습니다.)

  • kubectl create -f ./job.yaml로 Job 실행
  • kubectl describe job kube-hunter로 Pod 이름 찾기
  • kubectl logs <pod name>으로 테스트 결과 보기

기여

기여 가이드라인을 읽으려면 여기를 클릭하세요

라이선스

이 저장소는 Apache License 2.0에 따라 제공됩니다.

도구 다운로드