Files
hacktricks-cloud/src/pentesting-cloud/azure-security

Azure Pentesting

{{#include ../../banners/hacktricks-training.md}}

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

{{#ref}} az-basic-information/ {{#endref}}

Методологія Azure Pentester/Red Team

Щоб провести аудит середовища AZURE, дуже важливо знати: які послуги використовуються, що виставлено на показ, хто має доступ до чого, і як внутрішні служби Azure та зовнішні служби з'єднані.

З точки зору Red Team, перший крок для компрометації середовища Azure - це отримати деякі облікові дані для Azure AD. Ось кілька ідей, як це зробити:

  • Витоки в github (або подібних) - OSINT
  • Соціальна інженерія
  • Повторне використання паролів (витоки паролів)
  • Вразливості в Azure-Hosted Applications
  • Server Side Request Forgery з доступом до метаданих
  • Читання локальних файлів
  • /home/USERNAME/.azure
  • C:\Users\USERNAME\.azure
  • Файл accessTokens.json в az cli до 2.30 - січень 2022 - зберігав токени доступу у відкритому тексті
  • Файл azureProfile.json містить інформацію про увійшого користувача.
  • az logout видаляє токен.
  • Старі версії Az PowerShell зберігали токени доступу у відкритому тексті в TokenCache.dat. Він також зберігає ServicePrincipalSecret у відкритому тексті в AzureRmContext.json. Команда Save-AzContext може бути використана для зберігання токенів.
    Використовуйте Disconnect-AzAccount, щоб видалити їх.
  • 3-ті сторони зламані
  • Внутрішній співробітник
  • Звичайна фішинг (облікові дані або Oauth App)
  • Фішинг аутентифікації за кодом пристрою
  • Azure Password Spraying

Навіть якщо ви не зламали жодного користувача всередині Azure-орендаря, який ви атакуєте, ви можете зібрати деяку інформацію з нього:

{{#ref}} az-unauthenticated-enum-and-initial-entry/ {{#endref}}

Note

Після того, як ви змогли отримати облікові дані, вам потрібно знати, кому належать ці облікові дані, і до чого вони мають доступ, тому вам потрібно виконати деяку базову енумерацію:

Базова енумерація

Note

Пам'ятайте, що найгучніша частина енумерації - це вхід, а не сама енумерація.

SSRF

Якщо ви знайшли SSRF на машині всередині Azure, перевірте цю сторінку на трюки:

{{#ref}} https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html {{#endref}}

Обхід умов входу

У випадках, коли у вас є деякі дійсні облікові дані, але ви не можете увійти, ось кілька загальних захистів, які можуть бути на місці:

  • IP-білий список -- Вам потрібно зламати дійсний IP
  • Гео обмеження -- Дізнайтеся, де живе користувач або де знаходяться офіси компанії, і отримайте IP з того ж міста (або країни принаймні)
  • Браузер -- Можливо, лише браузер з певної ОС (Windows, Linux, Mac, Android, iOS) дозволений. Дізнайтеся, яку ОС використовує жертва/компанія.
  • Ви також можете спробувати зламати облікові дані Service Principal, оскільки вони зазвичай менш обмежені, і їх вхід менш перевіряється.

Після обходу ви можете повернутися до вашої початкової налаштування і все ще мати доступ.

Захоплення піддомену

Whoami

Caution

Дізнайтеся, як встановити az cli, AzureAD та Az PowerShell у розділі Az - Entra ID.

Одне з перших, що вам потрібно знати, це хто ви (в якому середовищі ви знаходитесь):

{{#tabs }} {{#tab name="az cli" }}

az account list
az account tenant list # Current tenant info
az account subscription list # Current subscription info
az ad signed-in-user show # Current signed-in user
az ad signed-in-user list-owned-objects # Get owned objects by current user
az account management-group list #Not allowed by default

{{#endtab }}

{{#tab name="AzureAD" }}

#Get the current session state
Get-AzureADCurrentSessionInfo
#Get details of the current tenant
Get-AzureADTenantDetail

{{#endtab }}

{{#tab name="Az PowerShell" }}

# Get the information about the current context (Account, Tenant, Subscription etc.)
Get-AzContext
# List all available contexts
Get-AzContext -ListAvailable
# Enumerate subscriptions accessible by the current user
Get-AzSubscription
#Get Resource group
Get-AzResourceGroup
# Enumerate all resources visible to the current user
Get-AzResource
# Enumerate all Azure RBAC role assignments
Get-AzRoleAssignment # For all users
Get-AzRoleAssignment -SignInName test@corp.onmicrosoft.com # For current user

{{#endtab }} {{#endtabs }}

Caution

Одна з найважливіших команд для перерахунку Azure - це Get-AzResource з Az PowerShell, оскільки вона дозволяє вам дізнатися, які ресурси ваш поточний користувач може бачити.

Ви можете отримати ту ж інформацію в веб-консолі, перейшовши за посиланням https://portal.azure.com/#view/HubsExtension/BrowseAll або шукаючи "Усі ресурси".

Entra ID Enumeration

За замовчуванням будь-який користувач повинен мати достатньо прав для перерахунку таких речей, як користувачі, групи, ролі, служби-принципали... (перевірте стандартні дозволи AzureAD).
Тут ви можете знайти посібник:

{{#ref}} az-services/az-azuread.md {{#endref}}

Note

Тепер, коли ви маєте деяку інформацію про свої облікові дані (і якщо ви команда червоного кольору, сподіваємося, ви не були виявлені). Час з'ясувати, які сервіси використовуються в середовищі.
У наступному розділі ви можете перевірити кілька способів перерахувати деякі загальні сервіси.

App Service SCM

Консоль Kudu для входу в 'контейнер' App Service.

Webshell

Використовуйте portal.azure.com і виберіть оболонку, або використовуйте shell.azure.com для bash або powershell. 'Диск' цієї оболонки зберігається як файл зображення в обліковому записі зберігання.

Azure DevOps

Azure DevOps відокремлений від Azure. Він має репозиторії, конвеєри (yaml або реліз), дошки, вікі та інше. Групи змінних використовуються для зберігання значень змінних і секретів.

{{#include ../../banners/hacktricks-training.md}}