
Enumerador de permissões IAM agnóstico de nuvem
Ferramenta de enumeração de permissões de IAM multi-nuvem. Atualmente cobre:
Cliam é um identificador simples de permissões de nuvem. Existem dois componentes principais na CLI. A maioria das permissões enumeradas são permissões list, describe ou get.
enumerate que pode ser usado para enumerar permissões específicas (recomendado)Baixe a última versão. As tags DEV são atuais, mas não estáveis.
Para construir o binário localmente, entre no diretório cli e execute make dev
Cliam funciona com credenciais obtidas das variáveis de ambiente conhecidas dos serviços ou passando as flags comumente exigidas da CLI.
É altamente recomendável que as conclusões de comando sejam configuradas, pois a maioria das opções de enumerate precisam ser específicas. Para gerar conclusões, use cliam completion [shell] e configure de acordo com o diretório de conclusão do seu shell.
Usage:
cliam [command]
Available Commands:
aws Enumerate AWS credentials for their permissions.
azure Enumerate Azure credentials for their permissions.
completion Generate the autocompletion script for the specified shell
firebase Enumerate Firebase permissions.
gcp Enumerate GCP service accounts for their permissions.
help Help about any command
version Show version and build info
Flags:
-h, --help help for cliam
--max-threads int Maximum number of threads to use. (default 5)
--request-timeout int Timeout for each request in seconds. (default 5)
--save-output Save output to file on success
-v, --verbose Enable verbose output.
Usa a API REST da AWS para fazer uma requisição assinada usando as credenciais fornecidas. Isso aumenta muito a velocidade, mas torna um pouco mais desafiador acompanhar a adição de novas permissões. A questão de escala é que a AWS usa 3 a 4 variedades de requisições no nível de serviço.
Suporta a obtenção de credenciais de perfil AWS, flags ou variáveis de ambiente padrão da AWS como AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY e opcionalmente AWS_SESSION_TOKEN.
❯❯ cliam aws
Enumerate AWS credentials for their permissions.
Usage:
cliam aws [command]
Available Commands:
enumerate Enumerate permissions for specified AWS resources.
service-group Enumerate permissions for groups of AWS resources.
Flags:
--access-key-id string AWS Access Key ID
-h, --help help for aws
--known-value stringToString AWS Resource Name. When known-resource-name is set, additional permissions where a resource needs to be specified is enumerated. (default [])
--profile string AWS Profile. When profile is set, access-key-id, secret-access-key, and session-token are ignored.
--region string AWS Region (default "us-east-1")
--secret-access-key string AWS Secret Access Key
--session-json string AWS Session JSON file. This flag attempts to read session information from the specified file. Helpful with temporary credentials.
--session-token string AWS Session Token
Global Flags:
--max-threads int Maximum number of threads to use. (default 5)
--request-timeout int Timeout for each request in seconds. (default 5)
-v, --verbose Enable verbose output.
Cliam para AWS também suporta enumerar certas permissões que exigem um valor conhecido. Por exemplo, ao usar a AWS CLI, podemos obter uma função usando aws lambda get-function --function-name <function_name>.
Isso é mapeado diretamente para cliam, onde podemos usar:
cliam aws enumerate lamda --known-value function-name=<function_name>
Isso enumerará todas as permissões para lambda que aceita function-name como um argumento válido. Isso também funcionará com outros recursos da AWS.
Forçar bruto todos os recursos serverless de um perfil AWS
❯❯ cliam aws service-group serverless --profile=my-profile
Use tokens de sessão temporários obtidos para verificar todas as permissões ec2
❯❯ cliam aws enumerate ec2 --session-json=creds.json
Where creds.json has
{
"Type" : "AWS-HMAC",
"AccessKeyId" : "ASIA...",
"SecretAccessKey" : "...",
"Token" : "...",
}
Enumere permissões para s3, iam e ec2
❯❯ cliam aws enumerate s3 iam ec2
GCP suporta enumeração a partir de um arquivo json de conta de serviço específico. Credenciais das variáveis de ambiente GCP .GOOGLE_APPLICATION_CREDENTIALS e CLOUDSDK_CORE_PROJECT também são suportadas
Como existem dois modos para enumeração GCP, use enumerate se cloudresourcemanager estiver ativado ou use rest para enumerar permissões específicas.
cliam gcp --help
Enumerate GCP service accounts for their permissions.
Usage:
cliam gcp [command]
Available Commands:
bruteforce Enumerate all GCP permissions
enumerate Enumerate specified GCP permissions
rest GCP permissions using the REST API
Flags:
-h, --help help for gcp
--project-id string GCP project id
--region string GCP Region (default "us-central1")
--service-account string GCP service account path
--zone string GCP Zone (default "us-central1-a")
Global Flags:
--max-threads int Maximum number of threads to use. (default 5)
--request-timeout int Timeout for each request in seconds. (default 10)
Use "cliam gcp [command] --help" for more information about a command.
A enumeração do Azure suporta vários métodos de autenticação, incluindo service principals (via client id e secret), certificado MSI (via token MSI) ou auth padrão. Também suporta todas as variáveis de ambiente comuns do Azure
❯❯ cliam azure
Enumerate Azure credentials for their permissions.
In most cases, a valid Azure Subscription ID is required. If one
is not provided, the CLI will attempt to lookup available subscriptions
and use the first one.
Usage:
cliam azure [command]
Available Commands:
access-token Get access token to use with REST apis
enumerate Enumerate permissions for specified azure resources.
service Enumerate permissions for a specific group of azure services.
subscriptions List all subscriptions
cliam suporta duas variáveis de ambiente para mostrar saída de depuração