Admin only? 문제
설명
We learned from our mistakes from the past. Now our bucket only allows access to one specific admin user. Or does it?
IAM Policy
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::thebigiamchallenge-admin-storage-abf1321/*"
},
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::thebigiamchallenge-admin-storage-abf1321",
"Condition": {
"StringLike": {
"s3:prefix": "files/*"
},
"ForAllValues:StringLike": {
"aws:PrincipalArn": "arn:aws:iam::133713371337:user/admin"
}
}
}
]
}
풀이
이번 문제는 "thebigiamchallenge-admin-storage-abf1321" Bucket 내 Flag 파일이 업로드 되어있고, File List를 확인할 수 있는 ListObject 권한이 ForAllValues:StringLike로 PrincipalArn을 arn:aws:iam::133713371337:user/admin을 만족하는 경우로 제한되어 있었음
ForAllValues와 ForAnyValue는 모두 단일 키 또는 다수의 키에 대한 검증을 수행할 수 있으나, 일치하는 키가 존재하지 않거나 null 데이터인 경우의 작동 방식이 다른 것을 확인
ForAllValues
- Request 내 Key 값이 없거나 빈 문자열과 같은 Null 형태의 데이터인 경우 True를 반환함 (Allow Effect를 ForAllValues와 함께 사용하지 말 것을 권고하고 있음)
ForAnyVlaue
- Request 내 Key 값이 없거나 빈 문자열과 같은 Null 형태의 데이터인 경우 False를 반환함
즉, PrincipalArn Key가 존재하지 않거나 빈 문자열로 전송할 수 있을 경우에는 True가 반환될 수 있기 때문에 서명 데이터를 Request 내 포함하지 않는 --no-sign-request 옵션을 통하여 Flag를 획득할 수 있었음
1. s3 ls 사용 시 --no-sign-request 옵션을 함께 사용하여 PrincipalArn Key를 제외하고 Request를 전송함으로써 ListObject 명령 수행
> aws s3 ls s3://thebigiamchallenge-admin-storage-abf1321/files/ --no-sign-request
2023-06-08 04:15:43 42 flag-as-admin.txt
2023-06-09 04:20:01 81889 logo-admin.png
2. 파일 다운로드 및 Flag 획득
> aws s3 cp s3://thebigiamchallenge-admin-storage-abf1321/files/flag-as-admin.txt ./
download: s3://thebigiamchallenge-admin-storage-abf1321/files/flag-as-admin.txt to .\flag-as-admin.txt
> type flag-as-admin.txt
{wiz:principal-arn-is-not-what-you-think}
Reference
'Hack > Cloud' 카테고리의 다른 글
[The Big IAM Challenge] One final push (0) | 2023.07.09 |
---|---|
[The Big IAM Challenge] Do I know you? (0) | 2023.07.09 |
[The Big IAM Challenge] Enable Push Notifications (0) | 2023.07.09 |
[The Big IAM Challenge] Google Analytics (0) | 2023.07.09 |
[The Big IAM Challenge] Buckets of Fun (0) | 2023.07.09 |
댓글