
Инструмент для разбора и запросов операторов политик 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
Большая часть этого функционала также реализована в виде модуля iam__enum_action_query для https://github.com/RhinoSecurityLabs/pacu, если вы предпочитаете его.
Клонирование и использование 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