
Enumerador de permisos IAM agnóstico de la nube
Herramienta de enumeración de permisos IAM multi-nube. Actualmente cubre:
Cliam es un identificador simple de permisos en la nube. Hay dos componentes principales en la CLI. La mayoría de los permisos enumerados son permisos de listar, describir u obtener.
enumerate que se puede usar para enumerar permisos específicos (recomendado)Descargue la última versión. Las etiquetas DEV son actuales, pero no estables.
Para compilar el binario localmente, cd al directorio cli y ejecute make dev
Cliam funciona con credenciales obtenidas de las variables de entorno conocidas de los servicios o pasando las banderas comúnmente requeridas desde la CLI.
Se recomienda encarecidamente configurar las finalizaciones de comandos, ya que la mayoría de las opciones de enumerate deben ser específicas. Para generar finalizaciones, use cliam completion [shell] y configúrelas según el directorio de finalización de su shell.
Usage:
cliam [command]
Available Commands:
aws Enumera las credenciales de AWS para sus permisos.
azure Enumera las credenciales de Azure para sus permisos.
completion Genera el script de autocompletado para el shell especificado
firebase Enumera los permisos de Firebase.
gcp Enumera las cuentas de servicio de GCP para sus permisos.
help Ayuda sobre cualquier comando
version Muestra la versión e información de compilación
Flags:
-h, --help ayuda para cliam
--max-threads int Número máximo de hilos a usar. (por defecto 5)
--request-timeout int Tiempo de espera para cada solicitud en segundos. (por defecto 5)
--save-output Guarda la salida en un archivo al tener éxito
-v, --verbose Habilita la salida detallada.
Utiliza la API REST de AWS para realizar una solicitud firmada usando las credenciales proporcionadas. Esto aumenta considerablemente la velocidad, pero dificulta un poco mantener la actualización de nuevos permisos. El problema de escala es que AWS utiliza entre 3 y 4 tipos de solicitudes a nivel de servicio.
Admite la obtención de credenciales desde el perfil de AWS, banderas o variables de entorno predeterminadas de AWS como AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY y opcionalmente AWS_SESSION_TOKEN.
❯❯ cliam aws
Enumera las credenciales de AWS para sus permisos.
Usage:
cliam aws [command]
Available Commands:
enumerate Enumera permisos para recursos específicos de AWS.
service-group Enumera permisos para grupos de recursos de AWS.
Flags:
--access-key-id string ID de clave de acceso de AWS
-h, --help ayuda para aws
--known-value stringToString Nombre del recurso de AWS. Cuando se establece known-resource-name, se enumeran permisos adicionales donde se debe especificar un recurso. (por defecto [])
--profile string Perfil de AWS. Cuando se establece el perfil, se ignoran access-key-id, secret-access-key y session-token.
--region string Región de AWS (por defecto "us-east-1")
--secret-access-key string Clave de acceso secreta de AWS
--session-json string Archivo JSON de sesión de AWS. Esta bandera intenta leer la información de la sesión desde el archivo especificado. Útil con credenciales temporales.
--session-token string Token de sesión de AWS
Global Flags:
--max-threads int Número máximo de hilos a usar. (por defecto 5)
--request-timeout int Tiempo de espera para cada solicitud en segundos. (por defecto 5)
-v, --verbose Habilita la salida detallada.
Cliam para AWS también admite la enumeración de ciertos permisos que requieren un valor conocido. Por ejemplo, al usar awscli, podemos obtener una función usando aws lambda get-function --function-name <nombre_de_función>.
Esto se asigna directamente a cliam donde podemos usar:
cliam aws enumerate lamda --known-value function-name=<function_name>
Esto enumerará todos los permisos para lambda que toma function-name como un argumento válido. Esto también funcionará con otros recursos de AWS.
Fuerza bruta todos los recursos serverless desde un perfil de AWS
❯❯ cliam aws service-group serverless --profile=my-profile
Usa tokens de sesión temporales obtenidos para verificar todos los permisos de ec2
❯❯ cliam aws enumerate ec2 --session-json=creds.json
Where creds.json has
{
"Type" : "AWS-HMAC",
"AccessKeyId" : "ASIA...",
"SecretAccessKey" : "...",
"Token" : "...",
}
Enumera permisos para s3, iam y ec2
❯❯ cliam aws enumerate s3 iam ec2
GCP admite la enumeración desde un archivo json de cuenta de servicio específico. También se admiten credenciales de las variables de entorno de GCP .GOOGLE_APPLICATION_CREDENTIALS y CLOUDSDK_CORE_PROJECT
Debido a que hay dos modos para la enumeración de GCP, use enumerate si cloudresourcemanager está habilitado o use rest para enumerar permisos específicos.
cliam gcp --help
Enumera las cuentas de servicio de GCP para sus permisos.
Usage:
cliam gcp [command]
Available Commands:
bruteforce Enumera todos los permisos de GCP
enumerate Enumera permisos de GCP especificados
rest Permisos de GCP usando la API REST
Flags:
-h, --help ayuda para gcp
--project-id string ID del proyecto de GCP
--region string Región de GCP (por defecto "us-central1")
--service-account string Ruta de la cuenta de servicio de GCP
--zone string Zona de GCP (por defecto "us-central1-a")
Global Flags:
--max-threads int Número máximo de hilos a usar. (por defecto 5)
--request-timeout int Tiempo de espera para cada solicitud en segundos. (por defecto 10)
Use "cliam gcp [comando] --help" para más información sobre un comando.
La enumeración de Azure admite varios métodos de autenticación, incluidos los service principals (a través del id de cliente y secreto), MSI de certificado (a través del token MSI) o la autenticación predeterminada. También admite todas las variables de entorno comunes de Azure:
❯❯ cliam azure
Enumera las credenciales de Azure para sus permisos.
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 Obtiene el token de acceso para usar con las API REST
enumerate Enumera permisos para recursos específicos de Azure.
service Enumera permisos para un grupo específico de servicios de Azure.
subscriptions Lista todas las suscripciones
cliam admite dos variables de entorno para mostrar la salida de depuración: