AWS - Основна інформація

Reading time: 20 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Ієрархія організації

Облікові записи

В AWS є кореневий обліковий запис, який є батьківським контейнером для всіх облікових записів вашої організації. Однак вам не потрібно використовувати цей обліковий запис для розгортання ресурсів, ви можете створити інші облікові записи, щоб розділити різні AWS інфраструктури між собою.

Це дуже цікаво з точки зору безпеки, оскільки один обліковий запис не зможе отримати доступ до ресурсів іншого облікового запису (якщо спеціально не створені мости), таким чином ви можете створити межі між розгортаннями.

Отже, в організації є два типи облікових записів (ми говоримо про облікові записи AWS, а не облікові записи користувачів): один обліковий запис, який призначений як обліковий запис управління, і один або кілька облікових записів учасників.

  • Обліковий запис управління (кореневий обліковий запис) - це обліковий запис, який ви використовуєте для створення організації. З облікового запису управління організації ви можете зробити наступне:

  • Створювати облікові записи в організації

  • Запрошувати інші існуючі облікові записи в організацію

  • Видаляти облікові записи з організації

  • Керувати запрошеннями

  • Застосовувати політики до сутностей (корені, ОУ або облікові записи) в межах організації

  • Увімкнути інтеграцію з підтримуваними AWS сервісами для надання функціональності сервісу для всіх облікових записів в організації.

  • Можливо увійти як кореневий користувач, використовуючи електронну пошту та пароль, які використовувалися для створення цього кореневого облікового запису/організації.

Обліковий запис управління має обов'язки облікового запису платника і відповідає за оплату всіх витрат, які накопичуються учасниками облікових записів. Ви не можете змінити обліковий запис управління організації.

  • Облікові записи учасників складають всі інші облікові записи в організації. Обліковий запис може бути учасником лише однієї організації в один час. Ви можете прикріпити політику до облікового запису, щоб застосувати контролі лише до цього одного облікового запису.
  • Облікові записи учасників повинні використовувати дійсну електронну адресу і можуть мати ім'я, загалом вони не зможуть керувати виставленням рахунків (але їм можуть надати доступ до цього).
aws organizations create-account --account-name testingaccount --email testingaccount@lalala1233fr.com

Організаційні одиниці

Облікові записи можна групувати в Організаційні одиниці (OU). Таким чином, ви можете створювати політики для Організаційної одиниці, які будуть застосовані до всіх дочірніх облікових записів. Зверніть увагу, що OU може мати інші OU як дочірні.

bash
# You can get the root id from aws organizations list-roots
aws organizations create-organizational-unit --parent-id r-lalala --name TestOU

Service Control Policy (SCP)

Політика контролю сервісів (SCP) - це політика, яка визначає сервіси та дії, які користувачі та ролі можуть використовувати в облікових записах, на які впливає SCP. SCP є схожими на політики дозволів IAM, за винятком того, що вони не надають жодних дозволів. Натомість SCP визначають максимальні дозволи для організації, організаційної одиниці (OU) або облікового запису. Коли ви прикріплюєте SCP до кореня вашої організації або OU, SCP обмежує дозволи для суб'єктів у членських облікових записах.

Це є ЄДИНИМ способом, яким навіть кореневий користувач може бути зупинений від виконання певних дій. Наприклад, його можна використовувати, щоб зупинити користувачів від вимкнення CloudTrail або видалення резервних копій.
Єдиний спосіб обійти це - також скомпрометувати майстер-обліковий запис, який налаштовує SCP (майстер-обліковий запис не може бути заблокований).

warning

Зверніть увагу, що SCP лише обмежують суб'єктів у обліковому записі, тому інші облікові записи не підлягають впливу. Це означає, що наявність SCP, яка забороняє s3:GetObject, не зупинить людей від доступу до публічного S3 бакету у вашому обліковому записі.

Приклади SCP:

  • Повна заборона кореневого облікового запису
  • Дозволити лише конкретні регіони
  • Дозволити лише сервіси зі списку дозволених
  • Заборонити GuardDuty, CloudTrail та S3 Public Block Access від

вимкнення

  • Заборонити ролі безпеки/реагування на інциденти від видалення або

модифікації.

  • Заборонити видалення резервних копій.
  • Заборонити створення користувачів IAM та ключів доступу

Знайдіть приклади JSON в https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html

Resource Control Policy (RCP)

Політика контролю ресурсів (RCP) - це політика, яка визначає максимальні дозволи для ресурсів у вашій організації AWS. RCP схожі на політики IAM за синтаксисом, але не надають дозволів — вони лише обмежують дозволи, які можуть бути застосовані до ресурсів іншими політиками. Коли ви прикріплюєте RCP до кореня вашої організації, організаційної одиниці (OU) або облікового запису, RCP обмежує дозволи ресурсів для всіх ресурсів у відповідному обсязі.

Це є ЄДИНИМ способом забезпечити, щоб ресурси не перевищували попередньо визначені рівні доступу — навіть якщо політика на основі ідентичності або ресурсів є занадто дозволяючою. Єдиний спосіб обійти ці обмеження - також змінити RCP, налаштовану обліковим записом управління вашої організації.

warning

RCP лише обмежують дозволи, які можуть мати ресурси. Вони не контролюють безпосередньо, що можуть робити суб'єкти. Наприклад, якщо RCP забороняє зовнішній доступ до S3 бакету, це забезпечує, що дозволи бакету ніколи не дозволяють дії, що виходять за межі встановленого ліміту — навіть якщо політика на основі ресурсів налаштована неправильно.

Приклади RCP:

  • Обмежити S3 бакети так, щоб до них могли отримати доступ лише суб'єкти у вашій організації
  • Обмежити використання ключів KMS, щоб дозволити операції лише з надійних організаційних облікових записів
  • Обмежити дозволи на черги SQS, щоб запобігти несанкціонованим змінам
  • Встановити межі доступу до секретів Secrets Manager для захисту чутливих даних

Знайдіть приклади в документації AWS Organizations Resource Control Policies

ARN

Amazon Resource Name - це унікальна назва, яку має кожен ресурс всередині AWS, вона складається ось так:

arn:partition:service:region:account-id:resource-type/resource-id
arn:aws:elasticbeanstalk:us-west-1:123456789098:environment/App/Env

Зверніть увагу, що в AWS є 4 розділи, але лише 3 способи їх виклику:

  • AWS Standard: aws
  • AWS China: aws-cn
  • AWS US public Internet (GovCloud): aws-us-gov
  • AWS Secret (US Classified): aws

IAM - Управління ідентифікацією та доступом

IAM - це сервіс, який дозволяє вам керувати Аутентифікацією, Авторизацією та Контролем доступу у вашому обліковому записі AWS.

  • Аутентифікація - Процес визначення особи та перевірки цієї особи. Цей процес можна поділити на: Ідентифікацію та перевірку.
  • Авторизація - Визначає, до чого може отримати доступ особа в системі після її аутентифікації.
  • Контроль доступу - Метод і процес надання доступу до захищеного ресурсу.

IAM можна визначити за його здатністю керувати, контролювати та регулювати механізми аутентифікації, авторизації та контролю доступу для особистостей до ваших ресурсів у вашому обліковому записі AWS.

Кореневий користувач облікового запису AWS

Коли ви вперше створюєте обліковий запис Amazon Web Services (AWS), ви починаєте з єдиної особи для входу, яка має повний доступ до всіх сервісів та ресурсів AWS в обліковому записі. Це кореневий користувач облікового запису AWS, до якого отримують доступ, увійшовши за допомогою електронної адреси та пароля, які ви використовували для створення облікового запису.

Зверніть увагу, що новий адміністратор матиме менше прав, ніж кореневий користувач.

З точки зору безпеки рекомендується створити інших користувачів і уникати використання цього.

Користувачі IAM

Користувач IAM - це сутність, яку ви створюєте в AWS, щоб представити особу або додаток, який використовує його для взаємодії з AWS. Користувач в AWS складається з імені та облікових даних (пароль та до двох ключів доступу).

Коли ви створюєте користувача IAM, ви надаєте йому права шляхом включення його до групи користувачів, яка має відповідні політики прав, або безпосередньо прикріплюючи політики до користувача.

Користувачі можуть мати увімкнене MFA для входу через консоль. API токени користувачів з увімкненим MFA не захищені MFA. Якщо ви хочете обмежити доступ ключів API користувачів за допомогою MFA, вам потрібно вказати в політиці, що для виконання певних дій MFA має бути присутнім (приклад тут).

CLI

  • ID ключа доступу: 20 випадкових великих алфавітно-цифрових символів, таких як AKHDNAPO86BSHKDIRYT
  • ID секретного ключа доступу: 40 випадкових великих і малих літер: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (неможливо відновити втрачені ID секретного ключа доступу).

Коли вам потрібно змінити ключ доступу, ви повинні дотримуватися цього процесу:
Створіть новий ключ доступу -> Застосуйте новий ключ до системи/додатку -> позначте оригінальний як неактивний -> протестуйте та перевірте, що новий ключ доступу працює -> видаліть старий ключ доступу

MFA - Багатофакторна аутентифікація

Вона використовується для створення додаткового фактора для аутентифікації на додаток до ваших існуючих методів, таких як пароль, тим самим створюючи багатофакторний рівень аутентифікації.
Ви можете використовувати безкоштовний віртуальний додаток або фізичний пристрій. Ви можете безкоштовно використовувати такі додатки, як Google Authenticator, щоб активувати MFA в AWS.

Політики з умовами MFA можуть бути прикріплені до наступного:

  • Користувача або групи IAM
  • Ресурсу, такому як кошик Amazon S3, черга Amazon SQS або тема Amazon SNS
  • Політики довіри ролі IAM, яку може прийняти користувач

Якщо ви хочете отримати доступ через CLI до ресурсу, який перевіряє MFA, вам потрібно викликати GetSessionToken. Це надасть вам токен з інформацією про MFA.
Зверніть увагу, що облікові дані AssumeRole не містять цю інформацію.

bash
aws sts get-session-token --serial-number <arn_device> --token-code <code>

Як вказано тут, існує багато різних випадків, коли MFA не може бути використано.

Групи користувачів IAM

Група користувачів IAM - це спосіб прикріпити політики до кількох користувачів одночасно, що може спростити управління дозволами для цих користувачів. Ролі та групи не можуть бути частиною групи.

Ви можете прикріпити політику на основі ідентичності до групи користувачів, щоб всі користувачі в групі користувачів отримали дозволи політики. Ви не можете ідентифікувати групу користувачів як Principal у політиці (такій як політика на основі ресурсу), оскільки групи стосуються дозволів, а не аутентифікації, а принципи є аутентифікованими сутностями IAM.

Ось деякі важливі характеристики груп користувачів:

  • Група користувачів може містити багато користувачів, а користувач може належати до кількох груп.
  • Групи користувачів не можуть бути вкладеними; вони можуть містити лише користувачів, а не інші групи користувачів.
  • Існує жодна група користувачів за замовчуванням, яка автоматично включає всіх користувачів в обліковому записі AWS. Якщо ви хочете мати таку групу користувачів, ви повинні створити її та призначити кожного нового користувача до неї.
  • Кількість і розмір ресурсів IAM в обліковому записі AWS, таких як кількість груп і кількість груп, до яких може належати користувач, обмежені. Для отримання додаткової інформації див. Квоти IAM та AWS STS.

Ролі IAM

Роль IAM дуже схожа на користувача, оскільки це ідентичність з політиками дозволів, які визначають, що вона може і не може робити в AWS. Однак роль не має жодних облікових даних (пароль або ключі доступу), пов'язаних з нею. Замість того, щоб бути унікально пов'язаною з однією особою, роль призначена для того, щоб її могли приймати будь-хто, хто її потребує (і має достатні дозволи). Користувач IAM може прийняти роль, щоб тимчасово отримати різні дозволи для конкретного завдання. Роль може бути призначена федеративному користувачу, який входить, використовуючи зовнішнього постачальника ідентичності замість IAM.

Роль IAM складається з двох типів політик: політики довіри, яка не може бути порожньою, що визначає хто може прийняти роль, і політики дозволів, яка не може бути порожньою, що визначає до чого вона може отримати доступ.

Служба безпеки токенів AWS (STS)

Служба безпеки токенів AWS (STS) - це веб-сервіс, який полегшує видачу тимчасових, обмежених привілеїв облікових даних. Вона спеціально призначена для:

Тимчасові облікові дані в IAM

Тимчасові облікові дані в основному використовуються з ролями IAM, але є й інші використання. Ви можете запитати тимчасові облікові дані, які мають більш обмежений набір дозволів, ніж ваш стандартний користувач IAM. Це запобігає вам випадковому виконанню завдань, які не дозволені більш обмеженими обліковими даними. Перевагою тимчасових облікових даних є те, що вони автоматично закінчуються після встановленого періоду часу. Ви контролюєте тривалість, протягом якої облікові дані є дійсними.

Політики

Дозволи політики

Використовуються для призначення дозволів. Є 2 типи:

  • Політики, керовані AWS (попередньо налаштовані AWS)
  • Політики, керовані клієнтом: Налаштовані вами. Ви можете створювати політики на основі політик, керованих AWS (модифікуючи одну з них і створюючи свою), використовуючи генератор політик (GUI, який допомагає вам надавати та відмовляти в дозволах) або написавши свої власні.

За замовчуванням доступ є забороненим, доступ буде надано, якщо явно вказано роль.
Якщо існує єдине "Заперечення", воно переважатиме "Дозволити", за винятком запитів, які використовують облікові дані безпеки кореневого облікового запису AWS (які за замовчуванням дозволені).

javascript
{
"Version": "2012-10-17",  //Version of the policy
"Statement": [  //Main element, there can be more than 1 entry in this array
{
"Sid": "Stmt32894y234276923" //Unique identifier (optional)
"Effect": "Allow", //Allow or deny
"Action": [  //Actions that will be allowed or denied
"ec2:AttachVolume",
"ec2:DetachVolume"
],
"Resource": [ //Resource the action and effect will be applied to
"arn:aws:ec2:*:*:volume/*",
"arn:aws:ec2:*:*:instance/*"
],
"Condition": { //Optional element that allow to control when the permission will be effective
"ArnEquals": {"ec2:SourceInstanceARN": "arn:aws:ec2:*:*:instance/instance-id"}
}
}
]
}

Глобальні поля, які можна використовувати для умов у будь-якій службі, задокументовані тут.
Специфічні поля, які можна використовувати для умов для кожної служби, задокументовані тут.

Вбудовані політики

Цей вид політик безпосередньо призначається користувачу, групі або ролі. Тоді вони не з'являються у списку політик, оскільки інші не можуть їх використовувати.
Вбудовані політики корисні, якщо ви хочете підтримувати строгі однозначні відносини між політикою та ідентичністю, до якої вона застосовується. Наприклад, ви хочете бути впевненими, що дозволи в політиці не призначені ненавмисно іншій ідентичності, окрім тієї, для якої вони призначені. Коли ви використовуєте вбудовану політику, дозволи в політиці не можуть бути ненавмисно прикріплені до неправильної ідентичності. Крім того, коли ви використовуєте AWS Management Console для видалення цієї ідентичності, політики, вбудовані в ідентичність, також видаляються. Це тому, що вони є частиною основної сутності.

Політики ресурсних кошиків

Це політики, які можуть бути визначені в ресурсах. Не всі ресурси AWS підтримують їх.

Якщо у основної сутності немає явного заборони на них, і політика ресурсу надає їм доступ, тоді їм дозволено.

Межі IAM

Межі IAM можна використовувати для обмеження дозволів, до яких користувач або роль повинні мати доступ. Таким чином, навіть якщо інший набір дозволів надається користувачу іншою політикою, операція не вдасться, якщо він спробує їх використати.

Межа - це просто політика, прикріплена до користувача, яка вказує максимальний рівень дозволів, які користувач або роль можуть мати. Отже, навіть якщо у користувача є доступ адміністратора, якщо межа вказує, що він може лише читати S· кошики, це максимальне, що він може зробити.

Це, SCP та дотримання принципу найменших привілеїв - це способи контролю, щоб користувачі не мали більше дозволів, ніж їм потрібно.

Політики сесії

Політика сесії - це політика, встановлена, коли роль приймається якимось чином. Це буде як межа IAM для цієї сесії: Це означає, що політика сесії не надає дозволів, але обмежує їх до тих, що вказані в політиці (максимальні дозволи - це ті, які має роль).

Це корисно для заходів безпеки: Коли адміністратор збирається прийняти дуже привілейовану роль, він може обмежити дозволи лише до тих, що вказані в політиці сесії, у разі, якщо сесія буде скомпрометована.

bash
aws sts assume-role \
--role-arn <value> \
--role-session-name <value> \
[--policy-arns <arn_custom_policy1> <arn_custom_policy2>]
[--policy <file://policy.json>]

Зверніть увагу, що за замовчуванням AWS може додавати політики сесії до сесій, які будуть згенеровані з інших причин. Наприклад, у неавтентифікованих ролях, що припускають Cognito за замовчуванням (використовуючи розширену автентифікацію), AWS згенерує облікові дані сесії з політикою сесії, яка обмежує сервіси, до яких може отримати доступ ця сесія до наступного списку.

Отже, якщо в якийсь момент ви зіткнетеся з помилкою "... тому що жодна політика сесії не дозволяє ...", і роль має доступ для виконання дії, це тому, що існує політика сесії, яка цьому заважає.

Федерація ідентичності

Федерація ідентичності дозволяє користувачам з постачальників ідентичності, які є зовнішніми для AWS, безпечно отримувати доступ до ресурсів AWS без необхідності надавати облікові дані користувача AWS з дійсного облікового запису IAM.
Прикладом постачальника ідентичності може бути ваш власний корпоративний Microsoft Active Directory (через SAML) або OpenID сервіси (як Google). Федеративний доступ дозволить користувачам всередині нього отримувати доступ до AWS.

Щоб налаштувати цю довіру, генерується постачальник ідентичності IAM (SAML або OAuth), який буде довіряти іншій платформі. Потім принаймні одна роль IAM призначається (довіряюча) постачальнику ідентичності. Якщо користувач з довіреної платформи отримує доступ до AWS, він буде отримувати доступ як зазначена роль.

Однак зазвичай ви захочете надати іншу роль залежно від групи користувача на сторонній платформі. Тоді кілька ролей IAM можуть довіряти сторонньому постачальнику ідентичності, а стороння платформа буде тією, що дозволяє користувачам припускати одну роль або іншу.

IAM Центр ідентичності

AWS IAM Центр ідентичності (наступник AWS Single Sign-On) розширює можливості AWS Identity and Access Management (IAM), щоб забезпечити централізоване місце, яке об'єднує адміністрування користувачів та їх доступ до облікових записів AWS та хмарних додатків.

Домен для входу буде чимось на зразок <user_input>.awsapps.com.

Для входу користувачів можна використовувати 3 джерела ідентичності:

  • Довідник Центру ідентичності: Звичайні користувачі AWS
  • Active Directory: Підтримує різні конектори
  • Зовнішній постачальник ідентичності: Всі користувачі та групи походять від зовнішнього постачальника ідентичності (IdP)

У найпростішому випадку довідника Центру ідентичності, Центр ідентичності матиме список користувачів і груп і зможе призначати політики їм для будь-якого з облікових записів організації.

Щоб надати доступ користувачу/групі Центру ідентичності до облікового запису, буде створено постачальника ідентичності SAML, який довіряє Центру ідентичності, і роль, що довіряє постачальнику ідентичності з вказаними політиками, буде створено в цільовому обліковому записі.

AwsSSOInlinePolicy

Можливо надавати дозволи через вбудовані політики для ролей, створених через IAM Центр ідентичності. Ролі, створені в облікових записах, яким надаються вбудовані політики в AWS Центрі ідентичності, матимуть ці дозволи у вбудованій політиці під назвою AwsSSOInlinePolicy.

Отже, навіть якщо ви бачите 2 ролі з вбудованою політикою під назвою AwsSSOInlinePolicy, це не означає, що вони мають однакові дозволи.

Довіра та ролі між обліковими записами

Користувач (довіряючий) може створити роль між обліковими записами з деякими політиками, а потім дозволити іншому користувачу (довіреному) отримати доступ до свого облікового запису, але лише маючи доступ, вказаний у нових політиках ролі. Щоб створити це, просто створіть нову роль і виберіть Роль між обліковими записами. Ролі для доступу між обліковими записами пропонують два варіанти. Надання доступу між обліковими записами AWS, які ви володієте, і надання доступу між обліковим записом, яким ви володієте, та стороннім обліковим записом AWS.
Рекомендується вказати користувача, який є довіреним, а не ставити щось загальне, оскільки в іншому випадку інші автентифіковані користувачі, такі як федеративні користувачі, також зможуть зловживати цією довірою.

AWS Simple AD

Не підтримується:

  • Взаємовідносини довіри
  • Центр адміністрування AD
  • Повна підтримка PS API
  • Кошик для переробки AD
  • Групові керовані облікові записи служб
  • Розширення схеми
  • Немає прямого доступу до ОС або екземплярів

Веб-федерація або автентифікація OpenID

Додаток використовує AssumeRoleWithWebIdentity для створення тимчасових облікових даних. Однак це не надає доступ до консолі AWS, лише доступ до ресурсів у AWS.

Інші варіанти IAM

  • Ви можете встановити налаштування політики паролів, такі як мінімальна довжина та вимоги до паролів.
  • Ви можете завантажити "Звіт про облікові дані" з інформацією про поточні облікові дані (такі як час створення користувача, чи увімкнено пароль...). Ви можете генерувати звіт про облікові дані так часто, як раз на чотири години.

AWS Identity and Access Management (IAM) забезпечує точний контроль доступу по всьому AWS. З IAM ви можете вказати, хто може отримати доступ до яких сервісів і ресурсів, і за яких умов. За допомогою політик IAM ви керуєте дозволами для вашої робочої сили та систем, щоб забезпечити найменші привілеї.

Префікси ID IAM

На цій сторінці ви можете знайти префікси ID IAM ключів залежно від їх природи:

Код ідентифікатораОпис
ABIAТокен носія служби AWS STS

| ACCA | Контекстно-специфічні облікові дані | | AGPA | Група користувачів | | AIDA | Користувач IAM | | AIPA | Профіль екземпляра Amazon EC2 | | AKIA | Ключ доступу | | ANPA | Керована політика | | ANVA | Версія в керованій політиці | | APKA | Публічний ключ | | AROA | Роль | | ASCA | Сертифікат | | ASIA | Тимчасові (AWS STS) ідентифікатори ключів доступу використовують цей префікс, але є унікальними лише в комбінації з секретним ключем доступу та токеном сесії. |

Рекомендовані дозволи для аудиту облікових записів

Наступні привілеї надають різний доступ для читання метаданих:

  • arn:aws:iam::aws:policy/SecurityAudit
  • arn:aws:iam::aws:policy/job-function/ViewOnlyAccess
  • codebuild:ListProjects
  • config:Describe*
  • cloudformation:ListStacks
  • logs:DescribeMetricFilters
  • directconnect:DescribeConnections
  • dynamodb:ListTables

Різне

CLI автентифікація

Щоб звичайний користувач міг автентифікуватися в AWS через CLI, вам потрібно мати локальні облікові дані. За замовчуванням ви можете налаштувати їх вручну в ~/.aws/credentials або запустивши aws configure.
У цьому файлі ви можете мати більше ніж один профіль, якщо жоден профіль не вказано за допомогою aws cli, буде використовуватися той, що називається [default] у цьому файлі.
Приклад файлу облікових даних з більш ніж 1 профілем:

[default]
aws_access_key_id = AKIA5ZDCUJHF83HDTYUT
aws_secret_access_key = uOcdhof683fbOUGFYEQug8fUGIf68greoihef

[Admin]
aws_access_key_id = AKIA8YDCu7TGTR356SHYT
aws_secret_access_key = uOcdhof683fbOUGFYEQuR2EIHG34UY987g6ff7
region = eu-west-2

Якщо вам потрібно отримати доступ до різних облікових записів AWS і вашому профілю було надано доступ до прийняття ролі в цих облікових записах, вам не потрібно вручну викликати STS щоразу (aws sts assume-role --role-arn <role-arn> --role-session-name sessname) і налаштовувати облікові дані.

Ви можете використовувати файл ~/.aws/config, щоб вказати, які ролі приймати, а потім використовувати параметр --profile як зазвичай (прийняття ролі буде виконано прозоро для користувача).
Приклад конфігураційного файлу:

[profile acc2]
region=eu-west-2
role_arn=arn:aws:iam::<account-id>:role/<role-path>
role_session_name = <session_name>
source_profile = <profile_with_assume_role>
sts_regional_endpoints = regional

З цим конфігураційним файлом ви можете використовувати aws cli, як:

aws --profile acc2 ...

Якщо ви шукаєте щось схоже на це, але для браузера, ви можете перевірити розширення AWS Extend Switch Roles.

Автоматизація тимчасових облікових даних

Якщо ви експлуатуєте додаток, який генерує тимчасові облікові дані, може бути важко оновлювати їх у вашому терміналі кожні кілька хвилин, коли вони закінчуються. Це можна виправити, використовуючи директиву credential_process у файлі конфігурації. Наприклад, якщо у вас є вразливий веб-додаток, ви могли б зробити:

toml
[victim]
credential_process = curl -d 'PAYLOAD' https://some-site.com

Зверніть увагу, що облікові дані повинні бути повернені в STDOUT у наступному форматі:

json
{
"Version": 1,
"AccessKeyId": "an AWS access key",
"SecretAccessKey": "your AWS secret access key",
"SessionToken": "the AWS session token for temporary credentials",
"Expiration": "ISO8601 timestamp when the credentials expire"
}

Посилання

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks