AWS - Datapipeline Privesc
datapipeline
Pour plus d'informations sur datapipeline, consultez :
pageAWS - DataPipeline, CodePipeline & CodeCommit Enumiam:PassRole
, datapipeline:CreatePipeline
, datappipeline:PutPipelineDefinition
, datapipeline:ActivatePipeline
iam:PassRole
, datapipeline:CreatePipeline
, datappipeline:PutPipelineDefinition
, datapipeline:ActivatePipeline
Les utilisateurs avec ces autorisations peuvent élever leurs privilèges en créant un Data Pipeline pour exécuter des commandes arbitraires en utilisant les autorisations du rôle attribué :
Après la création du pipeline, l'attaquant met à jour sa définition pour dicter des actions spécifiques ou des créations de ressources :
Notez que le rôle dans les lignes 14, 15 et 27 doit être un rôle pouvant être assumé par datapipeline.amazonaws.com et le rôle dans la ligne 28 doit être un rôle pouvant être assumé par ec2.amazonaws.com avec un profil d'instance EC2.
De plus, l'instance EC2 n'aura accès qu'au rôle pouvant être assumé par l'instance EC2 (vous ne pourrez voler que celui-ci).
```bash aws datapipeline put-pipeline-definition --pipeline-id \ --pipeline-definition file:///pipeline/definition.json ``` Le **fichier de définition du pipeline, créé par l'attaquant, inclut des directives pour exécuter des commandes** ou créer des ressources via l'API AWS, exploitant les autorisations de rôle de Data Pipeline pour potentiellement obtenir des privilèges supplémentaires.
Impact potentiel : Élévation directe des privilèges vers le rôle de service ec2 spécifié.
Références
Dernière mise à jour