
Cloud-agnostischer IAM-Berechtigungs-Enumerator
Multi-Cloud-IAM-Berechtigungs-Enumeration-Tool. Derzeit umfasst:
Cliam ist ein einfacher Cloud-Berechtigungs-Identifikator. Das CLI besteht aus zwei Hauptkomponenten. Die meisten aufgezählten Berechtigungen sind List-, Describe- oder Get-Berechtigungen.
enumerate, mit dem bestimmte Berechtigungen aufgezählt werden können (empfohlen)Laden Sie die neueste Version herunter. DEV-Tags sind aktuell, aber nicht stabil.
Um die Binärdatei lokal zu erstellen, wechseln Sie in das cli-Verzeichnis und führen Sie make dev aus.
Cliam funktioniert mit Anmeldeinformationen, die entweder aus den bekannten Umgebungsvariablen der Dienste oder durch Übergabe der üblichen Flags über die CLI bezogen werden.
Es wird dringend empfohlen, die Befehlserweiterung (Command Completion) einzurichten, da die meisten enumerate-Optionen spezifisch sein müssen. Um die Vervollständigung zu generieren, verwenden Sie cliam completion [shell] und richten Sie sie gemäß dem Vervollständigungsverzeichnis Ihrer Shell ein.
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.
Verwendet die AWS REST-API, um eine signierte Anfrage mit den übergebenen Anmeldeinformationen zu erstellen. Dies erhöht die Geschwindigkeit erheblich, macht es aber etwas schwieriger, mit dem Hinzufügen neuer Berechtigungen Schritt zu halten. Das Problem des Umfangs besteht darin, dass AWS auf Serviceebene 3 bis 4 verschiedene Arten von Anfragen verwendet.
Unterstützt das Abrufen von Anmeldeinformationen aus AWS-Profil, Flags oder standardmäßigen AWS-Umgebungsvariablen wie AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY und optional 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 für AWS unterstützt auch die Aufzählung bestimmter Berechtigungen, die einen bekannten Wert erfordern. Mit awscli können wir beispielsweise eine Funktion mit aws lambda get-function --function-name <function_name> abrufen.
Diese Funktionalität wird direkt auf Cliam abgebildet, wo wir Folgendes verwenden können:
cliam aws enumerate lamda --known-value function-name=<function_name>
Dies zählt alle Berechtigungen für Lambda auf, die function-name als gültiges Argument akzeptiert. Dies funktioniert auch mit anderen AWS-Ressourcen.
Bruteforce aller serverlosen Ressourcen aus einem AWS-Profil
❯❯ cliam aws service-group serverless --profile=my-profile
Verwenden Sie erhaltene temporäre Sitzungstoken, um alle EC2-Berechtigungen zu überprüfen
❯❯ cliam aws enumerate ec2 --session-json=creds.json
Where creds.json has
{
"Type" : "AWS-HMAC",
"AccessKeyId" : "ASIA...",
"SecretAccessKey" : "...",
"Token" : "...",
}
Berechtigungen für s3, iam und ec2 aufzählen
❯❯ cliam aws enumerate s3 iam ec2
GCP unterstützt die Aufzählung aus einer bestimmten Service Account JSON-Datei. Anmeldeinformationen aus den GCP-Umgebungsvariablen .GOOGLE_APPLICATION_CREDENTIALS and CLOUDSDK_CORE_PROJECT werden ebenfalls unterstützt
Da es zwei Modi für die GCP-Aufzählung gibt, verwenden Sie enumerate, wenn cloudresourcemanager aktiviert ist, oder rest, um bestimmte Berechtigungen aufzuzählen.
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.
Die Azure-Aufzählung unterstützt verschiedene Authentifizierungsmethoden, darunter Service Principals (über Client-ID und Secret), Zertifikat-MSI (über MSI-Token) oder Standard-Authentifizierung. Es unterstützt auch alle gängigen Azure-Umgebungsvariablen:
AZURE_CLIENT_ID : Client-ID oder BenutzernameAZURE_CLIENT_SECRET : Client-SecretAZURE_SUBSCRIPTION_ID : Abonnement-IDAZURE_CLIENT_CERTIFICATE_PATH : Pfad zum ZertifikatAZURE_TENANT_ID : Mandanten-IDCLIAM_AZURE_OAUTH_TOKEN : vorhandenes OAuth-Token❯❯ 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 unterstützt zwei Umgebungsvariablen zur Anzeige von Debug-Ausgaben:
DEBUG=true (zeigt Statuscodes von Anfragen)VERBOSE=true (zeigt den Inhalt von Anfragen)