AWS - Lightsail Privesc

Reading time: 5 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Lightsail

Für weitere Informationen zu Lightsail siehe:

AWS - Lightsail Enum

warning

Es ist wichtig zu beachten, dass Lightsail doesn’t use IAM roles belonging to the user sondern einem von AWS verwalteten Konto zugeordnet ist, daher können Sie diesen Dienst nicht für privesc missbrauchen. Allerdings könnten in diesem Dienst sensitive data wie code, API keys und database info gefunden werden.

lightsail:DownloadDefaultKeyPair

Diese Berechtigung ermöglicht es Ihnen, die SSH keys zu erhalten, um auf die instances zuzugreifen:

aws lightsail download-default-key-pair

Mögliche Auswirkung: Sensible Informationen innerhalb der Instanzen finden.

lightsail:GetInstanceAccessDetails

Diese Berechtigung ermöglicht es, SSH-Schlüssel zu erzeugen, um auf die Instanzen zuzugreifen:

bash
aws lightsail get-instance-access-details --instance-name <instance_name>

Mögliche Auswirkungen: Sensible Informationen innerhalb der Instanzen finden.

lightsail:CreateBucketAccessKey

Mit dieser Berechtigung können Sie einen Schlüssel erhalten, um auf den bucket zuzugreifen:

bash
aws lightsail create-bucket-access-key --bucket-name <name>

Mögliche Auswirkung: Sensible Informationen im Bucket finden.

lightsail:GetRelationalDatabaseMasterUserPassword

Diese Berechtigung erlaubt es Ihnen, die Zugangsdaten zu erhalten, um auf die Datenbank zuzugreifen:

bash
aws lightsail get-relational-database-master-user-password --relational-database-name <name>

Mögliche Auswirkungen: Sensible Informationen in der Datenbank finden.

lightsail:UpdateRelationalDatabase

Diese Berechtigung ermöglicht es Ihnen, das Passwort für den Zugriff auf die Datenbank zu ändern:

bash
aws lightsail update-relational-database --relational-database-name <name> --master-user-password <strong_new_password>

Wenn die Datenbank nicht öffentlich ist, könntest du sie auch mit diesen Berechtigungen öffentlich machen mit

bash
aws lightsail update-relational-database --relational-database-name <name> --publicly-accessible

Mögliche Auswirkungen: Zugriff auf sensible Informationen in der Datenbank.

lightsail:OpenInstancePublicPorts

Diese Berechtigung erlaubt das Öffnen von Ports zum Internet

bash
aws lightsail open-instance-public-ports \
--instance-name MEAN-2 \
--port-info fromPort=22,protocol=TCP,toPort=22

Potentielle Auswirkung: Zugriff auf sensible Ports.

lightsail:PutInstancePublicPorts

Diese Berechtigung erlaubt das Öffnen von Ports ins Internet. Beachte, dass der Aufruf alle geöffneten Ports schließt, die darin nicht angegeben sind.

bash
aws lightsail put-instance-public-ports \
--instance-name MEAN-2 \
--port-infos fromPort=22,protocol=TCP,toPort=22

Mögliche Auswirkung: Zugriff auf sensible Ports.

lightsail:SetResourceAccessForBucket

Diese Berechtigung ermöglicht es, einer Instanz Zugriff auf einen Bucket zu gewähren, ohne zusätzliche Anmeldeinformationen.

bash
aws set-resource-access-for-bucket \
--resource-name <instance-name> \
--bucket-name <bucket-name> \
--access allow

Mögliche Auswirkungen: Potenziell neuer Zugriff auf buckets mit sensiblen Informationen.

lightsail:UpdateBucket

Mit dieser Berechtigung könnte ein Angreifer seinem eigenen AWS-Konto Lesezugriff auf buckets gewähren oder die buckets sogar für alle öffentlich machen:

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

Mögliche Auswirkungen: Möglicher neuer Zugriff auf buckets mit sensiblen Informationen.

lightsail:UpdateContainerService

Mit dieser Berechtigung könnte ein Angreifer dem Containers-Service Zugriff auf private ECRs gewähren.

bash
aws update-container-service \
--service-name <name> \
--private-registry-access ecrImagePullerRole={isActive=boolean}

Mögliche Auswirkungen: Sensible Informationen aus einem privaten ECR abrufen

lightsail:CreateDomainEntry

Ein Angreifer mit dieser Berechtigung könnte eine Subdomain erstellen und sie auf seine eigene IP-Adresse verweisen (subdomain takeover), oder einen SPF-Eintrag erstellen, der es ihm erlaubt, E-Mails von der Domain zu spoofen, oder sogar die Hauptdomain auf seine eigene IP-Adresse setzen.

bash
aws lightsail create-domain-entry \
--domain-name example.com \
--domain-entry name=dev.example.com,type=A,target=192.0.2.0

Potential Impact: Übernahme einer Domain

lightsail:UpdateDomainEntry

Ein Angreifer mit dieser Berechtigung könnte eine Subdomain erstellen und sie auf seine eigene IP-Adresse zeigen (subdomain takeover), oder einen SPF record erstellen, der ihm erlaubt, spoof emails von der Domain zu verschicken, oder sogar die Hauptdomain auf seine eigene IP-Adresse zu setzen.

bash
aws lightsail update-domain-entry \
--domain-name example.com \
--domain-entry name=dev.example.com,type=A,target=192.0.2.0

Mögliche Auswirkung: Übernahme einer Domain

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks