
Перечислите разрешения, связанные с набором учётных данных 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 и улучшен несколькими способами: