
क्लाउड एग्नोस्टिक IAM अनुमति गणक
मल्टी क्लाउड IAM अनुमति गणना उपकरण। वर्तमान में कवर करता है:
Cliam एक सरल क्लाउड अनुमति पहचानकर्ता है। CLI के दो मुख्य घटक हैं। अधिकांश गणना की गई अनुमतियाँ list, describe या get अनुमतियाँ हैं।
enumerate जिसका उपयोग विशिष्ट अनुमतियों की गणना करने के लिए किया जा सकता है (अनुशंसित)नवीनतम रिलीज़ डाउनलोड करें। DEV टैग वर्तमान हैं, लेकिन स्थिर नहीं हैं।
बाइनरी को स्थानीय रूप से बनाने के लिए, cli निर्देशिका में जाएँ और make dev चलाएँ।
Cliam सेवाओं के जाने-माने एनवार (envars) से प्राप्त क्रेडेंशियल्स या CLI से सामान्यतः आवश्यक फ्लैग पास करके काम करता है।
यह अत्यधिक अनुशंसित है कि कमांड पूर्णताएँ सेट की जाएँ क्योंकि अधिकांश enumerate विकल्प विशिष्ट होने चाहिए। पूर्णताएँ उत्पन्न करने के लिए, cliam completion [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.
पास किए गए क्रेडेंशियल्स का उपयोग करके एक हस्ताक्षरित अनुरोध करने के लिए AWS REST API का उपयोग करता है। यह गति को बहुत बढ़ाता है, लेकिन नई अनुमतियाँ जोड़ने में बने रहना थोड़ा चुनौतीपूर्ण बना देता है। पैमाने की समस्या यह है कि AWS सेवा स्तर पर 3-4 प्रकार के अनुरोधों का उपयोग करता है।
AWS प्रोफ़ाइल, फ्लैग, या डिफ़ॉल्ट AWS पर्यावरण चर जैसे AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY और वैकल्पिक रूप से 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.
AWS के लिए Cliam उन विशिष्ट अनुमतियों की गणना करने का भी समर्थन करता है जिनके लिए एक ज्ञात मान की आवश्यकता होती है। उदाहरण के लिए, awscli का उपयोग करते समय, हम aws lambda get-function --function-name <function_name> का उपयोग करके एक फ़ंक्शन प्राप्त कर सकते हैं।
यह सीधे cliam में मैप होता है जहाँ हम उपयोग कर सकते हैं:
cliam aws enumerate lamda --known-value function-name=<function_name>
यह lambda के लिए सभी अनुमतियों की गणना करेगा जो function-name को एक मान्य तर्क के रूप में लेता है। यह अन्य AWS संसाधनों के साथ भी काम करेगा।
AWS प्रोफ़ाइल से सभी सर्वरलेस संसाधनों का ब्रूटफोर्स करें
❯❯ cliam aws service-group serverless --profile=my-profile
सभी EC2 अनुमतियाँ जाँचने के लिए प्राप्त अस्थायी सत्र टोकन का उपयोग करें
❯❯ cliam aws enumerate ec2 --session-json=creds.json
Where creds.json has
{
"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
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.
Azure गणना विभिन्न प्रमाणीकरण विधियों का समर्थन करती है जिसमें सेवा प्रिंसिपल (क्लाइंट आईडी और सीक्रेट के माध्यम से), प्रमाणपत्र MSI (MSI टोकन के माध्यम से), या डिफ़ॉल्ट प्रमाणीकरण शामिल हैं। यह सभी सामान्य Azure पर्यावरण चर का भी समर्थन करता है।
AZURE_CLIENT_ID : क्लाइंट आईडी या उपयोगकर्ता नामAZURE_CLIENT_SECRET : क्लाइंट सीक्रेटAZURE_SUBSCRIPTION_ID : सब्सक्रिप्शन आईडीAZURE_CLIENT_CERTIFICATE_PATH : प्रमाणपत्र का पथAZURE_TENANT_ID : टेनेंट आईडीCLIAM_AZURE_OAUTH_TOKEN : मौजूदा OAuth टोकन❯❯ 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 डीबग आउटपुट दिखाने के लिए दो पर्यावरण चर का समर्थन करता है