
클라우드 중립적 IAM 권한 열거 도구
멀티 클라우드 IAM 권한 열거 도구. 현재 지원:
Cliam은 간단한 클라우드 권한 식별자입니다. CLI에는 두 가지 주요 구성 요소가 있습니다. 열거된 권한의 대부분은 list, describe 또는 get 권한입니다.
enumerate - 특정 권한을 열거하는 데 사용할 수 있습니다 (권장).최신 릴리스를 다운로드하세요. DEV 태그는 최신이지만 안정적이지 않습니다.
바이너리를 로컬에서 빌드하려면 cli 디렉토리로 이동하여 make dev를 실행하세요.
Cliam은 서비스의 잘 알려진 환경 변수에서 얻은 자격 증명 또는 CLI에서 일반적으로 필요한 플래그를 전달하여 작동합니다.
enumerate 옵션의 대부분이 구체적이어야 하므로 명령 완성을 설정하는 것이 매우 권장됩니다. 완성을 생성하려면 cliam completion [shell]을 사용하고 셸의 완성 디렉토리에 맞게 설정하세요.
Usage:
cliam [command]
Available Commands:
aws AWS 자격 증명의 권한을 열거합니다.
azure Azure 자격 증명의 권한을 열거합니다.
completion 지정된 셸에 대한 자동 완성 스크립트를 생성합니다.
firebase Firebase 권한을 열거합니다.
gcp GCP 서비스 계정의 권한을 열거합니다.
help 명령에 대한 도움말을 표시합니다.
version 버전 및 빌드 정보를 표시합니다.
Flags:
-h, --help cliam 도움말
--max-threads int 사용할 최대 스레드 수입니다. (기본값 5)
--request-timeout int 각 요청의 타임아웃(초)입니다. (기본값 5)
--save-output 성공 시 출력을 파일로 저장합니다.
-v, --verbose 상세 출력을 활성화합니다.
AWS REST API를 사용하여 전달된 자격 증명으로 서명된 요청을 만듭니다. 이는 속도를 크게 향상시키지만 새로운 권한을 추가하는 데는 다소 어려움이 있습니다. 확장성 문제는 AWS가 서비스 수준에서 3~4가지 다양한 요청 유형을 사용한다는 점입니다.
AWS 프로필, 플래그 또는 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY 및 선택적으로 AWS_SESSION_TOKEN과 같은 기본 AWS 환경 변수에서 자격 증명을 가져오는 것을 지원합니다.
❯❯ cliam aws
AWS 자격 증명의 권한을 열거합니다.
Usage:
cliam aws [command]
Available Commands:
enumerate 지정된 AWS 리소스에 대한 권한을 열거합니다.
service-group AWS 리소스 그룹에 대한 권한을 열거합니다.
Flags:
--access-key-id string AWS Access Key ID
-h, --help aws 도움말
--known-value stringToString AWS 리소스 이름. known-resource-name이 설정되면 리소스를 지정해야 하는 추가 권한이 열거됩니다. (기본값 [])
--profile string AWS 프로필. 프로필이 설정되면 access-key-id, secret-access-key 및 session-token은 무시됩니다.
--region string AWS 리전 (기본값 "us-east-1")
--secret-access-key string AWS Secret Access Key
--session-json string AWS 세션 JSON 파일. 이 플래그는 지정된 파일에서 세션 정보를 읽으려고 시도합니다. 임시 자격 증명에 유용합니다.
--session-token string AWS Session Token
Global Flags:
--max-threads int 사용할 최대 스레드 수입니다. (기본값 5)
--request-timeout int 각 요청의 타임아웃(초)입니다. (기본값 5)
-v, --verbose 상세 출력을 활성화합니다.
AWS용 Cliam은 알려진 값이 필요한 특정 권한을 열거하는 것도 지원합니다. 예를 들어, awscli를 사용할 때 aws lambda get-function --function-name <function_name>으로 함수를 가져올 수 있습니다.
이는 cliam에 직접 매핑되어 다음과 같이 사용할 수 있습니다:
cliam aws enumerate lamda --known-value function-name=<function_name>
이렇게 하면 function-name을 유효한 인수로 사용하는 lambda의 모든 권한이 열거됩니다. 이는 다른 AWS 리소스에서도 작동합니다.
AWS 프로필에서 모든 서버리스 리소스를 무차별 대입합니다.
❯❯ cliam aws service-group serverless --profile=my-profile
임시 세션 토큰을 사용하여 모든 ec2 권한을 확인합니다.
❯❯ cliam aws enumerate ec2 --session-json=creds.json
cred.json 파일의 내용:
{
"Type" : "AWS-HMAC",
"AccessKeyId" : "ASIA...",
"SecretAccessKey" : "...",
"Token" : "...",
}
s3, iam 및 ec2에 대한 권한을 열거합니다.
❯❯ cliam aws enumerate s3 iam ec2
GCP는 특정 서비스 계정 JSON 파일에서 열거를 지원합니다. GCP 환경 변수 .GOOGLE_APPLICATION_CREDENTIALS 및 CLOUDSDK_CORE_PROJECT의 자격 증명도 지원됩니다
GCP 열거에는 두 가지 모드가 있으므로 cloudresourcemanager가 활성화된 경우 enumerate를 사용하거나 특정 권한을 열거하려면 rest를 사용하세요.
cliam gcp --help
GCP 서비스 계정의 권한을 열거합니다.
Usage:
cliam gcp [command]
Available Commands:
bruteforce 모든 GCP 권한을 열거합니다.
enumerate 지정된 GCP 권한을 열거합니다.
rest REST API를 사용한 GCP 권한
Flags:
-h, --help gcp 도움말
--project-id string GCP 프로젝트 ID
--region string GCP 리전 (기본값 "us-central1")
--service-account string GCP 서비스 계정 경로
--zone string GCP 영역 (기본값 "us-central1-a")
Global Flags:
--max-threads int 사용할 최대 스레드 수입니다. (기본값 5)
--request-timeout int 각 요청의 타임아웃(초)입니다. (기본값 10)
"cliam gcp [command] --help"를 사용하여 명령에 대한 자세한 정보를 확인하세요.
Azure 열거는 서비스 주체(클라이언트 ID 및 비밀), 인증서 MSI(MSI 토큰 사용) 또는 기본 인증을 포함한 다양한 인증 방법을 지원합니다. 또한 일반적인 Azure 환경 변수를 모두 지원합니다.
❯❯ cliam azure
Azure 자격 증명의 권한을 열거합니다.
대부분의 경우 유효한 Azure 구독 ID가 필요합니다. 제공되지 않으면 CLI는 사용 가능한 구독을 조회하여 첫 번째 구독을 사용합니다.
Usage:
cliam azure [command]
Available Commands:
access-token REST API와 함께 사용할 액세스 토큰을 가져옵니다.
enumerate 지정된 Azure 리소스에 대한 권한을 열거합니다.
service 특정 Azure 서비스 그룹에 대한 권한을 열거합니다.
subscriptions 모든 구독을 나열합니다.
cliam은 디버그 출력을 표시하는 두 가지 환경 변수를 지원합니다.