Translated ['src/pentesting-ci-cd/ansible-tower-awx-automation-controlle

This commit is contained in:
Translator
2025-08-01 10:13:12 +00:00
parent f8dbb2c1ce
commit 57a4191058
47 changed files with 487 additions and 305 deletions

View File

@@ -1 +1,3 @@
# Az - Post Exploitation
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -10,8 +10,13 @@ Per ulteriori informazioni sulle funzioni app, controlla:
../az-services/az-function-apps.md
{{#endref}}
> [!CAUTION] > **I trucchi di post sfruttamento delle Funzioni App sono molto correlati ai trucchi di escalation dei privilegi** quindi puoi trovarli tutti lì:
> [!CAUTION]
> **I trucchi di post sfruttamento delle Funzioni App sono molto correlati ai trucchi di escalation dei privilegi** quindi puoi trovarli tutti lì:
{{#ref}}
../az-privilege-escalation/az-functions-app-privesc.md
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -1 +1,3 @@
# Az - Privilege Escalation
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -1,4 +1,4 @@
# Az - Static Web Apps
# Az Static Web Apps
{{#include ../../../banners/hacktricks-training.md}}
@@ -12,12 +12,12 @@ Azure Static Web Apps è un servizio cloud per l'hosting di **app web statiche c
> Quando viene creata un'App Statica, puoi scegliere la **politica di autorizzazione per il deployment** tra **Token di deployment** e **workflow di GitHub Actions**.
- **Token di deployment**: Viene generato un token utilizzato per autenticare il processo di deployment. Chiunque con **questo token è sufficiente per distribuire una nuova versione dell'app**. Un **Github Action viene distribuito automaticamente** nel repo con il token in un segreto per distribuire una nuova versione dell'app ogni volta che il repo viene aggiornato.
- **Workflow di GitHub Actions**: In questo caso, viene distribuito un Github Action molto simile nel repo e il **token è anche memorizzato in un segreto**. Tuttavia, questo Github Action ha una differenza, utilizza l'azione **`actions/github-script@v6`** per ottenere l'IDToken del repository e usarlo per distribuire l'app.
- **Workflow di GitHub Actions**: In questo caso, viene distribuito anche un Github Action molto simile nel repo e il **token è anche memorizzato in un segreto**. Tuttavia, questo Github Action ha una differenza, utilizza l'azione **`actions/github-script@v6`** per ottenere l'IDToken del repository e usarlo per distribuire l'app.
- Anche se in entrambi i casi viene utilizzata l'azione **`Azure/static-web-apps-deploy@v1`** con un token nel parametro `azure_static_web_apps_api_token`, in questo secondo caso un token casuale con un formato valido come `12345cbb198a77a092ff885781a62a15d51ef5e3654ca11234509ab54547270704-4140ccee-e04f-424f-b4ca-3d4dd123459c00f0702071d12345` è sufficiente per distribuire l'app poiché l'autorizzazione avviene con l'IDToken nel parametro `github_id_token`.
### Web App Basic Authentication
È possibile **configurare una password** per accedere all'App Web. La console web consente di configurarla per proteggere solo gli ambienti di staging o sia gli ambienti di staging che quello di produzione.
È possibile **configurare una password** per accedere all'App Web. La console web consente di configurarla per proteggere solo gli ambienti di staging o sia l'ambiente di staging che quello di produzione.
Questo è come appare un'app web protetta da password al momento della scrittura:
@@ -30,7 +30,7 @@ az rest --method GET \
```
Tuttavia, questo **non mostrerà la password in chiaro**, solo qualcosa come: `"password": "**********************"`.
### Routes & Roles
### Routes e Ruoli
Le route definiscono **come vengono gestite le richieste HTTP in entrata** all'interno di un'app web statica. Configurate nel file **`staticwebapp.config.json`**, controllano la riscrittura degli URL, i reindirizzamenti, le restrizioni di accesso e l'autorizzazione basata sui ruoli, garantendo una corretta gestione delle risorse e sicurezza.
@@ -54,6 +54,11 @@ Alcuni esempi:
"route": "/admin",
"redirect": "/login",
"statusCode": 302
},
{
"route": "/google",
"redirect": "https://google.com",
"statusCode": 307
}
],
"navigationFallback": {
@@ -65,21 +70,24 @@ Alcuni esempi:
Nota come sia possibile **proteggere un percorso con un ruolo**, quindi, gli utenti dovranno autenticarsi nell'app e ricevere quel ruolo per accedere al percorso. È anche possibile **creare inviti** che concedono ruoli specifici a utenti specifici che accedono tramite EntraID, Facebook, GitHub, Google, Twitter, il che potrebbe essere utile per elevare i privilegi all'interno dell'app.
> [!TIP]
> Nota che è possibile configurare l'App in modo che **le modifiche al file `staticwebapp.config.json`** non vengano accettate. In questo caso, potrebbe non essere sufficiente cambiare solo il file da Github, ma anche **cambiare l'impostazione nell'App**.
> Nota che è possibile configurare l'App in modo che **le modifiche al file `staticwebapp.config.json`** non vengano accettate. In questo caso, potrebbe non essere sufficiente cambiare il file da Github, ma anche **cambiare l'impostazione nell'App**.
L'URL di staging ha questo formato: `https://<app-subdomain>-<PR-num>.<region>.<res-of-app-domain>` come: `https://ambitious-plant-0f764e00f-2.eastus2.4.azurestaticapps.net`
### Identità Gestite
### Snippets
Azure Static Web Apps può essere configurato per utilizzare **identità gestite**, tuttavia, come menzionato in [questa FAQ](https://learn.microsoft.com/en-gb/azure/static-web-apps/faq#does-static-web-apps-support-managed-identity-), sono supportate solo per **estrarre segreti da Azure Key Vault per scopi di autenticazione, non per accedere ad altre risorse Azure**.
È possibile memorizzare snippet HTML all'interno di un'app web statica che verranno caricati all'interno dell'app. Questo può essere utilizzato per **iniettare codice malevolo** nell'app, come un **codice JS per rubare credenziali**, un **keylogger**... Maggiori informazioni nella sezione sull'elevazione dei privilegi.
Per ulteriori informazioni puoi trovare una guida di Azure su come utilizzare un segreto del vault in un'app statica su https://learn.microsoft.com/en-us/azure/static-web-apps/key-vault-secrets.
### Managed Identities
## Enumerazione
Azure Static Web Apps può essere configurato per utilizzare **managed identities**, tuttavia, come menzionato in [questa FAQ](https://learn.microsoft.com/en-gb/azure/static-web-apps/faq#does-static-web-apps-support-managed-identity-), sono supportate solo per **estrarre segreti da Azure Key Vault per scopi di autenticazione, non per accedere ad altre risorse Azure**.
{% tabs %}
{% tab title="az cli" %}
{% code overflow="wrap" %}
Per ulteriori informazioni, puoi trovare una guida di Azure su come utilizzare un segreto del vault in un'app statica su https://learn.microsoft.com/en-us/azure/static-web-apps/key-vault-secrets.
## Enumeration
{{#tabs }}
{{#tab name="az cli" }}
```bash
# List Static Webapps
az staticwebapp list --output table
@@ -100,6 +108,10 @@ az staticwebapp secrets list --name <name>
# Get invited users
az staticwebapp users list --name <name>
# Get current snippets
az rest --method GET \
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/trainingdemo/snippets?api-version=2022-03-01"
# Get database connections
az rest --method GET \
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/databaseConnections?api-version=2021-03-01"
@@ -111,12 +123,10 @@ az rest --method POST \
# Check connected backends
az staticwebapp backends show --name <name> --resource-group <res-group>
```
{% endcode %}
{% endtab %}
{{#endtab }}
{% tab title="Az PowerShell" %}
{% code overflow="wrap" %}
```powershell
{{#tab name="Az Powershell" }}
```bash
Get-Command -Module Az.Websites
# Retrieves details of a specific Static Web App in the specified resource group.
@@ -159,17 +169,16 @@ Get-AzStaticWebAppUser -ResourceGroupName <ResourceGroupName> -Name <Name> -Auth
Get-AzStaticWebAppUserProvidedFunctionApp -ResourceGroupName <ResourceGroupName> -Name <Name>
```
{% endcode %}
{% endtab %}
{% endtabs %}
{{#endtab }}
{{#endtabs }}
## Esempi per generare Web Apps
## Esempi per generare Web App
Puoi trovare un bel esempio per generare un'app web al seguente link: [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. Forka il repository https://github.com/staticwebdev/react-basic/generate nel tuo account GitHub e chiamalo `my-first-static-web-app`
2. Nel portale Azure crea una Static Web App configurando l'accesso a Github e selezionando il nuovo repository forkato
2. Nel portale Azure crea una Static Web App configurando l'accesso a GitHub e selezionando il nuovo repository forkato
3. Crealo, aspetta qualche minuto e controlla la tua nuova pagina!
## Escalation dei privilegi e Post Exploitation