mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-12 07:40:49 -08:00
Translated ['src/pentesting-cloud/azure-security/README.md', 'src/pentes
This commit is contained in:
@@ -14,11 +14,11 @@ az-basic-information/
|
||||
|
||||
Для аудиту середовища AZURE дуже важливо знати: які **послуги використовуються**, що **експонується**, хто має **доступ** до чого, і як внутрішні служби Azure та **зовнішні служби** з'єднані.
|
||||
|
||||
З точки зору Red Team, **перший крок до компрометації середовища Azure** - це отримати **foothold**.
|
||||
З точки зору Red Team, **перший крок до компрометації середовища Azure** - це отримати **переправу**.
|
||||
|
||||
### Зовнішня енумерація та початковий доступ
|
||||
|
||||
Перший крок - це, звичайно, перерахувати інформацію про орендаря, якого ви атакуєте, і спробувати отримати foothold.
|
||||
Перший крок - це, звичайно, перерахувати інформацію про орендаря, якого ви атакуєте, і спробувати отримати переправу.
|
||||
|
||||
На основі доменного імені можна дізнатися, **чи використовує компанія Azure**, отримати **ідентифікатор орендаря**, отримати інші **дійсні домени** в тому ж орендарі (якщо є) та отримати **релевантну інформацію**, таку як чи увімкнено SSO, налаштування електронної пошти, дійсні електронні адреси користувачів...
|
||||
|
||||
@@ -28,31 +28,38 @@ az-basic-information/
|
||||
az-unauthenticated-enum-and-initial-entry/
|
||||
{{#endref}}
|
||||
|
||||
З цією інформацією найпоширеніші способи спробувати отримати foothold:
|
||||
- **OSINT**: Перевірте наявність **leaks** у Github або будь-якій іншій відкритій платформі, яка може містити **облікові дані** або цікаву інформацію.
|
||||
- Повторне використання **паролів**, leaks або [password spraying](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
|
||||
З цією інформацією найпоширеніші способи спробувати отримати переправу:
|
||||
- **OSINT**: Перевірте наявність **витоків** у Github або будь-якій іншій відкритій платформі, яка може містити **облікові дані** або цікаву інформацію.
|
||||
- Повторне використання **паролів**, витоки або [password spraying](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
|
||||
- Купівля облікових даних у співробітника
|
||||
- [**Звичайна фішинг**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) (облікові дані або Oauth App)
|
||||
- [**Звичайна фішинг-атака**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) (облікові дані або Oauth App)
|
||||
- [Фішинг за допомогою коду пристрою](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
|
||||
- **Зламані** третіми сторонами
|
||||
- Вразливості в Azure-Hosted Applications
|
||||
- [**Серверний запит підробки**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) з доступом до метаданих
|
||||
- Порушення з боку третіх осіб
|
||||
- Вразливості в додатках, розміщених в Azure
|
||||
- [**Серверна підробка запитів**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) з доступом до кінцевої точки метаданих
|
||||
- **Перехоплення піддоменів**, як у [https://godiego.co/posts/STO-Azure/](https://godiego.co/posts/STO-Azure/)
|
||||
- Якщо ноутбук розробника зламано ([WinPEAS і LinPEAS](https://github.com/peass-ng/PEASS-ng) можуть знайти цю інформацію):
|
||||
- **Інші неправильні налаштування служб Azure**
|
||||
- Якщо комп'ютер розробника скомпрометовано ([WinPEAS і LinPEAS](https://github.com/peass-ng/PEASS-ng) можуть знайти цю інформацію):
|
||||
- Всередині **`<HOME>/.Azure`**
|
||||
- **`azureProfile.json`** містить інформацію про користувачів, які входили в систему раніше
|
||||
- **`clouds.config` містить** інформацію про підписки
|
||||
- **`service_principal_entries.json`** містить облікові дані додатків (ідентифікатор орендаря, клієнти та секрет). Тільки в Linux і macOS
|
||||
- **`msal_token_cache.json`** містить облікові токени доступу та токени оновлення. Тільки в Linux і macOS
|
||||
- **`service_principal_entries.bin`** та msal_token_cache.bin використовуються в Windows і зашифровані за допомогою DPAPI
|
||||
- **`msal_http_cache.bin`** - це кеш HTTP запитів
|
||||
- **`msal_http_cache.bin`** є кешем HTTP-запитів
|
||||
- Завантажте його: `with open("msal_http_cache.bin", 'rb') as f: pickle.load(f)`
|
||||
- **`AzureRmContext.json`** містить інформацію про попередні входи, використовуючи Az PowerShell (але без облікових даних)
|
||||
- Всередині **`C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*`** є кілька `.bin` файлів з **обліковими токенами**, ID токенами та інформацією про облікові записи, зашифрованими за допомогою DPAPI користувача.
|
||||
- Можна знайти більше **облікових токенів** у файлах `.tbres` всередині **`C:\Users\<username>\AppData\Local\Microsoft\TokenBroken\Cache\`**, які містять base64, зашифрований за допомогою DPAPI з обліковими токенами.
|
||||
- У Linux і macOS ви можете отримати **облікові токени доступу, токени оновлення та ID токени** з Az PowerShell (якщо використовувався), запустивши `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"`
|
||||
- У Windows це просто генерує ID токени.
|
||||
- Можливо, перевірити, чи використовувався Az PowerShell у Linux і macOS, перевіривши, чи існує `$HOME/.local/share/.IdentityService/` (хоча вміст файлів порожній і марний)
|
||||
- Можна перевірити, чи використовувався Az PowerShell у Linux і macOS, перевіривши, чи існує `$HOME/.local/share/.IdentityService/` (хоча вміст файлів порожній і марний)
|
||||
|
||||
Знайдіть **інші неправильні налаштування служб Azure**, які можуть призвести до переправи, на наступній сторінці:
|
||||
|
||||
{{#ref}}
|
||||
az-unauthenticated-enum-and-initial-entry/
|
||||
{{#endref}}
|
||||
|
||||
> [!NOTE]
|
||||
> Пам'ятайте, що зазвичай **найгучнішою** частиною енумерації є **вхід**, а не сама енумерація.
|
||||
@@ -71,10 +78,10 @@ az-enumeration-tools.md
|
||||
|
||||
У випадках, коли у вас є дійсні облікові дані, але ви не можете увійти, це деякі загальні захисти, які можуть бути на місці:
|
||||
|
||||
- **IP-білий список** -- Вам потрібно зламати дійсний IP
|
||||
- **Гео обмеження** -- Дізнайтеся, де живе користувач або де знаходяться офіси компанії, і отримайте IP з того ж міста (або хоча б з тієї ж країни)
|
||||
- **Браузер** -- Можливо, дозволено лише браузер з певної ОС (Windows, Linux, Mac, Android, iOS). Дізнайтеся, яку ОС використовує жертва/компанія.
|
||||
- Ви також можете спробувати **зламати облікові дані Service Principal**, оскільки вони зазвичай менш обмежені, і їх вхід менш перевіряється
|
||||
- **IP-білий список** -- Вам потрібно скомпрометувати дійсний IP
|
||||
- **Геообмеження** -- Дізнайтеся, де живе користувач або де знаходяться офіси компанії, і отримайте IP з того ж міста (або хоча б з тієї ж країни)
|
||||
- **Браузер** -- Можливо, лише браузер з певної ОС (Windows, Linux, Mac, Android, iOS) дозволено. Дізнайтеся, яку ОС використовує жертва/компанія.
|
||||
- Ви також можете спробувати **скомпрометувати облікові дані Service Principal**, оскільки вони зазвичай менш обмежені, і їх вхід менш перевіряється
|
||||
|
||||
Після обходу ви можете повернутися до вашої початкової налаштування і все ще мати доступ.
|
||||
|
||||
@@ -83,7 +90,7 @@ az-enumeration-tools.md
|
||||
> [!CAUTION]
|
||||
> Дізнайтеся, **як встановити** az cli, AzureAD та Az PowerShell у розділі [**Az - Entra ID**](az-services/az-azuread.md).
|
||||
|
||||
Однією з перших речей, які вам потрібно знати, є **хто ви** (в якому середовищі ви знаходитесь):
|
||||
Одне з перших, що вам потрібно знати, це **хто ви** (в якому середовищі ви знаходитесь):
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -128,55 +135,74 @@ Get-AzureADTenantDetail
|
||||
{{#endtabs }}
|
||||
|
||||
|
||||
### Entra ID Enumeration & Privilege Escalation
|
||||
### Перерахунок Entra ID та ескалація привілеїв
|
||||
|
||||
За замовчуванням, будь-який користувач повинен мати **достатньо прав для перерахунку** таких речей, як користувачі, групи, ролі, служби... (перевірте [default AzureAD permissions](az-basic-information/index.html#default-user-permissions)).\
|
||||
За замовчуванням будь-який користувач повинен мати **достатньо прав для перерахунку** таких речей, як користувачі, групи, ролі, служби... (перевірте [стандартні дозволи AzureAD](az-basic-information/index.html#default-user-permissions)).\
|
||||
Тут ви можете знайти посібник:
|
||||
|
||||
{{#ref}}
|
||||
az-services/az-azuread.md
|
||||
{{#endref}}
|
||||
|
||||
Перевірте **Post-Exploitation tools**, щоб знайти інструменти для ескалації привілеїв в Entra ID, такі як **AzureHound:**
|
||||
Перевірте **інструменти пост-експлуатації**, щоб знайти інструменти для ескалації привілеїв в Entra ID, такі як **AzureHound:**
|
||||
|
||||
{{#ref}}
|
||||
az-enumeration-tools.md#automated-post-exploitation-tools
|
||||
{{#endref}}
|
||||
|
||||
|
||||
### Enumerate Azure Services
|
||||
### Перерахунок служб Azure
|
||||
|
||||
Якщо ви знаєте, хто ви, ви можете почати перераховувати **Azure сервіси, до яких у вас є доступ**.
|
||||
Коли ви знаєте, хто ви, ви можете почати перерахунок **служб Azure, до яких у вас є доступ**.
|
||||
|
||||
Вам слід почати з визначення **дозволів, які у вас є** на ресурси. Для цього:
|
||||
|
||||
1. **Знайдіть ресурс, до якого у вас є доступ**:
|
||||
|
||||
Команда Az PowerShell **`Get-AzResource`** дозволяє вам **дізнатися про ресурси, які ваш поточний користувач може бачити**.
|
||||
|
||||
Більше того, ви можете отримати ту ж інформацію в **веб-консолі**, перейшовши за [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) або шукаючи "Усі ресурси" або виконуючи: `az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"`
|
||||
Крім того, ви можете отримати ту ж інформацію в **веб-консолі**, перейшовши за [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) або шукаючи "Усі ресурси" або виконуючи: `az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"`
|
||||
|
||||
Крім того, з достатніми правами, роль **`Get-AzRoleAssignment`** може бути використана для **перерахунку всіх ролей** в підписці або прав на конкретний ресурс, вказуючи його, як у: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`**
|
||||
2. **Знайдіть дозволи, які у вас є на ресурси, до яких у вас є доступ, і знайдіть ролі, призначені вам**:
|
||||
|
||||
У наступному розділі ви можете знайти інформацію про найпоширеніші Azure сервіси та як їх перерахувати:
|
||||
Зверніть увагу, що вам потрібен дозвіл **`Microsoft.Authorization/roleAssignments/read`** для виконання цієї дії.
|
||||
|
||||
Крім того, з достатніми правами роль **`Get-AzRoleAssignment`** може бути використана для **перерахунку всіх ролей** у підписці або дозволів на конкретний ресурс, вказуючи його, як у: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`**.
|
||||
|
||||
Також можливо отримати цю інформацію, запустивши **`az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`** як у:
|
||||
|
||||
- **`az rest --method GET --uri "https://management.azure.com//subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`**
|
||||
|
||||
3. **Знайдіть детальні дозволи ролей, які прикріплені до вас**:
|
||||
|
||||
Потім, щоб отримати детальні дозволи, ви можете виконати **`(Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions`**.
|
||||
|
||||
Або викликати API безпосередньо з **`az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?api-version=2020-08-01-preview" | jq ".properties"`**.
|
||||
|
||||
|
||||
У наступному розділі ви можете знайти **інформацію про найпоширеніші служби Azure та як їх перерахувати**:
|
||||
|
||||
{{#ref}}
|
||||
az-services/
|
||||
{{#endref}}
|
||||
|
||||
### Privilege Escalation, Post-Exploitation & Persistence in Azure Services
|
||||
### Ескалація привілеїв, пост-експлуатація та збереження в службах Azure
|
||||
|
||||
Якщо ви знаєте, як структуроване середовище Azure і які сервіси використовуються, ви можете почати шукати способи **ескалації привілеїв, бічного переміщення, виконання інших атак після експлуатації та підтримки стійкості**.
|
||||
Коли ви знаєте, як структуроване середовище Azure і які служби використовуються, ви можете почати шукати способи **ескалації привілеїв, бічного переміщення, виконання інших атак пост-експлуатації та підтримки збереження**.
|
||||
|
||||
У наступному розділі ви можете знайти інформацію про те, як ескалувати привілеї в найпоширеніших Azure сервісах:
|
||||
У наступному розділі ви можете знайти інформацію про те, як ескалувати привілеї в найпоширеніших службах Azure:
|
||||
|
||||
{{#ref}}
|
||||
az-privilege-escalation/
|
||||
{{#endref}}
|
||||
|
||||
У наступному ви можете знайти інформацію про те, як виконувати атаки після експлуатації в найпоширеніших Azure сервісах:
|
||||
У наступному ви можете знайти інформацію про те, як виконувати атаки пост-експлуатації в найпоширеніших службах Azure:
|
||||
|
||||
{{#ref}}
|
||||
az-post-exploitation/
|
||||
{{#endref}}
|
||||
|
||||
У наступному ви можете знайти інформацію про те, як підтримувати стійкість у найпоширеніших Azure сервісах:
|
||||
У наступному ви можете знайти інформацію про те, як підтримувати збереження в найпоширеніших службах Azure:
|
||||
|
||||
{{#ref}}
|
||||
az-persistence/
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
# Az - Підвищення Привілеїв
|
||||
@@ -0,0 +1,41 @@
|
||||
# Az - Storage Unauth
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Storage Unauth
|
||||
|
||||
Для отримання додаткової інформації про зберігання, перегляньте:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-storage.md
|
||||
{{#endref}}
|
||||
|
||||
### Open Storage
|
||||
|
||||
Ви можете виявити відкриті сховища за допомогою інструменту, такого як [**InvokeEnumerateAzureBlobs.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/Misc/Invoke-EnumerateAzureBlobs.ps1), який використовуватиме файл **`Microburst/Misc/permutations.txt`** для генерації перестановок (дуже простих), щоб спробувати **знайти відкриті облікові записи зберігання**.
|
||||
```bash
|
||||
Import-Module .\MicroBurst\MicroBurst.psm1
|
||||
Invoke-EnumerateAzureBlobs -Base corp
|
||||
[...]
|
||||
https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list
|
||||
[...]
|
||||
|
||||
# Access https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list
|
||||
# Check: <Name>ssh_info.json</Name>
|
||||
# Access then https://corpcommon.blob.core.windows.net/secrets/ssh_info.json
|
||||
```
|
||||
Ви також можете використовувати метод з [**MicroBust**](https://github.com/NetSPI/MicroBurst) для досягнення цієї мети. Ця функція буде шукати базову доменну назву (та кілька пермутацій) у кількох **azure domains** (включаючи домени зберігання):
|
||||
```bash
|
||||
Import-Module .\MicroBurst\MicroBurst.psm1 -Verbose
|
||||
Invoke-EnumerateAzureSubDomains -Base corp -Verbose
|
||||
```
|
||||
### SAS URLs
|
||||
|
||||
_**Спільний доступ до підпису**_ (SAS) URL - це URL, який **надає доступ** до певної частини облікового запису зберігання (може бути повний контейнер, файл...) з певними дозволами (читання, запис...) на ресурси. Якщо ви знайдете один з витоків, ви зможете отримати доступ до чутливої інформації, вони виглядають так (це для доступу до контейнера, якщо б це було просто надання доступу до файлу, шлях URL також міститиме цей файл):
|
||||
|
||||
`https://<storage_account_name>.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D`
|
||||
|
||||
Використовуйте [**Storage Explorer**](https://azure.microsoft.com/en-us/features/storage-explorer/), щоб отримати доступ до даних
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
Reference in New Issue
Block a user