
एक AWS IAM पॉलिसी स्टेटमेंट पार्सर और क्वेरी टूल।
IAMActionHunter एक IAM नीति कथन पार्सर और क्वेरी टूल है जिसका उद्देश्य AWS आइडेंटिटी और एक्सेस मैनेजमेंट (IAM) में उपयोगकर्ताओं और भूमिकाओं के लिए अनुमति नीति कथनों को एकत्र करने और समझने की प्रक्रिया को सरल बनाना है। हालाँकि इसकी कार्यक्षमता सीधी है, यह टूल दैनिक AWS पेनिट्रेशन टेस्टिंग के दौरान एक कुशल समाधान की आवश्यकता के जवाब में विकसित किया गया था।
https://rhinosecuritylabs.com/aws/iamactionhunter-aws-iam-permissions/
टूल का उपयोग AWS खातों में विभिन्न 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