
عدّ الأذونات المرتبطة بمجموعة بيانات اعتماد AWS
هل وجدت مجموعة من بيانات اعتماد AWS وليس لديك أي فكرة عن الأذونات التي قد تمتلكها؟
$ ./enumerate-iam.py --access-key AKIA... --secret-key StF0q...
2019-05-10 15:57:58,447 - 21345 - [INFO] Starting permission enumeration for access-key-id "AKIA..."
2019-05-10 15:58:01,532 - 21345 - [INFO] Run for the hills, get_account_authorization_details worked!
2019-05-10 15:58:01,537 - 21345 - [INFO] -- {
"RoleDetailList": [
{
"Tags": [],
"AssumeRolePolicyDocument": {
"Version": "2008-10-17",
"Statement": [
{
...
2019-05-10 15:58:26,709 - 21345 - [INFO] -- gamelift.list_builds() worked!
2019-05-10 15:58:26,850 - 21345 - [INFO] -- cloudformation.list_stack_sets() worked!
2019-05-10 15:58:26,982 - 21345 - [INFO] -- directconnect.describe_locations() worked!
2019-05-10 15:58:27,021 - 21345 - [INFO] -- gamelift.describe_matchmaking_rule_sets() worked!
2019-05-10 15:58:27,311 - 21345 - [INFO] -- sqs.list_queues() worked!
الآن أصبح لديك!
يحاول enumerate-iam.py تخمين جميع استدعاءات API المسموح بها بواسطة سياسة IAM.
جميع الاستدعاءات التي ينفذها هذا الأداة غير مدمّرة (يتم تنفيذ استدعاءات get* و list* فقط).
git clone [email protected]:andresriancho/enumerate-iam.git
cd enumerate-iam/
pip install -r requirements.txt
تمت كتابة هذا البرنامج ليكون سهل الدمج مع أدوات أخرى، ما عليك سوى استيراد الدالة الرئيسية وتوفير الوسائط المطلوبة:
from enumerate_iam.main import enumerate_iam
enumerate_iam(access_key,
secret_key,
session_token,
region)
سيحتوي المخرجات على جميع معلومات الأذونات المُعدَّدة في قاموس Python.
قبل كتابة enumerate-iam.py جرّبت بعض الأدوات التي تؤدي المهمة نفسها.
قررت كتابة أداتي الخاصة لأن الأدوات الأخرى:
يتم تخزين استدعاءات API التي سيتم تنفيذها أثناء تعداد الأذونات في
enumerate_iam/bruteforce_tests.py، وهو قاموس Python dict() يتم توليده بواسطة
enumerate_iam/generate_bruteforce_tests.py باستخدام توثيق API
المتوفر في مكتبة aws-sdk-js.
تُصدر AWS خدمات جديدة كل ربع سنة، وللتأكد من أن هذه الأداة تكتشف جميع الأذونات الموجودة، شغّل:
cd enumerate_iam/
git clone https://github.com/aws/aws-sdk-js.git
python generate_bruteforce_tests.py
rm -rf aws-sdk-js
تم إصدار هذه الأداة كجزء من بحث Internet-Scale Analysis of AWS Cognito Security. خلال هذا البحث، تم استخدام أداة cc-lambda أيضًا لاستخراج المعلومات من بيانات Common Crawl.
تم إصدار الكود الأولي في هذا gist وتم تحسينه بعدة طرق: