mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-31 07:00:38 -08:00
Translated ['src/pentesting-ci-cd/cloudflare-security/cloudflare-domains
This commit is contained in:
@@ -26,17 +26,17 @@ Per auditare un ambiente GCP è molto importante sapere: quali **servizi vengono
|
||||
Dal punto di vista di un Red Team, il **primo passo per compromettere un ambiente GCP** è riuscire a ottenere alcune **credenziali**. Qui hai alcune idee su come farlo:
|
||||
|
||||
- **Leak** su github (o simili) - OSINT
|
||||
- **Ingegneria** Sociale (Controlla la pagina [**Workspace Security**](../workspace-security/))
|
||||
- **Ingegneria** Sociale (Controlla la pagina [**Sicurezza di Workspace**](../workspace-security/index.html))
|
||||
- Riutilizzo della **Password** (leak di password)
|
||||
- Vulnerabilità nelle Applicazioni Ospitate su GCP
|
||||
- [**Server Side Request Forgery**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) con accesso all'endpoint dei metadati
|
||||
- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) con accesso all'endpoint dei metadati
|
||||
- **Lettura di File Locali**
|
||||
- `/home/USERNAME/.config/gcloud/*`
|
||||
- `C:\Users\USERNAME\.config\gcloud\*`
|
||||
- **breach** di terze parti
|
||||
- **Dipendente** Interno
|
||||
|
||||
Oppure **compromettendo un servizio non autenticato** esposto:
|
||||
Oppure compromettendo un servizio **non autenticato** esposto:
|
||||
|
||||
{{#ref}}
|
||||
gcp-unauthenticated-enum-and-access/
|
||||
@@ -51,14 +51,14 @@ gcp-permissions-for-a-pentest.md
|
||||
> [!NOTE]
|
||||
> Dopo aver ottenuto le credenziali, devi sapere **a chi appartengono quelle credenziali**, e **a cosa hanno accesso**, quindi devi eseguire alcune enumerazioni di base:
|
||||
|
||||
## Enumerazione di base
|
||||
## Enumerazione di Base
|
||||
|
||||
### **SSRF**
|
||||
|
||||
Per ulteriori informazioni su come **enumerare i metadati GCP** controlla la seguente pagina di hacktricks:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#6440
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
{{#endref}}
|
||||
|
||||
### Whoami
|
||||
@@ -103,13 +103,13 @@ gcp-services/gcp-iam-and-org-policies-enum.md
|
||||
|
||||
## Enumerazione dei Servizi
|
||||
|
||||
GCP ha un numero straordinario di servizi, nella pagina seguente troverai **informazioni di base, cheatsheets per l'enumerazione**, come **evitare il rilevamento**, ottenere **persistenza** e altri trucchi di **post-exploitation** su alcuni di essi:
|
||||
GCP ha un numero straordinario di servizi, nella pagina seguente troverai **informazioni di base, cheatsheets di enumerazione**, come **evitare il rilevamento**, ottenere **persistenza** e altri trucchi di **post-exploitation** su alcuni di essi:
|
||||
|
||||
{{#ref}}
|
||||
gcp-services/
|
||||
{{#endref}}
|
||||
|
||||
Nota che **non** è necessario eseguire tutto il lavoro **manualmente**, qui sotto in questo post puoi trovare una **sezione su** [**strumenti automatici**](./#automatic-tools).
|
||||
Nota che **non** è necessario eseguire tutto il lavoro **manualmente**, qui sotto in questo post puoi trovare una **sezione su** [**strumenti automatici**](#automatic-tools).
|
||||
|
||||
Inoltre, in questa fase potresti aver scoperto **più servizi esposti a utenti non autenticati**, potresti essere in grado di sfruttarli:
|
||||
|
||||
@@ -143,7 +143,7 @@ Come pentester/red teamer dovresti sempre controllare se puoi trovare **informaz
|
||||
In questo libro dovresti trovare **informazioni** su come trovare **servizi GCP esposti e come controllarli**. Per quanto riguarda come trovare **vulnerabilità nei servizi di rete esposti**, ti consiglio di **cercare** il **servizio** specifico in:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/
|
||||
https://book.hacktricks.wiki/
|
||||
{{#endref}}
|
||||
|
||||
## GCP <--> Workspace Pivoting
|
||||
@@ -171,7 +171,7 @@ pip install -r requirements.txt
|
||||
python3 __main__.py -o /tmp/output/ -g "$HOME/.config/gcloud"
|
||||
```
|
||||
- [**gcp_enum**](https://gitlab.com/gitlab-com/gl-security/threatmanagement/redteam/redteam-public/gcp_enum): Script Bash per enumerare un ambiente GCP utilizzando gcloud cli e salvando i risultati in un file.
|
||||
- [**GCP-IAM-Privilege-Escalation**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation): Script per enumerare privilegi IAM elevati e per elevare privilegi in GCP abusandone (non sono riuscito a far funzionare lo script di enumerazione).
|
||||
- [**GCP-IAM-Privilege-Escalation**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation): Script per enumerare privilegi IAM elevati e per escalare privilegi in GCP abusandone (non sono riuscito a far funzionare lo script di enumerazione).
|
||||
- [**BF My GCP Permissions**](https://github.com/carlospolop/bf_my_gcp_permissions): Script per forzare le tue autorizzazioni.
|
||||
|
||||
## gcloud config & debug
|
||||
|
||||
@@ -19,7 +19,7 @@ Per ulteriori informazioni su Artifact Registry controlla:
|
||||
- Se no, viene utilizzata la **versione più alta**
|
||||
|
||||
> [!CAUTION]
|
||||
> Pertanto, è possibile **abusare di una versione più alta (confusione delle dipendenze)** in un registro di pacchetti pubblico se il repository remoto ha una priorità più alta o uguale
|
||||
> Pertanto, è possibile **abusare di una versione più alta (confusione delle dipendenze)** in un registro di pacchetti pubblico se il repository remoto ha una priorità più alta o la stessa
|
||||
|
||||
Questa tecnica può essere utile per la **persistenza** e l'**accesso non autenticato** poiché per abusarne è sufficiente **conoscere il nome di una libreria** memorizzata in Artifact Registry e **creare quella stessa libreria nel repository pubblico (PyPi per python ad esempio)** con una versione più alta.
|
||||
|
||||
@@ -28,7 +28,7 @@ Per la persistenza, questi sono i passaggi da seguire:
|
||||
- **Requisiti**: Deve **esistere** e essere utilizzato un **repository virtuale**, deve essere utilizzato un **pacchetto interno** con un **nome** che non esiste nel **repository pubblico**.
|
||||
- Crea un repository remoto se non esiste
|
||||
- Aggiungi il repository remoto al repository virtuale
|
||||
- Modifica le politiche del registro virtuale per dare una priorità più alta (o uguale) al repository remoto.\
|
||||
- Modifica le politiche del registro virtuale per dare una priorità più alta (o la stessa) al repository remoto.\
|
||||
Esegui qualcosa come:
|
||||
- [gcloud artifacts repositories update --upstream-policy-file ...](https://cloud.google.com/sdk/gcloud/reference/artifacts/repositories/update#--upstream-policy-file)
|
||||
- Scarica il pacchetto legittimo, aggiungi il tuo codice malevolo e registralo nel repository pubblico con la stessa versione. Ogni volta che un sviluppatore lo installa, installerà il tuo!
|
||||
@@ -36,7 +36,7 @@ Esegui qualcosa come:
|
||||
Per ulteriori informazioni sulla confusione delle dipendenze controlla:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/dependency-confusion
|
||||
https://book.hacktricks.wiki/en/pentesting-web/dependency-confusion.html
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -11,7 +11,7 @@ sqlite3 $HOME/.config/gcloud/access_tokens.db "select access_token from access_t
|
||||
Controlla in questa pagina come **utilizzare direttamente questo token usando gcloud**:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#id-6440-1
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#gcp
|
||||
{{#endref}}
|
||||
|
||||
Per ottenere i dettagli per **generare un nuovo token di accesso** esegui:
|
||||
@@ -20,7 +20,7 @@ sqlite3 $HOME/.config/gcloud/credentials.db "select value from credentials where
|
||||
```
|
||||
È anche possibile trovare i token di aggiornamento in **`$HOME/.config/gcloud/application_default_credentials.json`** e in **`$HOME/.config/gcloud/legacy_credentials/*/adc.json`**.
|
||||
|
||||
Per ottenere un nuovo token di accesso aggiornato con il **refresh token**, l'ID client e il segreto client esegui:
|
||||
Per ottenere un nuovo token di accesso aggiornato con il **refresh token**, l'ID client e il segreto client eseguire:
|
||||
```bash
|
||||
curl -s --data client_id=<client_id> --data client_secret=<client_secret> --data grant_type=refresh_token --data refresh_token=<refresh_token> --data scope="https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/accounts.reauth" https://www.googleapis.com/oauth2/v4/token
|
||||
```
|
||||
@@ -34,10 +34,10 @@ Il flusso di autenticazione quando si utilizza qualcosa come `gcloud auth login`
|
||||
```
|
||||
/?state=EN5AK1GxwrEKgKog9ANBm0qDwWByYO&code=4/0AeaYSHCllDzZCAt2IlNWjMHqr4XKOuNuhOL-TM541gv-F6WOUsbwXiUgMYvo4Fg0NGzV9A&scope=email%20openid%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/cloud-platform%20https://www.googleapis.com/auth/appengine.admin%20https://www.googleapis.com/auth/sqlservice.login%20https://www.googleapis.com/auth/compute%20https://www.googleapis.com/auth/accounts.reauth&authuser=0&prompt=consent HTTP/1.1
|
||||
```
|
||||
Poi, gcloud utilizzerà lo stato e il codice con un `client_id` hardcoded (`32555940559.apps.googleusercontent.com`) e **`client_secret`** (`ZmssLNjJy2998hD4CTg2ejr2`) per ottenere i **dati finali del token di refresh**.
|
||||
Poi, gcloud utilizzerà lo stato e il codice con un `client_id` hardcoded (`32555940559.apps.googleusercontent.com`) e **`client_secret`** (`ZmssLNjJy2998hD4CTg2ejr2`) per ottenere i **dati finali del refresh token**.
|
||||
|
||||
> [!CAUTION]
|
||||
> Nota che la comunicazione con localhost avviene in HTTP, quindi è possibile intercettare i dati per ottenere un token di refresh, tuttavia questi dati sono validi solo 1 volta, quindi sarebbe inutile, è più facile semplicemente leggere il token di refresh dal file.
|
||||
> Nota che la comunicazione con localhost avviene in HTTP, quindi è possibile intercettare i dati per ottenere un refresh token, tuttavia questi dati sono validi solo 1 volta, quindi sarebbe inutile, è più facile semplicemente leggere il refresh token dal file.
|
||||
|
||||
### OAuth Scopes
|
||||
|
||||
@@ -65,9 +65,9 @@ https://www.googleapis.com/auth/devstorage.full_control
|
||||
https://www.googleapis.com/auth/drive
|
||||
https://www.googleapis.com/auth/userinfo.email
|
||||
```
|
||||
è interessante vedere come questa app supporti l'**`drive`** scope, che potrebbe consentire a un utente di eseguire un escalation da GCP a Workspace se un attaccante riesce a costringere l'utente a generare un token con questo scope.
|
||||
è interessante vedere come questa app supporti l'**`drive`** scope, che potrebbe consentire a un utente di escalare da GCP a Workspace se un attaccante riesce a costringere l'utente a generare un token con questo scope.
|
||||
|
||||
**Controlla come** [**abusare di questo qui**](../gcp-to-workspace-pivoting/#abusing-gcloud)**.**
|
||||
**Controlla come** [**abusare di questo qui**](../gcp-to-workspace-pivoting/index.html#abusing-gcloud)**.**
|
||||
|
||||
### Account di Servizio
|
||||
|
||||
@@ -76,7 +76,7 @@ Tuttavia, se rubi il **token OAuth** di un account di servizio questo può esser
|
||||
|
||||
### Metadati
|
||||
|
||||
Ovviamente, finché sei all'interno di una macchina in esecuzione nell'ambiente GCP sarai in grado di **accedere all'account di servizio associato a quella macchina contattando l'endpoint dei metadati** (nota che i token Oauth a cui puoi accedere in questo endpoint sono di solito limitati da scope).
|
||||
Ovviamente, finché sei all'interno di una macchina in esecuzione nell'ambiente GCP sarai in grado di **accedere all'account di servizio associato a quella macchina contattando l'endpoint dei metadati** (nota che i token OAuth a cui puoi accedere in questo endpoint sono di solito limitati da scope).
|
||||
|
||||
### Rimedi
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# GCP - escalation locale dei privilegi ssh pivoting
|
||||
# GCP - escalatione locale dei privilegi ssh pivoting
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -27,20 +27,20 @@ Inoltre, è possibile aggiungere **userdata**, che è uno script che verrà **es
|
||||
Per ulteriori informazioni controlla:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
{{#endref}}
|
||||
|
||||
## **Abuso dei permessi IAM**
|
||||
## **Abusare dei permessi IAM**
|
||||
|
||||
La maggior parte dei permessi proposti di seguito sono **assegnati al Compute SA predefinito,** l'unico problema è che il **campo di accesso predefinito impedisce al SA di usarli**. Tuttavia, se il **campo `cloud-platform`** è abilitato o solo il **campo `compute`** è abilitato, sarai **in grado di abusarne**.
|
||||
|
||||
Controlla i seguenti permessi:
|
||||
|
||||
- [**compute.instances.osLogin**](gcp-compute-privesc/#compute.instances.oslogin)
|
||||
- [**compute.instances.osAdminLogin**](gcp-compute-privesc/#compute.instances.osadminlogin)
|
||||
- [**compute.projects.setCommonInstanceMetadata**](gcp-compute-privesc/#compute.projects.setcommoninstancemetadata)
|
||||
- [**compute.instances.setMetadata**](gcp-compute-privesc/#compute.instances.setmetadata)
|
||||
- [**compute.instances.setIamPolicy**](gcp-compute-privesc/#compute.instances.setiampolicy)
|
||||
- [**compute.instances.osLogin**](gcp-compute-privesc/index.html#compute.instances.oslogin)
|
||||
- [**compute.instances.osAdminLogin**](gcp-compute-privesc/index.html#compute.instances.osadminlogin)
|
||||
- [**compute.projects.setCommonInstanceMetadata**](gcp-compute-privesc/index.html#compute.projects.setcommoninstancemetadata)
|
||||
- [**compute.instances.setMetadata**](gcp-compute-privesc/index.html#compute.instances.setmetadata)
|
||||
- [**compute.instances.setIamPolicy**](gcp-compute-privesc/index.html#compute.instances.setiampolicy)
|
||||
|
||||
## Cerca chiavi nel filesystem
|
||||
|
||||
@@ -55,7 +55,7 @@ Questi sono i file più interessanti:
|
||||
- `~/.config/gcloud/legacy_credentials/[ACCOUNT]/.boto`
|
||||
- `~/.credentials.json`
|
||||
|
||||
### Altri regex per le chiavi API
|
||||
### Altre regex per le chiavi API
|
||||
```bash
|
||||
TARGET_DIR="/path/to/whatever"
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Informazioni di Base
|
||||
|
||||
Google Cloud Compute Instances sono **macchine virtuali personalizzabili sull'infrastruttura cloud di Google**, che offrono potenza di calcolo scalabile e on-demand per una vasta gamma di applicazioni. Forniscono funzionalità come distribuzione globale, archiviazione persistente, scelte flessibili del sistema operativo e forti integrazioni di rete e sicurezza, rendendole una scelta versatile per l'hosting di siti web, l'elaborazione dei dati e l'esecuzione di applicazioni in modo efficiente nel cloud.
|
||||
Google Cloud Compute Instances sono **macchine virtuali personalizzabili sull'infrastruttura cloud di Google**, che offrono potenza di calcolo scalabile e on-demand per una vasta gamma di applicazioni. Forniscono funzionalità come distribuzione globale, archiviazione persistente, scelte flessibili del sistema operativo e forti integrazioni di rete e sicurezza, rendendole una scelta versatile per ospitare siti web, elaborare dati e eseguire applicazioni in modo efficiente nel cloud.
|
||||
|
||||
### VM Riservate
|
||||
|
||||
@@ -17,11 +17,11 @@ Per eseguire una VM riservata potrebbe essere necessario **cambiare** cose come
|
||||
È possibile **selezionare il disco** da utilizzare o **crearne uno nuovo**. Se selezioni uno nuovo puoi:
|
||||
|
||||
- Selezionare la **dimensione** del disco
|
||||
- Selezionare il **sistema operativo**
|
||||
- Selezionare il **SO**
|
||||
- Indicare se desideri **eliminare il disco quando l'istanza viene eliminata**
|
||||
- **Crittografia**: Per **default** verrà utilizzata una **chiave gestita da Google**, ma puoi anche **selezionare una chiave da KMS** o indicare **una chiave grezza da utilizzare**.
|
||||
|
||||
### Distribuire Contenitore
|
||||
### Distribuire un Contenitore
|
||||
|
||||
È possibile distribuire un **contenitore** all'interno della macchina virtuale.\
|
||||
È possibile configurare l'**immagine** da utilizzare, impostare il **comando** da eseguire all'interno, **argomenti**, montare un **volume** e **variabili d'ambiente** (informazioni sensibili?) e configurare diverse opzioni per questo contenitore come eseguire come **privilegiato**, stdin e pseudo TTY.
|
||||
@@ -50,17 +50,17 @@ Tuttavia, è possibile **concedere `cloud-platform` con un clic** o specificare
|
||||
|
||||
<figure><img src="../../../../images/image (326).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Networking
|
||||
### Rete
|
||||
|
||||
- **IP Forwarding**: È possibile **abilitare l'inoltro IP** dalla creazione dell'istanza.
|
||||
- **Hostname**: È possibile dare all'istanza un hostname permanente.
|
||||
- **Inoltro IP**: È possibile **abilitare l'inoltro IP** dalla creazione dell'istanza.
|
||||
- **Nome host**: È possibile dare all'istanza un nome host permanente.
|
||||
- **Interfaccia**: È possibile aggiungere un'interfaccia di rete.
|
||||
|
||||
### Sicurezza Aggiuntiva
|
||||
|
||||
Queste opzioni **aumenteranno la sicurezza** della VM e sono raccomandate:
|
||||
|
||||
- **Secure boot:** Secure boot aiuta a proteggere le tue istanze VM contro malware e rootkit a livello di avvio e kernel.
|
||||
- **Avvio sicuro:** L'avvio sicuro aiuta a proteggere le tue istanze VM contro malware e rootkit a livello di avvio e kernel.
|
||||
- **Abilita vTPM:** Il Modulo di Piattaforma Fidato Virtuale (vTPM) convalida l'integrità pre-avvio e di avvio della tua VM guest e offre generazione e protezione delle chiavi.
|
||||
- **Supervisione dell'integrità:** Il monitoraggio dell'integrità ti consente di monitorare e verificare l'integrità di avvio in tempo reale delle tue istanze VM protette utilizzando i rapporti di Stackdriver. Richiede che vTPM sia abilitato.
|
||||
|
||||
@@ -72,11 +72,11 @@ Quando questo **servizio** è **abilitato**, l'accesso tramite **chiavi SSH è d
|
||||
|
||||
<figure><img src="../../../../images/image (328).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Metadata
|
||||
### Metadati
|
||||
|
||||
È possibile definire **automazione** (userdata in AWS) che sono **comandi shell** che verranno eseguiti ogni volta che la macchina si accende o si riavvia.
|
||||
|
||||
È anche possibile **aggiungere valori chiave-valore di metadata extra** che saranno accessibili dall'endpoint dei metadata. Queste informazioni sono comunemente utilizzate per variabili d'ambiente e script di avvio/arresto. Queste possono essere ottenute utilizzando il **metodo `describe`** da un comando nella sezione di enumerazione, ma possono anche essere recuperate dall'interno dell'istanza accedendo all'endpoint dei metadata.
|
||||
È anche possibile **aggiungere valori chiave-valore di metadati extra** che saranno accessibili dall'endpoint dei metadati. Queste informazioni sono comunemente utilizzate per variabili d'ambiente e script di avvio/arresto. Queste possono essere ottenute utilizzando il **metodo `describe`** da un comando nella sezione di enumerazione, ma possono anche essere recuperate dall'interno dell'istanza accedendo all'endpoint dei metadati.
|
||||
```bash
|
||||
# view project metadata
|
||||
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
|
||||
@@ -89,7 +89,7 @@ curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?re
|
||||
Inoltre, **il token di autenticazione per l'account di servizio allegato** e **informazioni generali** sull'istanza, sulla rete e sul progetto saranno disponibili anche dall'**endpoint dei metadati**. Per ulteriori informazioni, controlla:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#6440
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#gcp
|
||||
{{#endref}}
|
||||
|
||||
### Crittografia
|
||||
|
||||
@@ -17,7 +17,7 @@ Se hai **accesso a una porta Cloud SQL** perché tutto l'internet è permesso o
|
||||
Controlla questa pagina per **diversi strumenti per forzare** diverse tecnologie di database:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/generic-methodologies-and-resources/brute-force
|
||||
https://book.hacktricks.wiki/en/generic-hacking/brute-force.html
|
||||
{{#endref}}
|
||||
|
||||
Ricorda che con alcuni privilegi è possibile **elencare tutti gli utenti del database** tramite l'API GCP.
|
||||
|
||||
@@ -15,7 +15,7 @@ Per ulteriori informazioni su Compute e VPC (Networking) controlla:
|
||||
Se un web è **vulnerabile a SSRF** e è possibile **aggiungere l'intestazione dei metadati**, un attaccante potrebbe abusarne per accedere al token OAuth del SA dall'endpoint dei metadati. Per ulteriori informazioni su SSRF controlla:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/index.html
|
||||
{{#endref}}
|
||||
|
||||
### Servizi esposti vulnerabili
|
||||
|
||||
Reference in New Issue
Block a user