# DO - Droplets

{{#include ../../../banners/hacktricks-training.md}}

## Osnovne informacije

U DigitalOcean-u, "droplet" je v**irtualni privatni server (VPS)** koji se može koristiti za hostovanje veb sajtova i aplikacija. Droplet je **prekonfigurisani paket računarskih resursa**, uključujući određenu količinu CPU-a, memorije i skladišta, koji se može brzo i lako implementirati na DigitalOcean-ovoj cloud infrastrukturi.

Možete birati između **uobičajenih OS**, do **aplikacija** koje već rade (kao što su WordPress, cPanel, Laravel...), ili čak otpremiti i koristiti **svoje slike**.

Droplets podržavaju **User data scripts**.

<details>

<summary>Razlika između snimka i rezervne kopije</summary>

U DigitalOcean-u, snimak je tačka u vremenu kopija diska Dropleta. Započinje stanje diska Dropleta u trenutku kada je snimak napravljen, uključujući operativni sistem, instalirane aplikacije i sve datoteke i podatke na disku.

Snimci se mogu koristiti za kreiranje novih Dropleta sa istom konfiguracijom kao originalni Droplet, ili za vraćanje Dropleta u stanje u kojem je bio kada je snimak napravljen. Snimci se čuvaju na DigitalOcean-ovoj usluzi za skladištenje objekata, i oni su inkrementalni, što znači da se čuvaju samo promene od poslednjeg snimka. Ovo ih čini efikasnim za korišćenje i isplativim za skladištenje.

S druge strane, rezervna kopija je potpuna kopija Dropleta, uključujući operativni sistem, instalirane aplikacije, datoteke i podatke, kao i postavke i metapodatke Dropleta. Rezervne kopije se obično vrše prema redovnom rasporedu, i one hvataju celo stanje Dropleta u određenom trenutku.

Za razliku od snimaka, rezervne kopije se čuvaju u komprimovanom i enkriptovanom formatu, i one se prenose sa DigitalOcean-ove infrastrukture na udaljenu lokaciju radi čuvanja. Ovo čini rezervne kopije idealnim za oporavak od katastrofa, jer pružaju potpunu kopiju Dropleta koja se može obnoviti u slučaju gubitka podataka ili drugih katastrofalnih događaja.

Ukratko, snimci su tačke u vremenu kopije diska Dropleta, dok su rezervne kopije potpune kopije Dropleta, uključujući njegove postavke i metapodatke. Snimci se čuvaju na DigitalOcean-ovoj usluzi za skladištenje objekata, dok se rezervne kopije prenose sa DigitalOcean-ove infrastrukture na udaljenu lokaciju. I snimci i rezervne kopije se mogu koristiti za vraćanje Dropleta, ali su snimci efikasniji za korišćenje i skladištenje, dok rezervne kopije pružaju sveobuhvatnije rešenje za oporavak od katastrofa.

</details>

### Autentifikacija

Za autentifikaciju je moguće **omogućiti SSH** putem korisničkog imena i **lozinke** (lozinka definisana prilikom kreiranja dropleta). Ili **izabrati jedan ili više otpremljenih SSH ključeva**.

### Firewall

> [!CAUTION]
> Po defaultu **droplets se kreiraju BEZ FIREWALL-a** (nije kao u drugim cloud-ovima kao što su AWS ili GCP). Dakle, ako želite da DO zaštiti portove dropleta (VM), morate **kreirati i povezati ga**.

Više informacija u:

{{#ref}}
do-networking.md
{{#endref}}

### Enumeracija
```bash
# VMs
doctl compute droplet list # IPs will appear here
doctl compute droplet backups <droplet-id>
doctl compute droplet snapshots <droplet-id>
doctl compute droplet neighbors <droplet-id> # Get network neighbors
doctl compute droplet actions <droplet-id> # Get droplet actions

# VM interesting actions
doctl compute droplet-action password-reset <droplet-id> # New password is emailed to the user
doctl compute droplet-action enable-ipv6 <droplet-id>
doctl compute droplet-action power-on <droplet-id>
doctl compute droplet-action disable-backups <droplet-id>

# SSH
doctl compute ssh <droplet-id> # This will just run SSH
doctl compute ssh-key list
doctl compute ssh-key import <key-name> --public-key-file /path/to/key.pub

# Certificates
doctl compute certificate list

# Snapshots
doctl compute snapshot list
```
> [!CAUTION]
> **Droplets imaju metapodatke**, ali u DO **nema IAM** ili stvari kao što su uloge iz AWS-a ili servisni nalozi iz GCP-a.

### RCE

Sa pristupom konzoli moguće je **dobiti shell unutar dropleta** pristupajući URL-u: **`https://cloud.digitalocean.com/droplets/<droplet-id>/terminal/ui/`**

Takođe je moguće pokrenuti **konzolu za oporavak** da biste izvršili komande unutar hosta pristupajući konzoli za oporavak na **`https://cloud.digitalocean.com/droplets/<droplet-id>/console`**(ali u ovom slučaju ćete morati da znate root lozinku).

{{#include ../../../banners/hacktricks-training.md}}
