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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CloudPrivs — 클라우드 자격 증명으로부터 권한을 브루트포스 테스트로 확인합니다. | Kitploit
도구/GitHubGitHub/abstractclass/cloudprivs
Privilege EscalationVulnerability AnalysisInformation GatheringPenetration TestingCloud Security
GitHubabstractclass/cloudprivs

CloudPrivs

클라우드 자격 증명으로부터 권한을 브루트포스 테스트로 확인합니다.

저장소 보기
69226일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CloudPrivs

자격 증명을 얻었는데, 이제 뭐지?

개요

CloudPrivs는 Boto3와 같은 SDK의 기존 기능을 활용하여 모든 클라우드 서비스의 권한을 무차별 대입하여 주어진 자격 증명에 어떤 권한이 있는지 확인하는 도구입니다.

이 도구는 침투 테스터, 레드 팀 및 기타 보안 전문가에게 유용합니다. 클라우드 서비스는 일반적으로 주어진 자격 증명에 어떤 권한이 있는지 확인하는 방법을 제공하지 않으며, 방대한 서비스 및 작업 수로 인해 수동으로 확인하는 것은 어려운 작업입니다. 이는 자격 증명 집합에서 권한 상승이 가능할 수 있지만, 발견한 AWS 자격 증명으로 Lambda를 실행할 수 있다는 사실을 모르기 때문에 절대 알지 못할 수 있음을 의미합니다.

설치

현재 PyPi에서 사용할 수 없지만 작업 중입니다

Pip (간단)

root@kitploit:~
git clone https://github.com/AbstractClass/CloudPrivs
cd CloudPrivs
python -m pip install -e .

이는 가상 환경 없이 설치하는 방법이며, 많은 Python 프로그램을 실행하는 경우 권장되지 않습니다.

Pip (권장)

root@kitploit:~
git clone https://github.com/AbstractClass/CloudPrivs
cd CloudPrivs
python -m  venv venv/
./venv/bin/activate # activate.ps1 on windows
python -m pip install -e .

사용 가능한 경우 Pyenv+virtualenv를 사용할 수도 있습니다:

root@kitploit:~
git clone https://github.com/AbstractClass/CloudPrivs
cd CloudPrivs
pyenv virtualenv CloudPrivs
pyenv local CloudPrivs
python -m pip install -e .

사용법

cloudprivs [PROVIDER] [ARGS]

제공자

현재 사용 가능한 제공자는 AWS뿐이지만 GCP를 작업 중입니다. 도움을 원하시면 #Customizing을 참조하세요.

AWS

root@kitploit:~
Options:
  -v, --verbose                Show failed and errored tests in the output
  -s, --services TEXT          Only test the given services instead of all
                               available services
  -p, --profile TEXT           The name of the AWS profile to scan, if not
                               specified ENV vars will be used
  -t, --custom-tests FILENAME  location of custom tests YAML file. Read docs
                               for more info
  -r, --regions TEXT           A list of filters to match against regions,
                               i.e. "us", "eu-west", "ap-north-1"
  --help                       Show this message and exit.

팁

--region 및 --service에 대해 여러 인수가 지원되지만 매번 플래그와 함께 제공되어야 합니다. 예: cloudprivs aws -r us -r eu -s ec2 -s lambda. 저도 마음에 들지 않지만 Click의 한계로 아직 해결 방법을 찾지 못했습니다.

참고로 region 플래그는 부분 일치를 지원하며, 가장 일반적인 인수는 -r us -r eu로 공통 리전만 포함합니다.

결과는 리전별로 그룹화되어 표시되며 각 줄에는 테스트 케이스와 테스트 결과가 포함됩니다.

오류

도구가 테스트 중 예상치 못한 오류를 만나면 발생하는 즉시 stderr로 출력되므로 출력 흐름을 방해할 수 있습니다. 오류를 보고 싶지 않으면 stderr를 리디렉션할 수 있습니다.

작동 방식

각 테스트 케이스를 수동으로 작성하는 WeirdAAL과 같은 다른 도구와 달리 CloudPrivs는 Boto3 SDK를 직접 쿼리하여 사용 가능한 모든 서비스와 각 서비스의 모든 리전 목록을 동적으로 생성합니다.

전체 목록이 생성되면 기본적으로 각 함수가 인수 없이 호출되지만, 작업별로 사용자 정의 인수를 추가하는 옵션이 지원됩니다(#Customizing에서 자세한 정보).

참고: 일부 AWS 함수를 호출하면 비용이 발생할 수 있습니다. 우발적인 비용을 완화하기 위해 get_, list_, describe_로 시작하는 작업만 허용했으며, 이는 제 테스트에서 안전해 보였지만 주의해서 사용해 주십시오. enumerate-iam과 같은 다른 도구에서도 안전해 보이지만, 이러한 함수를 (인수 없이) 호출할 때 우발적인 비용이 발생하지 않을 것이라고 보장하지는 않습니다.

사용자 정의

CloudPrivs는 두 가지 영역에서 쉬운 확장/사용자 정의를 지원합니다:

  • 제공자
  • 사용자 정의 테스트

제공자

새 제공자(예: GCP)를 구현하는 것은 간단합니다.

  1. 테스트를 수행하는 로직을 작성합니다. 명명 규칙과 구조는 중요하지 않습니다.
  2. CloudPrivs/providers 폴더 아래에 제공자에 대한 새 폴더를 만듭니다(예: 'gcp').
  3. CloudPrivs/providers/__init__.py 파일에서 제공자를 __all__ 변수에 추가합니다. 이는 폴더 이름과 일치해야 합니다.
  4. 제공자 폴더에 cli.py 파일을 만듭니다.
  5. Click을 사용하여 제공자에 대한 CLI를 만들고 CLI 진입 함수 이름을 cli로 지정합니다(참조: AWS 제공자).
  6. 완료! 이제 cloudprivs <provider>를 실행하면 CLI가 표시됩니다.

사용자 정의 테스트

AWS 제공자는 AWS 함수 호출 시 인수 주입을 지원합니다. 이 기능은 AWS 함수가 호출에 인수를 필요로 하는 경우가 많고, 어떤 경우에는 이러한 인수가 고정 변수일 수 있기 때문에 제공됩니다. 즉, 더미 변수를 제공하면 테스트 범위를 늘릴 수 있습니다. 다른 경우에는 dryrun=true와 같은 인수를 주입하여 호출 속도를 높일 수 있습니다.

사용자 정의 테스트는 cloudprivs/providers/aws/CustomTests.yaml의 YAML 파일에 저장됩니다.

YAML의 구조는 다음과 같습니다:

root@kitploit:~
---
<service-name>:
    - <function-name>:
        args:
            - <arg1>
            - <arg2>
        kwargs:
            arg1: val1
            arg2: val2

참고: 함수 이름은 부분 일치로 작동합니다. 즉, 'describe_'와 같은 함수 이름을 사용하면 지정된 인수가 'describe_'를 포함하는 모든 함수에 주입됩니다. 규칙은 '첫 번째 발견' 기준으로 일치하므로 일반 규칙을 재정의하려면 더 구체적인 규칙을 일반 규칙 위에 배치하세요. 예:

root@kitploit:~
ec2:
    - describe_instances
        args:
        kwargs:
            DryRun: True
            NoPaginate: True
    - describe_
        args:
        kwargs:
            DryRun: True

새 규칙 추가

새 규칙은 기존 CustomTests.yaml 파일을 수정하거나 새 YAML 파일을 만들고 --custom-tests 플래그로 지정하여 추가할 수 있습니다. 새 파일은 기존 테스트 파일과 병합되며 중복 값은 제공된 파일이 우선 적용되어 재정의됩니다.

라이브러리 사용법

AWS

AWS 제공자는 다른 도구에 통합하기 위한 라이브러리로 작성되었습니다. 다음과 같이 사용할 수 있습니다:

root@kitploit:~
import boto3
from cloudprivs.providers.aws import service
from concurrent.futures import ThreadPoolExecutor

session = boto3.Session('default')
with ThreadPoolExecutor(15) as executor:
  iam = service.Service('iam', session, executor=executor)
  scan_results = iam.scan() # will cover all regions listed in the executor (all available regions by default)
  formatted_results iam.pretty_print_scan(scan_results)
  print(formatted_results)

모든 것이 코드에 완전히 문서화되어 있어 파싱하기 매우 쉬울 것입니다.

로드맵

이 도구는 기능적이지만 완성과는 거리가 멉니다. 새로운 기능을 적극적으로 개발 중이며 기여를 환영합니다. 자유롭게 이슈/기능 요청을 열고 PR을 보내주세요.

계획된 기능

  • PyPi에 도구 추가
  • GCP 지원
  • JSON 출력
  • 단위 테스트 추가
  • Golang으로 마이그레이션
도구 다운로드