
أداة تحليل واستعلام عن بيانات سياسة AWS IAM.
IAMActionHunter هو أداة تحليل بيانات سياسات IAM وأداة استعلام تهدف إلى تبسيط عملية جمع وفهم بيانات تصريحات الأذونات للمستخدمين والأدوار في AWS Identity and Access Management (IAM). على الرغم من أن وظائفها مباشرة، فقد تم تطوير هذه الأداة استجابةً للحاجة إلى حل فعّال أثناء اختبارات الاختراق اليومية لـ AWS.
https://rhinosecuritylabs.com/aws/iamactionhunter-aws-iam-permissions/
يمكن استخدام الأداة للبحث عن فرص تصعيد الامتيازات المحتملة في حسابات AWS من خلال الاستعلام عن إجراءات IAM المختلفة التي قد يتم استغلالها. بينما تقوم الأدوات الأخرى بعمليات مسح لتحديد مخاطر تصعيد الامتيازات، تتيح هذه الأداة نهجًا أكثر يدويًا، مما يسمح للمستخدمين بالتحقيق في الأذونات ومراجعة الأدوار والمستخدمين والموارد التي تنطبق عليها بسرعة لتحليل مستهدف.
توفر هذه الأداة أيضًا القدرة على إخراج وحفظ نتائج الاستعلام بتنسيق CSV، وهو مفيد لفرق الأمان التي تبحث عن نظرة عامة عالية المستوى لأذونات المديرين والموارد داخل حساب AWS. على سبيل المثال، قد ترغب في تحديد المستخدمين والأدوار التي لديها أذونات iam:put* في حساب. من خلال تنفيذ استعلام وإنشاء CSV، يمكنك بسهولة مراجعة جميع المستخدمين والأدوار التي لديها هذه الأذونات، بالإضافة إلى الموارد التي يمكنهم الوصول إليها.
مقترح:
pip3 install iamactionhunter
تم أيضًا تنفيذ الكثير من هذه الوظائف في https://github.com/RhinoSecurityLabs/pacu كوحدة iam__enum_action_query إذا كنت تفضل ذلك.
الاستنساخ واستخدام Poetry:
git clone https://github.com/RhinoSecurityLabs/IAMActionHunter.git
cd IAMActionHunter
# (قد يكون ضروريًا: poetry env use python3.9)
poetry install
iamactionhunter --help
iamactionhunter --collect --profile <some-aws-profile>
الاستنساخ واستخدام Pip:
git clone https://github.com/RhinoSecurityLabs/IAMActionHunter.git
cd IAMActionHunter
pip install .
iamactionhunter --help
iamactionhunter --collect --profile <some-aws-profile>
المساعدة:
usage: iamactionhunter [-h] [--profile PROFILE] [--account ACCOUNT] [--query QUERY] [--role ROLE] [--user USER]
[--all-or-none] [--collect] [--list] [--csv CSV] [--config CONFIG]
Collect all policies for all users/roles in an AWS account and then query the policies for permissions.
optional arguments:
-h, --help show this help message and exit
--profile PROFILE The name of the AWS profile to use for authentication for user/role collection.
--account ACCOUNT Account number to query.
--query QUERY Permissions to query. A string like: s3:GetObject or s3:* or s3:GetObject,s3:PutObject
--role ROLE Filter role to query.
--user USER Filter user to query.
--all-or-none Check if all queried actions are allowed, not just some.
--collect Collect user and role policies for the account.
--list List accounts available to query.
--csv CSV File name for CSV report output.
--config CONFIG JSON config file for preset queries.
أولاً قم بتنزيل جميع معلومات IAM للمستخدمين والأدوار:
iamactionhunter --collect --profile my-aws-profile
سرد أي بيانات حساب تم جمعها:
iamactionhunter --list
ثم استعلم عن شيء:
iamactionhunter --account <account_number_of_profile_above> --query iam:create*
ثم استعلم عن المزيد:
iamactionhunter --account <account_number_of_profile_above> --query iam:create*,iam:put*
استعلم عن دور معين:
iamactionhunter --account <account_number_of_profile_above> --role some_role --query iam:*
استعلم عن مستخدم معين:
iamactionhunter --account <account_number_of_profile_above> --user some_user --query iam:*
الإخراج إلى CSV:
iamactionhunter --account <account_number_of_profile_above> --query iam:* --csv report.csv
تشغيل إعداد مسبق:
iamactionhunter --account <account_number_of_profile_above> --config dangerous_iam
تشغيل استعلام يظهر النتائج فقط إذا كان المستخدم أو الدور لديه جميع الأذونات المطلوبة:
iamactionhunter --account <account_number_of_profile_above> --query s3:getobject,s3:listbucket --all-or-none
خيارات الإعدادات المضمنة هي:
dangerous_iam
write_actions
privescs
iamactionhunter --account <account_number_of_profile> --config dangerous_iam
ملف الإعدادات هو ملف JSON يحدد بعض الأذونات المحددة التي تريد البحث عنها. إليك مثال لملف يبحث عن إجراءات الكتابة في CodeBuild.
[
{
"Description": "These are all actions which may allow some kind of write privilege in CodeBuild.",
"Name": "CodeBuildWriteActions",
"ActionsNeeded": [
"codebuild:Put*",
"codebuild:Create*",
"codebuild:Delete*",
"codebuild:Modify*",
"codebuild:Update*",
"codebuild:Attach*",
"codebuild:Detach*",
"codebuild:Associate*",
"codebuild:Disassociate*",
"codebuild:Add*",
"codebuild:Remove*",
"codebuild:Set*",
"codebuild:Enable*",
"codebuild:Disable*",
"codebuild:Reset*",
"codebuild:Stop*",
"codebuild:Terminate*",
"codebuild:Reboot*",
"codebuild:Start*"
],
"AllOrNone": false
}
]
يمكنك بعد ذلك تشغيل الإعدادات ببساطة عن طريق تحديد اسم الملف في الوسيطة --config.
iamactionhunter --account <account_number_of_profile> --config write_code_build.json