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/.azureC:\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}}