mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-12 13:05:19 -08:00
Translated ['.github/pull_request_template.md', 'src/pentesting-cloud/az
This commit is contained in:
@@ -2,17 +2,17 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Informazioni di base
|
||||
|
||||
**Before start pentesting** a Digital Ocean environment there are a few **basics things you need to know** about how DO works to help you understand what you need to do, how to find misconfigurations and how to exploit them.
|
||||
**Prima di iniziare il pentesting** di un ambiente Digital Ocean, ci sono alcune **cose di base che devi sapere** su come funziona DO per aiutarti a capire cosa devi fare, come trovare configurazioni errate e come sfruttarle.
|
||||
|
||||
Concepts such as hierarchy, access and other basic concepts are explained in:
|
||||
Concetti come gerarchia, accesso e altri concetti di base sono spiegati in:
|
||||
|
||||
{{#ref}}
|
||||
do-basic-information.md
|
||||
{{#endref}}
|
||||
|
||||
## Basic Enumeration
|
||||
## Enumerazione di base
|
||||
|
||||
### SSRF
|
||||
|
||||
@@ -20,28 +20,22 @@ do-basic-information.md
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
|
||||
{{#endref}}
|
||||
|
||||
### Projects
|
||||
### Progetti
|
||||
|
||||
To get a list of the projects and resources running on each of them from the CLI check:
|
||||
Per ottenere un elenco dei progetti e delle risorse in esecuzione su ciascuno di essi dalla CLI, controlla:
|
||||
|
||||
{{#ref}}
|
||||
do-services/do-projects.md
|
||||
{{#endref}}
|
||||
|
||||
### Whoami
|
||||
|
||||
```bash
|
||||
doctl account get
|
||||
```
|
||||
|
||||
## Services Enumeration
|
||||
## Enumerazione dei Servizi
|
||||
|
||||
{{#ref}}
|
||||
do-services/
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,139 +1,127 @@
|
||||
# DO - Basic Information
|
||||
# DO - Informazioni di Base
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Informazioni di Base
|
||||
|
||||
DigitalOcean is a **cloud computing platform that provides users with a variety of services**, including virtual private servers (VPS) and other resources for building, deploying, and managing applications. **DigitalOcean's services are designed to be simple and easy to use**, making them **popular among developers and small businesses**.
|
||||
DigitalOcean è una **piattaforma di cloud computing che fornisce agli utenti una varietà di servizi**, inclusi server privati virtuali (VPS) e altre risorse per costruire, distribuire e gestire applicazioni. **I servizi di DigitalOcean sono progettati per essere semplici e facili da usare**, rendendoli **popolari tra sviluppatori e piccole imprese**.
|
||||
|
||||
Some of the key features of DigitalOcean include:
|
||||
Alcune delle caratteristiche principali di DigitalOcean includono:
|
||||
|
||||
- **Virtual private servers (VPS)**: DigitalOcean provides VPS that can be used to host websites and applications. These VPS are known for their simplicity and ease of use, and can be quickly and easily deployed using a variety of pre-built "droplets" or custom configurations.
|
||||
- **Storage**: DigitalOcean offers a range of storage options, including object storage, block storage, and managed databases, that can be used to store and manage data for websites and applications.
|
||||
- **Development and deployment tools**: DigitalOcean provides a range of tools that can be used to build, deploy, and manage applications, including APIs and pre-built droplets.
|
||||
- **Security**: DigitalOcean places a strong emphasis on security, and offers a range of tools and features to help users keep their data and applications safe. This includes encryption, backups, and other security measures.
|
||||
- **Server privati virtuali (VPS)**: DigitalOcean fornisce VPS che possono essere utilizzati per ospitare siti web e applicazioni. Questi VPS sono noti per la loro semplicità e facilità d'uso, e possono essere rapidamente e facilmente distribuiti utilizzando una varietà di "droplets" pre-costruiti o configurazioni personalizzate.
|
||||
- **Storage**: DigitalOcean offre una gamma di opzioni di storage, inclusi storage oggetti, storage a blocchi e database gestiti, che possono essere utilizzati per memorizzare e gestire dati per siti web e applicazioni.
|
||||
- **Strumenti di sviluppo e distribuzione**: DigitalOcean fornisce una gamma di strumenti che possono essere utilizzati per costruire, distribuire e gestire applicazioni, inclusi API e droplets pre-costruiti.
|
||||
- **Sicurezza**: DigitalOcean pone una forte enfasi sulla sicurezza e offre una gamma di strumenti e funzionalità per aiutare gli utenti a mantenere i propri dati e applicazioni al sicuro. Questo include crittografia, backup e altre misure di sicurezza.
|
||||
|
||||
Overall, DigitalOcean is a cloud computing platform that provides users with the tools and resources they need to build, deploy, and manage applications in the cloud. Its services are designed to be simple and easy to use, making them popular among developers and small businesses.
|
||||
In generale, DigitalOcean è una piattaforma di cloud computing che fornisce agli utenti gli strumenti e le risorse di cui hanno bisogno per costruire, distribuire e gestire applicazioni nel cloud. I suoi servizi sono progettati per essere semplici e facili da usare, rendendoli popolari tra sviluppatori e piccole imprese.
|
||||
|
||||
### Main Differences from AWS
|
||||
### Principali Differenze da AWS
|
||||
|
||||
One of the main differences between DigitalOcean and AWS is the **range of services they offer**. **DigitalOcean focuses on providing simple** and easy-to-use virtual private servers (VPS), storage, and development and deployment tools. **AWS**, on the other hand, offers a **much broader range of services**, including VPS, storage, databases, machine learning, analytics, and many other services. This means that AWS is more suitable for complex, enterprise-level applications, while DigitalOcean is more suited to small businesses and developers.
|
||||
Una delle principali differenze tra DigitalOcean e AWS è la **gamma di servizi che offrono**. **DigitalOcean si concentra sulla fornitura di server privati virtuali (VPS)** semplici e facili da usare, storage e strumenti di sviluppo e distribuzione. **AWS**, d'altra parte, offre una **gamma di servizi molto più ampia**, inclusi VPS, storage, database, machine learning, analisi e molti altri servizi. Questo significa che AWS è più adatto per applicazioni complesse a livello aziendale, mentre DigitalOcean è più adatto per piccole imprese e sviluppatori.
|
||||
|
||||
Another key difference between the two platforms is the **pricing structure**. **DigitalOcean's pricing is generally more straightforward and easier** to understand than AWS, with a range of pricing plans that are based on the number of droplets and other resources used. AWS, on the other hand, has a more complex pricing structure that is based on a variety of factors, including the type and amount of resources used. This can make it more difficult to predict costs when using AWS.
|
||||
Un'altra differenza chiave tra le due piattaforme è la **struttura dei prezzi**. **I prezzi di DigitalOcean sono generalmente più chiari e facili** da comprendere rispetto a AWS, con una gamma di piani tariffari basati sul numero di droplets e altre risorse utilizzate. AWS, d'altra parte, ha una struttura dei prezzi più complessa basata su una varietà di fattori, inclusi il tipo e la quantità di risorse utilizzate. Questo può rendere più difficile prevedere i costi quando si utilizza AWS.
|
||||
|
||||
## Hierarchy
|
||||
## Gerarchia
|
||||
|
||||
### User
|
||||
### Utente
|
||||
|
||||
A user is what you expect, a user. He can **create Teams** and **be a member of different teams.**
|
||||
Un utente è ciò che ti aspetti, un utente. Può **creare Team** e **essere membro di diversi team.**
|
||||
|
||||
### **Team**
|
||||
|
||||
A team is a group of **users**. When a user creates a team he has the **role owner on that team** and he initially **sets up the billing info**. **Other** user can then be **invited** to the team.
|
||||
Un team è un gruppo di **utenti**. Quando un utente crea un team, ha il **ruolo di proprietario di quel team** e inizialmente **imposta le informazioni di fatturazione**. **Altri** utenti possono quindi essere **invitati** al team.
|
||||
|
||||
Inside the team there might be several **projects**. A project is just a **set of services running**. It can be used to **separate different infra stages**, like prod, staging, dev...
|
||||
All'interno del team possono esserci diversi **progetti**. Un progetto è semplicemente un **insieme di servizi in esecuzione**. Può essere utilizzato per **separare diverse fasi infrastrutturali**, come prod, staging, dev...
|
||||
|
||||
### Project
|
||||
### Progetto
|
||||
|
||||
As explained, a project is just a container for all the **services** (droplets, spaces, databases, kubernetes...) **running together inside of it**.\
|
||||
A Digital Ocean project is very similar to a GCP project without IAM.
|
||||
Come spiegato, un progetto è semplicemente un contenitore per tutti i **servizi** (droplets, spazi, database, kubernetes...) **in esecuzione insieme al suo interno**.\
|
||||
Un progetto di Digital Ocean è molto simile a un progetto GCP senza IAM.
|
||||
|
||||
## Permissions
|
||||
## Permessi
|
||||
|
||||
### Team
|
||||
|
||||
Basically all members of a team have **access to the DO resources in all the projects created within the team (with more or less privileges).**
|
||||
Fondamentalmente, tutti i membri di un team hanno **accesso alle risorse DO in tutti i progetti creati all'interno del team (con più o meno privilegi).**
|
||||
|
||||
### Roles
|
||||
### Ruoli
|
||||
|
||||
Each **user inside a team** can have **one** of the following three **roles** inside of it:
|
||||
Ogni **utente all'interno di un team** può avere **uno** dei seguenti tre **ruoli** al suo interno:
|
||||
|
||||
| Role | Shared Resources | Billing Information | Team Settings |
|
||||
| ---------- | ---------------- | ------------------- | ------------- |
|
||||
| **Owner** | Full access | Full access | Full access |
|
||||
| **Biller** | No access | Full access | No access |
|
||||
| **Member** | Full access | No access | No access |
|
||||
| Ruolo | Risorse Condivise | Informazioni di Fatturazione | Impostazioni del Team |
|
||||
| ---------- | ------------------ | ---------------------------- | --------------------- |
|
||||
| **Proprietario** | Accesso completo | Accesso completo | Accesso completo |
|
||||
| **Fatturatore** | Nessun accesso | Accesso completo | Nessun accesso |
|
||||
| **Membro** | Accesso completo | Nessun accesso | Nessun accesso |
|
||||
|
||||
**Owner** and **member can list the users** and check their **roles** (biller cannot).
|
||||
**Il Proprietario** e **il membro possono elencare gli utenti** e controllare i loro **ruoli** (il fatturatore non può).
|
||||
|
||||
## Access
|
||||
## Accesso
|
||||
|
||||
### Username + password (MFA)
|
||||
### Nome utente + password (MFA)
|
||||
|
||||
As in most of the platforms, in order to access to the GUI you can use a set of **valid username and password** to **access** the cloud **resources**. Once logged in you can see **all the teams you are part** of in [https://cloud.digitalocean.com/account/profile](https://cloud.digitalocean.com/account/profile).\
|
||||
And you can see all your activity in [https://cloud.digitalocean.com/account/activity](https://cloud.digitalocean.com/account/activity).
|
||||
Come nella maggior parte delle piattaforme, per accedere alla GUI puoi utilizzare un insieme di **nome utente e password validi** per **accedere** alle **risorse** cloud. Una volta effettuato l'accesso, puoi vedere **tutti i team di cui fai parte** in [https://cloud.digitalocean.com/account/profile](https://cloud.digitalocean.com/account/profile).\
|
||||
E puoi vedere tutta la tua attività in [https://cloud.digitalocean.com/account/activity](https://cloud.digitalocean.com/account/activity).
|
||||
|
||||
**MFA** can be **enabled** in a user and **enforced** for all the users in a **team** to access the team.
|
||||
**MFA** può essere **abilitato** per un utente e **imposto** per tutti gli utenti in un **team** per accedere al team.
|
||||
|
||||
### API keys
|
||||
|
||||
In order to use the API, users can **generate API keys**. These will always come with Read permissions but **Write permission are optional**.\
|
||||
The API keys look like this:
|
||||
### Chiavi API
|
||||
|
||||
Per utilizzare l'API, gli utenti possono **generare chiavi API**. Queste avranno sempre permessi di lettura, ma **i permessi di scrittura sono opzionali**.\
|
||||
Le chiavi API hanno questo aspetto:
|
||||
```
|
||||
dop_v1_1946a92309d6240274519275875bb3cb03c1695f60d47eaa1532916502361836
|
||||
```
|
||||
|
||||
The cli tool is [**doctl**](https://github.com/digitalocean/doctl#installing-doctl). Initialise it (you need a token) with:
|
||||
|
||||
Il tool cli è [**doctl**](https://github.com/digitalocean/doctl#installing-doctl). Inizializzalo (hai bisogno di un token) con:
|
||||
```bash
|
||||
doctl auth init # Asks for the token
|
||||
doctl auth init --context my-context # Login with a different token
|
||||
doctl auth list # List accounts
|
||||
```
|
||||
Per impostazione predefinita, questo token verrà scritto in chiaro su Mac in `/Users/<username>/Library/Application Support/doctl/config.yaml`.
|
||||
|
||||
By default this token will be written in clear-text in Mac in `/Users/<username>/Library/Application Support/doctl/config.yaml`.
|
||||
### Chiavi di accesso agli Spaces
|
||||
|
||||
### Spaces access keys
|
||||
|
||||
These are keys that give **access to the Spaces** (like S3 in AWS or Storage in GCP).
|
||||
|
||||
They are composed by a **name**, a **keyid** and a **secret**. An example could be:
|
||||
Queste sono chiavi che danno **accesso agli Spaces** (come S3 in AWS o Storage in GCP).
|
||||
|
||||
Sono composte da un **nome**, un **keyid** e un **secret**. Un esempio potrebbe essere:
|
||||
```
|
||||
Name: key-example
|
||||
Keyid: DO00ZW4FABSGZHAABGFX
|
||||
Secret: 2JJ0CcQZ56qeFzAJ5GFUeeR4Dckarsh6EQSLm87MKlM
|
||||
```
|
||||
|
||||
### OAuth Application
|
||||
|
||||
OAuth applications can be granted **access over Digital Ocean**.
|
||||
Le applicazioni OAuth possono essere concesse **accesso su Digital Ocean**.
|
||||
|
||||
It's possible to **create OAuth applications** in [https://cloud.digitalocean.com/account/api/applications](https://cloud.digitalocean.com/account/api/applications) and check all **allowed OAuth applications** in [https://cloud.digitalocean.com/account/api/access](https://cloud.digitalocean.com/account/api/access).
|
||||
È possibile **creare applicazioni OAuth** in [https://cloud.digitalocean.com/account/api/applications](https://cloud.digitalocean.com/account/api/applications) e controllare tutte le **applicazioni OAuth autorizzate** in [https://cloud.digitalocean.com/account/api/access](https://cloud.digitalocean.com/account/api/access).
|
||||
|
||||
### SSH Keys
|
||||
|
||||
It's possible to add **SSH keys to a Digital Ocean Team** from the **console** in [https://cloud.digitalocean.com/account/security](https://cloud.digitalocean.com/account/security).
|
||||
È possibile aggiungere **chiavi SSH a un Team di Digital Ocean** dalla **console** in [https://cloud.digitalocean.com/account/security](https://cloud.digitalocean.com/account/security).
|
||||
|
||||
This way, if you create a **new droplet, the SSH key will be set** on it and you will be able to **login via SSH** without password (note that newly [uploaded SSH keys aren't set in already existent droplets for security reasons](https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/to-existing-droplet/)).
|
||||
In questo modo, se crei un **nuovo droplet, la chiave SSH sarà impostata** su di esso e potrai **accedere via SSH** senza password (nota che le [chiavi SSH caricate di recente non sono impostate nei droplet già esistenti per motivi di sicurezza](https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/to-existing-droplet/)).
|
||||
|
||||
### Functions Authentication Token
|
||||
|
||||
The way **to trigger a function via REST API** (always enabled, it's the method the cli uses) is by triggering a request with an **authentication token** like:
|
||||
|
||||
Il modo **per attivare una funzione tramite REST API** (sempre abilitato, è il metodo utilizzato dal cli) è attivare una richiesta con un **token di autenticazione** come:
|
||||
```bash
|
||||
curl -X POST "https://faas-lon1-129376a7.doserverless.co/api/v1/namespaces/fn-c100c012-65bf-4040-1230-2183764b7c23/actions/functionname?blocking=true&result=true" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Basic MGU0NTczZGQtNjNiYS00MjZlLWI2YjctODk0N2MyYTA2NGQ4OkhwVEllQ2t4djNZN2x6YjJiRmFGc1FERXBySVlWa1lEbUxtRE1aRTludXA1UUNlU2VpV0ZGNjNqWnVhYVdrTFg="
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Basic MGU0NTczZGQtNjNiYS00MjZlLWI2YjctODk0N2MyYTA2NGQ4OkhwVEllQ2t4djNZN2x6YjJiRmFGc1FERXBySVlWa1lEbUxtRE1aRTludXA1UUNlU2VpV0ZGNjNqWnVhYVdrTFg="
|
||||
```
|
||||
|
||||
## Logs
|
||||
|
||||
### User logs
|
||||
|
||||
The **logs of a user** can be found in [**https://cloud.digitalocean.com/account/activity**](https://cloud.digitalocean.com/account/activity)
|
||||
I **log di un utente** possono essere trovati in [**https://cloud.digitalocean.com/account/activity**](https://cloud.digitalocean.com/account/activity)
|
||||
|
||||
### Team logs
|
||||
|
||||
The **logs of a team** can be found in [**https://cloud.digitalocean.com/account/security**](https://cloud.digitalocean.com/account/security)
|
||||
I **log di un team** possono essere trovati in [**https://cloud.digitalocean.com/account/security**](https://cloud.digitalocean.com/account/security)
|
||||
|
||||
## References
|
||||
|
||||
- [https://docs.digitalocean.com/products/teams/how-to/manage-membership/](https://docs.digitalocean.com/products/teams/how-to/manage-membership/)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
# DO - Permissions for a Pentest
|
||||
# DO - Permessi per un Pentest
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
DO doesn't support granular permissions. So the **minimum role** that allows a user to review all the resources is **member**. A pentester with this permission will be able to perform harmful activities, but it's what it's.
|
||||
DO non supporta permessi granulari. Quindi il **ruolo minimo** che consente a un utente di rivedere tutte le risorse è **membro**. Un pentester con questo permesso sarà in grado di eseguire attività dannose, ma è quello che è.
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# DO - Services
|
||||
# DO - Servizi
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
DO offers a few services, here you can find how to **enumerate them:**
|
||||
DO offre alcuni servizi, qui puoi trovare come **enumerarli:**
|
||||
|
||||
- [**Apps**](do-apps.md)
|
||||
- [**Container Registry**](do-container-registry.md)
|
||||
@@ -17,7 +17,3 @@ DO offers a few services, here you can find how to **enumerate them:**
|
||||
- [**Volumes**](do-volumes.md)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,18 +2,17 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Informazioni di base
|
||||
|
||||
[From the docs:](https://docs.digitalocean.com/glossary/app-platform/) App Platform is a Platform-as-a-Service (PaaS) offering that allows developers to **publish code directly to DigitalOcean** servers without worrying about the underlying infrastructure.
|
||||
[Dal documento:](https://docs.digitalocean.com/glossary/app-platform/) App Platform è un'offerta di Platform-as-a-Service (PaaS) che consente agli sviluppatori di **pubblicare codice direttamente sui server DigitalOcean** senza preoccuparsi dell'infrastruttura sottostante.
|
||||
|
||||
You can run code directly from **github**, **gitlab**, **docker hub**, **DO container registry** (or a sample app).
|
||||
Puoi eseguire codice direttamente da **github**, **gitlab**, **docker hub**, **DO container registry** (o un'app di esempio).
|
||||
|
||||
When defining an **env var** you can set it as **encrypted**. The only way to **retreive** its value is executing **commands** inside the host runnig the app.
|
||||
Quando definisci una **env var** puoi impostarla come **criptata**. L'unico modo per **recuperare** il suo valore è eseguire **comandi** all'interno dell'host che esegue l'app.
|
||||
|
||||
An **App URL** looks like this [https://dolphin-app-2tofz.ondigitalocean.app](https://dolphin-app-2tofz.ondigitalocean.app)
|
||||
|
||||
### Enumeration
|
||||
Un'**App URL** appare così [https://dolphin-app-2tofz.ondigitalocean.app](https://dolphin-app-2tofz.ondigitalocean.app)
|
||||
|
||||
### Enumerazione
|
||||
```bash
|
||||
doctl apps list # You should get URLs here
|
||||
doctl apps spec get <app-id> # Get yaml (including env vars, might be encrypted)
|
||||
@@ -21,18 +20,13 @@ doctl apps logs <app-id> # Get HTTP logs
|
||||
doctl apps list-alerts <app-id> # Get alerts
|
||||
doctl apps list-regions # Get available regions and the default one
|
||||
```
|
||||
|
||||
> [!CAUTION]
|
||||
> **Apps doesn't have metadata endpoint**
|
||||
> **Le app non hanno un endpoint dei metadati**
|
||||
|
||||
### RCE & Encrypted env vars
|
||||
### RCE & variabili d'ambiente criptate
|
||||
|
||||
To execute code directly in the container executing the App you will need **access to the console** and go to **`https://cloud.digitalocean.com/apps/<app-id>/console/<app-name>`**.
|
||||
Per eseguire codice direttamente nel container che esegue l'App, avrai bisogno di **accesso alla console** e andare su **`https://cloud.digitalocean.com/apps/<app-id>/console/<app-name>`**.
|
||||
|
||||
That will give you a **shell**, and just executing **`env`** you will be able to see **all the env vars** (including the ones defined as **encrypted**).
|
||||
Questo ti darà una **shell**, e semplicemente eseguendo **`env`** potrai vedere **tutte le variabili d'ambiente** (incluso quelle definite come **criptate**).
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,14 +2,13 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Informazioni di base
|
||||
|
||||
DigitalOcean Container Registry is a service provided by DigitalOcean that **allows you to store and manage Docker images**. It is a **private** registry, which means that the images that you store in it are only accessible to you and users that you grant access to. This allows you to securely store and manage your Docker images, and use them to deploy containers on DigitalOcean or any other environment that supports Docker.
|
||||
DigitalOcean Container Registry è un servizio fornito da DigitalOcean che **ti consente di memorizzare e gestire le immagini Docker**. È un registro **privato**, il che significa che le immagini che memorizzi in esso sono accessibili solo a te e agli utenti a cui concedi accesso. Questo ti consente di memorizzare e gestire in modo sicuro le tue immagini Docker e di utilizzarle per distribuire contenitori su DigitalOcean o in qualsiasi altro ambiente che supporti Docker.
|
||||
|
||||
When creating a Container Registry it's possible to **create a secret with pull images access (read) over it in all the namespaces** of Kubernetes clusters.
|
||||
|
||||
### Connection
|
||||
Quando crei un Container Registry è possibile **creare un segreto con accesso alle immagini pull (lettura) su di esso in tutti i namespace** dei cluster Kubernetes.
|
||||
|
||||
### Connessione
|
||||
```bash
|
||||
# Using doctl
|
||||
doctl registry login
|
||||
@@ -19,9 +18,7 @@ docker login registry.digitalocean.com
|
||||
Username: <paste-api-token>
|
||||
Password: <paste-api-token>
|
||||
```
|
||||
|
||||
### Enumeration
|
||||
|
||||
### Enumerazione
|
||||
```bash
|
||||
# Get creds to access the registry from the API
|
||||
doctl registry docker-config
|
||||
@@ -29,9 +26,4 @@ doctl registry docker-config
|
||||
# List
|
||||
doctl registry repository list-v2
|
||||
```
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,22 +2,19 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Informazioni di base
|
||||
|
||||
With DigitalOcean Databases, you can easily **create and manage databases in the cloud** without having to worry about the underlying infrastructure. The service offers a variety of database options, including **MySQL**, **PostgreSQL**, **MongoDB**, and **Redis**, and provides tools for administering and monitoring your databases. DigitalOcean Databases is designed to be highly scalable, reliable, and secure, making it an ideal choice for powering modern applications and websites.
|
||||
Con i Database di DigitalOcean, puoi facilmente **creare e gestire database nel cloud** senza dover preoccuparti dell'infrastruttura sottostante. Il servizio offre una varietà di opzioni di database, tra cui **MySQL**, **PostgreSQL**, **MongoDB** e **Redis**, e fornisce strumenti per amministrare e monitorare i tuoi database. I Database di DigitalOcean sono progettati per essere altamente scalabili, affidabili e sicuri, rendendoli una scelta ideale per alimentare applicazioni e siti web moderni.
|
||||
|
||||
### Connections details
|
||||
### Dettagli delle connessioni
|
||||
|
||||
When creating a database you can select to configure it **accessible from a public network**, or just from inside a **VPC**. Moreover, it request you to **whitelist IPs that can access it** (your IPv4 can be one).
|
||||
|
||||
The **host**, **port**, **dbname**, **username**, and **password** are shown in the **console**. You can even download the AD certificate to connect securely.
|
||||
Quando crei un database puoi scegliere di configurarlo **accessibile da una rete pubblica**, o solo dall'interno di una **VPC**. Inoltre, ti richiede di **whitelistare gli IP che possono accedervi** (il tuo IPv4 può essere uno).
|
||||
|
||||
L'**host**, **porta**, **dbname**, **username** e **password** sono mostrati nella **console**. Puoi anche scaricare il certificato AD per connetterti in modo sicuro.
|
||||
```bash
|
||||
sql -h db-postgresql-ams3-90864-do-user-2700959-0.b.db.ondigitalocean.com -U doadmin -d defaultdb -p 25060
|
||||
```
|
||||
|
||||
### Enumeration
|
||||
|
||||
### Enumerazione
|
||||
```bash
|
||||
# Databse clusters
|
||||
doctl databases list
|
||||
@@ -39,9 +36,4 @@ doctl databases backups <db-id> # List backups of DB
|
||||
# Pools
|
||||
doctl databases pool list <db-id> # List pools of DB
|
||||
```
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,47 +2,46 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Informazioni di base
|
||||
|
||||
In DigitalOcean, a "droplet" is a v**irtual private server (VPS)** that can be used to host websites and applications. A droplet is a **pre-configured package of computing resources**, including a certain amount of CPU, memory, and storage, that can be quickly and easily deployed on DigitalOcean's cloud infrastructure.
|
||||
In DigitalOcean, un "droplet" è un v**irtual private server (VPS)** che può essere utilizzato per ospitare siti web e applicazioni. Un droplet è un **pacchetto preconfigurato di risorse di calcolo**, che include una certa quantità di CPU, memoria e archiviazione, che può essere rapidamente e facilmente distribuito sull'infrastruttura cloud di DigitalOcean.
|
||||
|
||||
You can select from **common OS**, to **applications** already running (such as WordPress, cPanel, Laravel...), or even upload and use **your own images**.
|
||||
Puoi scegliere tra **sistemi operativi comuni**, applicazioni già in esecuzione (come WordPress, cPanel, Laravel...), o persino caricare e utilizzare **le tue immagini**.
|
||||
|
||||
Droplets support **User data scripts**.
|
||||
I droplet supportano **script di dati utente**.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Difference between a snapshot and a backup</summary>
|
||||
<summary>Differenza tra uno snapshot e un backup</summary>
|
||||
|
||||
In DigitalOcean, a snapshot is a point-in-time copy of a Droplet's disk. It captures the state of the Droplet's disk at the time the snapshot was taken, including the operating system, installed applications, and all the files and data on the disk.
|
||||
In DigitalOcean, uno snapshot è una copia a un determinato momento del disco di un Droplet. Cattura lo stato del disco del Droplet al momento in cui è stato effettuato lo snapshot, inclusi il sistema operativo, le applicazioni installate e tutti i file e i dati sul disco.
|
||||
|
||||
Snapshots can be used to create new Droplets with the same configuration as the original Droplet, or to restore a Droplet to the state it was in when the snapshot was taken. Snapshots are stored on DigitalOcean's object storage service, and they are incremental, meaning that only the changes since the last snapshot are stored. This makes them efficient to use and cost-effective to store.
|
||||
Gli snapshot possono essere utilizzati per creare nuovi Droplet con la stessa configurazione del Droplet originale, o per ripristinare un Droplet allo stato in cui si trovava quando è stato effettuato lo snapshot. Gli snapshot sono memorizzati nel servizio di archiviazione a oggetti di DigitalOcean e sono incrementali, il che significa che vengono memorizzate solo le modifiche dall'ultimo snapshot. Questo li rende efficienti da utilizzare e convenienti da archiviare.
|
||||
|
||||
On the other hand, a backup is a complete copy of a Droplet, including the operating system, installed applications, files, and data, as well as the Droplet's settings and metadata. Backups are typically performed on a regular schedule, and they capture the entire state of a Droplet at a specific point in time.
|
||||
D'altra parte, un backup è una copia completa di un Droplet, inclusi il sistema operativo, le applicazioni installate, i file e i dati, così come le impostazioni e i metadati del Droplet. I backup vengono solitamente eseguiti con una pianificazione regolare e catturano l'intero stato di un Droplet in un momento specifico.
|
||||
|
||||
Unlike snapshots, backups are stored in a compressed and encrypted format, and they are transferred off of DigitalOcean's infrastructure to a remote location for safekeeping. This makes backups ideal for disaster recovery, as they provide a complete copy of a Droplet that can be restored in the event of data loss or other catastrophic events.
|
||||
A differenza degli snapshot, i backup sono memorizzati in un formato compresso e crittografato e vengono trasferiti al di fuori dell'infrastruttura di DigitalOcean in una posizione remota per la conservazione. Questo rende i backup ideali per il ripristino in caso di disastro, poiché forniscono una copia completa di un Droplet che può essere ripristinata in caso di perdita di dati o altri eventi catastrofici.
|
||||
|
||||
In summary, snapshots are point-in-time copies of a Droplet's disk, while backups are complete copies of a Droplet, including its settings and metadata. Snapshots are stored on DigitalOcean's object storage service, while backups are transferred off of DigitalOcean's infrastructure to a remote location. Both snapshots and backups can be used to restore a Droplet, but snapshots are more efficient to use and store, while backups provide a more comprehensive backup solution for disaster recovery.
|
||||
In sintesi, gli snapshot sono copie a un determinato momento del disco di un Droplet, mentre i backup sono copie complete di un Droplet, inclusi le sue impostazioni e metadati. Gli snapshot sono memorizzati nel servizio di archiviazione a oggetti di DigitalOcean, mentre i backup vengono trasferiti al di fuori dell'infrastruttura di DigitalOcean in una posizione remota. Sia gli snapshot che i backup possono essere utilizzati per ripristinare un Droplet, ma gli snapshot sono più efficienti da utilizzare e archiviare, mentre i backup forniscono una soluzione di backup più completa per il ripristino in caso di disastro.
|
||||
|
||||
</details>
|
||||
|
||||
### Authentication
|
||||
### Autenticazione
|
||||
|
||||
For authentication it's possible to **enable SSH** through username and **password** (password defined when the droplet is created). Or **select one or more of the uploaded SSH keys**.
|
||||
Per l'autenticazione è possibile **abilitare SSH** tramite nome utente e **password** (password definita quando il droplet viene creato). Oppure **selezionare una o più delle chiavi SSH caricate**.
|
||||
|
||||
### Firewall
|
||||
|
||||
> [!CAUTION]
|
||||
> By default **droplets are created WITHOUT A FIREWALL** (not like in oder clouds such as AWS or GCP). So if you want DO to protect the ports of the droplet (VM), you need to **create it and attach it**.
|
||||
> Per impostazione predefinita **i droplet vengono creati SENZA UN FIREWALL** (non come in altre nuvole come AWS o GCP). Quindi, se desideri che DO protegga le porte del droplet (VM), devi **crearlo e allegarlo**.
|
||||
|
||||
More info in:
|
||||
Ulteriori informazioni in:
|
||||
|
||||
{{#ref}}
|
||||
do-networking.md
|
||||
{{#endref}}
|
||||
|
||||
### Enumeration
|
||||
|
||||
### Enumerazione
|
||||
```bash
|
||||
# VMs
|
||||
doctl compute droplet list # IPs will appear here
|
||||
@@ -68,18 +67,13 @@ doctl compute certificate list
|
||||
# Snapshots
|
||||
doctl compute snapshot list
|
||||
```
|
||||
|
||||
> [!CAUTION]
|
||||
> **Droplets have metadata endpoints**, but in DO there **isn't IAM** or things such as role from AWS or service accounts from GCP.
|
||||
> **I Droplets hanno endpoint di metadata**, ma in DO **non c'è IAM** o cose come i ruoli di AWS o gli account di servizio di GCP.
|
||||
|
||||
### RCE
|
||||
|
||||
With access to the console it's possible to **get a shell inside the droplet** accessing the URL: **`https://cloud.digitalocean.com/droplets/<droplet-id>/terminal/ui/`**
|
||||
Con accesso alla console è possibile **ottenere una shell all'interno del droplet** accedendo all'URL: **`https://cloud.digitalocean.com/droplets/<droplet-id>/terminal/ui/`**
|
||||
|
||||
It's also possible to launch a **recovery console** to run commands inside the host accessing a recovery console in **`https://cloud.digitalocean.com/droplets/<droplet-id>/console`**(but in this case you will need to know the root password).
|
||||
È anche possibile avviare una **console di recupero** per eseguire comandi all'interno dell'host accedendo a una console di recupero in **`https://cloud.digitalocean.com/droplets/<droplet-id>/console`** (ma in questo caso sarà necessario conoscere la password di root).
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,39 +2,34 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Informazioni di base
|
||||
|
||||
DigitalOcean Functions, also known as "DO Functions," is a serverless computing platform that lets you **run code without having to worry about the underlying infrastructure**. With DO Functions, you can write and deploy your code as "functions" that can be **triggered** via **API**, **HTTP requests** (if enabled) or **cron**. These functions are executed in a fully managed environment, so you **don't need to worry** about scaling, security, or maintenance.
|
||||
DigitalOcean Functions, conosciuto anche come "DO Functions," è una piattaforma di computing serverless che ti consente di **eseguire codice senza dover preoccuparti dell'infrastruttura sottostante**. Con DO Functions, puoi scrivere e distribuire il tuo codice come "funzioni" che possono essere **attivate** tramite **API**, **richieste HTTP** (se abilitate) o **cron**. Queste funzioni vengono eseguite in un ambiente completamente gestito, quindi **non devi preoccuparti** di scalabilità, sicurezza o manutenzione.
|
||||
|
||||
In DO, to create a function first you need to **create a namespace** which will be **grouping functions**.\
|
||||
Inside the namespace you can then create a function.
|
||||
In DO, per creare una funzione devi prima **creare uno spazio dei nomi** che sarà **un gruppo di funzioni**.\
|
||||
All'interno dello spazio dei nomi puoi quindi creare una funzione.
|
||||
|
||||
### Triggers
|
||||
|
||||
The way **to trigger a function via REST API** (always enabled, it's the method the cli uses) is by triggering a request with an **authentication token** like:
|
||||
### Attivatori
|
||||
|
||||
Il modo **per attivare una funzione tramite REST API** (sempre abilitato, è il metodo utilizzato dal cli) è attivare una richiesta con un **token di autenticazione** come:
|
||||
```bash
|
||||
curl -X POST "https://faas-lon1-129376a7.doserverless.co/api/v1/namespaces/fn-c100c012-65bf-4040-1230-2183764b7c23/actions/functionname?blocking=true&result=true" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Basic MGU0NTczZGQtNjNiYS00MjZlLWI2YjctODk0N2MyYTA2NGQ4OkhwVEllQ2t4djNZN2x6YjJiRmFGc1FERXBySVlWa1lEbUxtRE1aRTludXA1UUNlU2VpV0ZGNjNqWnVhYVdrTFg="
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Basic MGU0NTczZGQtNjNiYS00MjZlLWI2YjctODk0N2MyYTA2NGQ4OkhwVEllQ2t4djNZN2x6YjJiRmFGc1FERXBySVlWa1lEbUxtRE1aRTludXA1UUNlU2VpV0ZGNjNqWnVhYVdrTFg="
|
||||
```
|
||||
|
||||
To see how is the **`doctl`** cli tool getting this token (so you can replicate it), the **following command shows the complete network trace:**
|
||||
|
||||
Per vedere come lo strumento cli **`doctl`** ottiene questo token (in modo da poterlo replicare), il **seguente comando mostra l'intera traccia di rete:**
|
||||
```bash
|
||||
doctl serverless connect --trace
|
||||
```
|
||||
|
||||
**When HTTP trigger is enabled**, a web function can be invoked through these **HTTP methods GET, POST, PUT, PATCH, DELETE, HEAD and OPTIONS**.
|
||||
**Quando il trigger HTTP è abilitato**, una funzione web può essere invocata attraverso questi **metodi HTTP GET, POST, PUT, PATCH, DELETE, HEAD e OPTIONS**.
|
||||
|
||||
> [!CAUTION]
|
||||
> In DO functions, **environment variables cannot be encrypted** (at the time of this writing).\
|
||||
> I couldn't find any way to read them from the CLI but from the console it's straight forward.
|
||||
> Nelle funzioni DO, **le variabili di ambiente non possono essere criptate** (al momento della scrittura di questo documento).\
|
||||
> Non sono riuscito a trovare alcun modo per leggerle dalla CLI, ma dalla console è semplice.
|
||||
|
||||
**Functions URLs** look like this: `https://<random>.doserverless.co/api/v1/web/<namespace-id>/default/<function-name>`
|
||||
|
||||
### Enumeration
|
||||
**Gli URL delle funzioni** sembrano così: `https://<random>.doserverless.co/api/v1/web/<namespace-id>/default/<function-name>`
|
||||
|
||||
### Enumerazione
|
||||
```bash
|
||||
# Namespace
|
||||
doctl serverless namespaces list
|
||||
@@ -53,12 +48,7 @@ doctl serverless activations result <activation-id> # get only the response resu
|
||||
|
||||
# I couldn't find any way to get the env variables form the CLI
|
||||
```
|
||||
|
||||
> [!CAUTION]
|
||||
> There **isn't metadata endpoint** from the Functions sandbox.
|
||||
> Non **c'è un endpoint di metadata** dal sandbox delle Functions.
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,22 +2,16 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Informazioni di base
|
||||
|
||||
DigitalOcean Images are **pre-built operating system or application images** that can be used to create new Droplets (virtual machines) on DigitalOcean. They are similar to virtual machine templates, and they allow you to **quickly and easily create new Droplets with the operating system** and applications that you need.
|
||||
Le immagini di DigitalOcean sono **immagini di sistema operativo o applicazione preconfigurate** che possono essere utilizzate per creare nuovi Droplet (macchine virtuali) su DigitalOcean. Sono simili ai modelli di macchine virtuali e ti consentono di **creare rapidamente e facilmente nuovi Droplet con il sistema operativo** e le applicazioni di cui hai bisogno.
|
||||
|
||||
DigitalOcean provides a wide range of Images, including popular operating systems such as Ubuntu, CentOS, and FreeBSD, as well as pre-configured application Images such as LAMP, MEAN, and LEMP stacks. You can also create your own custom Images, or use Images from the community.
|
||||
DigitalOcean offre una vasta gamma di immagini, inclusi sistemi operativi popolari come Ubuntu, CentOS e FreeBSD, oltre a immagini di applicazioni preconfigurate come stack LAMP, MEAN e LEMP. Puoi anche creare le tue immagini personalizzate o utilizzare immagini della comunità.
|
||||
|
||||
When you create a new Droplet on DigitalOcean, you can choose an Image to use as the basis for the Droplet. This will automatically install the operating system and any pre-installed applications on the new Droplet, so you can start using it right away. Images can also be used to create snapshots and backups of your Droplets, so you can easily create new Droplets from the same configuration in the future.
|
||||
|
||||
### Enumeration
|
||||
Quando crei un nuovo Droplet su DigitalOcean, puoi scegliere un'immagine da utilizzare come base per il Droplet. Questo installerà automaticamente il sistema operativo e eventuali applicazioni preinstallate sul nuovo Droplet, così puoi iniziare a usarlo immediatamente. Le immagini possono anche essere utilizzate per creare snapshot e backup dei tuoi Droplet, così puoi facilmente creare nuovi Droplet dalla stessa configurazione in futuro.
|
||||
|
||||
### Enumerazione
|
||||
```
|
||||
doctl compute image list
|
||||
```
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,19 +2,18 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Informazioni di Base
|
||||
|
||||
### DigitalOcean Kubernetes (DOKS)
|
||||
|
||||
DOKS is a managed Kubernetes service offered by DigitalOcean. The service is designed to **deploy and manage Kubernetes clusters on DigitalOcean's platform**. The key aspects of DOKS include:
|
||||
DOKS è un servizio Kubernetes gestito offerto da DigitalOcean. Il servizio è progettato per **distribuire e gestire cluster Kubernetes sulla piattaforma di DigitalOcean**. Gli aspetti chiave di DOKS includono:
|
||||
|
||||
1. **Ease of Management**: The requirement to set up and maintain the underlying infrastructure is eliminated, simplifying the management of Kubernetes clusters.
|
||||
2. **User-Friendly Interface**: It provides an intuitive interface that facilitates the creation and administration of clusters.
|
||||
3. **Integration with DigitalOcean Services**: It seamlessly integrates with other services provided by DigitalOcean, such as Load Balancers and Block Storage.
|
||||
4. **Automatic Updates and Upgrades**: The service includes the automatic updating and upgrading of clusters to ensure they are up-to-date.
|
||||
|
||||
### Connection
|
||||
1. **Facilità di Gestione**: Il requisito di configurare e mantenere l'infrastruttura sottostante è eliminato, semplificando la gestione dei cluster Kubernetes.
|
||||
2. **Interfaccia Intuitiva**: Fornisce un'interfaccia intuitiva che facilita la creazione e l'amministrazione dei cluster.
|
||||
3. **Integrazione con i Servizi di DigitalOcean**: Si integra perfettamente con altri servizi forniti da DigitalOcean, come Load Balancers e Block Storage.
|
||||
4. **Aggiornamenti e Upgrade Automatici**: Il servizio include l'aggiornamento e l'upgrade automatico dei cluster per garantire che siano aggiornati.
|
||||
|
||||
### Connessione
|
||||
```bash
|
||||
# Generate kubeconfig from doctl
|
||||
doctl kubernetes cluster kubeconfig save <cluster-id>
|
||||
@@ -22,9 +21,7 @@ doctl kubernetes cluster kubeconfig save <cluster-id>
|
||||
# Use a kubeconfig file that you can download from the console
|
||||
kubectl --kubeconfig=/<pathtodirectory>/k8s-1-25-4-do-0-ams3-1670939911166-kubeconfig.yaml get nodes
|
||||
```
|
||||
|
||||
### Enumeration
|
||||
|
||||
### Enumerazione
|
||||
```bash
|
||||
# Get clusters
|
||||
doctl kubernetes cluster list
|
||||
@@ -35,9 +32,4 @@ doctl kubernetes cluster node-pool list <cluster-id>
|
||||
# Get DO resources used by the cluster
|
||||
doctl kubernetes cluster list-associated-resources <cluster-id>
|
||||
```
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,48 +2,34 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
### Domains
|
||||
|
||||
### Domini
|
||||
```bash
|
||||
doctl compute domain list
|
||||
doctl compute domain records list <domain>
|
||||
# You can also create records
|
||||
```
|
||||
|
||||
### Reserverd IPs
|
||||
|
||||
### IP riservati
|
||||
```bash
|
||||
doctl compute reserved-ip list
|
||||
doctl compute reserved-ip-action unassign <ip>
|
||||
```
|
||||
|
||||
### Load Balancers
|
||||
|
||||
### Bilanciatori di Carico
|
||||
```bash
|
||||
doctl compute load-balancer list
|
||||
doctl compute load-balancer remove-droplets <id> --droplet-ids 12,33
|
||||
doctl compute load-balancer add-forwarding-rules <id> --forwarding-rules entry_protocol:tcp,entry_port:3306,...
|
||||
```
|
||||
|
||||
### VPC
|
||||
|
||||
```
|
||||
doctl vpcs list
|
||||
```
|
||||
|
||||
### Firewall
|
||||
|
||||
> [!CAUTION]
|
||||
> By default **droplets are created WITHOUT A FIREWALL** (not like in oder clouds such as AWS or GCP). So if you want DO to protect the ports of the droplet (VM), you need to **create it and attach it**.
|
||||
|
||||
> Per impostazione predefinita **i droplet vengono creati SENZA UN FIREWALL** (non come in altre nuvole come AWS o GCP). Quindi, se desideri che DO protegga le porte del droplet (VM), devi **crearlo e allegarlo**.
|
||||
```bash
|
||||
doctl compute firewall list
|
||||
doctl compute firewall list-by-droplet <droplet-id>
|
||||
doctl compute firewall remove-droplets <fw-id> --droplet-ids <droplet-id>
|
||||
```
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,27 +1,21 @@
|
||||
# DO - Projects
|
||||
# DO - Progetti
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Informazioni di Base
|
||||
|
||||
> project is just a container for all the **services** (droplets, spaces, databases, kubernetes...) **running together inside of it**.\
|
||||
> For more info check:
|
||||
> un progetto è semplicemente un contenitore per tutti i **servizi** (droplets, spaces, databases, kubernetes...) **che funzionano insieme al suo interno**.\
|
||||
> Per ulteriori informazioni controlla:
|
||||
|
||||
{{#ref}}
|
||||
../do-basic-information.md
|
||||
{{#endref}}
|
||||
|
||||
### Enumeration
|
||||
|
||||
It's possible to **enumerate all the projects a user have access to** and all the resources that are running inside a project very easily:
|
||||
### Enumerazione
|
||||
|
||||
È possibile **enumerare tutti i progetti a cui un utente ha accesso** e tutte le risorse che stanno funzionando all'interno di un progetto molto facilmente:
|
||||
```bash
|
||||
doctl projects list # Get projects
|
||||
doctl projects resources list <proj-id> # Get all the resources of a project
|
||||
```
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,25 +2,24 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Informazioni di base
|
||||
|
||||
DigitalOcean Spaces are **object storage services**. They allow users to **store and serve large amounts of data**, such as images and other files, in a scalable and cost-effective way. Spaces can be accessed via the DigitalOcean control panel, or using the DigitalOcean API, and are integrated with other DigitalOcean services such as Droplets (virtual private servers) and Load Balancers.
|
||||
DigitalOcean Spaces sono **servizi di archiviazione oggetti**. Consentono agli utenti di **archiviare e servire grandi quantità di dati**, come immagini e altri file, in modo scalabile ed economico. Gli Spaces possono essere accessibili tramite il pannello di controllo di DigitalOcean o utilizzando l'API di DigitalOcean, e sono integrati con altri servizi di DigitalOcean come Droplets (server virtuali) e Load Balancers.
|
||||
|
||||
### Access
|
||||
### Accesso
|
||||
|
||||
Spaces can be **public** (anyone can access them from the Internet) or **private** (only authorised users). To access the files from a private space outside of the Control Panel, we need to generate an **access key** and **secret**. These are a pair of random tokens that serve as a **username** and **password** to grant access to your Space.
|
||||
Gli Spaces possono essere **pubblici** (chiunque può accedervi da Internet) o **privati** (solo utenti autorizzati). Per accedere ai file da uno spazio privato al di fuori del Pannello di Controllo, dobbiamo generare una **chiave di accesso** e un **segreto**. Questi sono una coppia di token casuali che fungono da **nome utente** e **password** per concedere accesso al tuo Space.
|
||||
|
||||
A **URL of a space** looks like this: **`https://uniqbucketname.fra1.digitaloceanspaces.com/`**\
|
||||
Note the **region** as **subdomain**.
|
||||
Un **URL di uno spazio** appare così: **`https://uniqbucketname.fra1.digitaloceanspaces.com/`**\
|
||||
Nota la **regione** come **sottodominio**.
|
||||
|
||||
Even if the **space** is **public**, **files** **inside** of it can be **private** (you will be able to access them only with credentials).
|
||||
Anche se lo **spazio** è **pubblico**, i **file** **al suo interno** possono essere **privati** (potrai accedervi solo con le credenziali).
|
||||
|
||||
However, **even** if the file is **private**, from the console it's possible to share a file with a link such as `https://fra1.digitaloceanspaces.com/uniqbucketname/filename?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=DO00PL3RA373GBV4TRF7%2F20221213%2Ffra1%2Fs3%2Faws4_request&X-Amz-Date=20221213T121017Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6a183dbc42453a8d30d7cd2068b66aeb9ebc066123629d44a8108115def975bc` for a period of time:
|
||||
Tuttavia, **anche** se il file è **privato**, dalla console è possibile condividere un file con un link come `https://fra1.digitaloceanspaces.com/uniqbucketname/filename?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=DO00PL3RA373GBV4TRF7%2F20221213%2Ffra1%2Fs3%2Faws4_request&X-Amz-Date=20221213T121017Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6a183dbc42453a8d30d7cd2068b66aeb9ebc066123629d44a8108115def975bc` per un periodo di tempo:
|
||||
|
||||
<figure><img src="../../../images/image (277).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Enumeration
|
||||
|
||||
### Enumerazione
|
||||
```bash
|
||||
# Unauthenticated
|
||||
## Note how the region is specified in the endpoint
|
||||
@@ -42,9 +41,4 @@ aws s3 ls --endpoint=https://fra1.digitaloceanspaces.com s3://uniqbucketname
|
||||
|
||||
## It's also possible to generate authorized access to buckets from the API
|
||||
```
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,18 +2,12 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Informazioni di base
|
||||
|
||||
DigitalOcean volumes are **block storage** devices that can be **attached to and detached from Droplets**. Volumes are useful for **storing data** that needs to **persist** independently of the Droplet itself, such as databases or file storage. They can be resized, attached to multiple Droplets, and snapshot for backups.
|
||||
|
||||
### Enumeration
|
||||
I volumi di DigitalOcean sono dispositivi di **storage a blocchi** che possono essere **collegati e scollegati dai Droplet**. I volumi sono utili per **memorizzare dati** che devono **persistere** indipendentemente dal Droplet stesso, come database o storage di file. Possono essere ridimensionati, collegati a più Droplet e snapshot per i backup.
|
||||
|
||||
### Enumerazione
|
||||
```
|
||||
compute volume list
|
||||
```
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user