
أداة تعداد صلاحيات IAM المستقلة عن مزود السحابة
أداة تعداد صلاحيات IAM متعددة السحابات. تغطي حالياً:
كليام هو أداة بسيطة لتحديد صلاحيات السحابة. هناك مكونان رئيسيان لواجهة سطر الأوامر. معظم الصلاحيات التي يتم تعدادها هي صلاحيات list أو describe أو get.
enumerate لتعداد صلاحيات محددة (موصى به)قم بتنزيل أحدث إصدار. علامات DEV حالية ولكنها غير مستقرة.
لبناء الملف الثنائي محليًا، انتقل إلى دليل cli وقم بتشغيل make dev
يعمل كليام مع بيانات الاعتماد التي تم الحصول عليها من متغيرات البيئة المعروفة للخدمات أو من تمرير الخيارات الشائعة المطلوبة من واجهة سطر الأوامر.
يوصى بشدة بتعيين إكمال الأوامر لأن معظم خيارات 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.
يستخدم واجهة برمجة تطبيقات REST الخاصة بـ AWS لإجراء طلب موقع باستخدام بيانات الاعتماد التي تم تمريرها. هذا يضيف سرعة كبيرة، لكنه يجعل مواكبة إضافة صلاحيات جديدة أكثر صعوبة. مشكلة النطاق هي أن 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 أيضًا تعداد بعض الصلاحيات التي تتطلب قيمة معروفة. على سبيل المثال، عند استخدام awscli، يمكننا الحصول على دالة باستخدام aws lambda get-function --function-name <function_name>.
هذا ينطبق مباشرة على كليام حيث يمكننا استخدام:
cliam aws enumerate lamda --known-value function-name=<function_name>
سيقوم هذا بتعداد جميع صلاحيات lambda التي تأخذ function-name كوسيطة صالحة. سيعمل هذا مع موارد AWS الأخرى أيضًا.
Bruteforce جميع موارد serverless من ملف تعريف 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، استخدم enumerate إذا كان cloudresourcemanager ممكّنًا أو استخدم 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 طرق مصادقة متنوعة بما في ذلك service principals (عبر معرف العميل والسر)، وشهادة MSI (عبر رمز MSI)، أو المصادقة الافتراضية. كما يدعم جميع متغيرات بيئة 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
يدعم كليام متغيرين للبيئة لعرض مخرجات التصحيح